Linguagens SQL
Em bancos relacionais, temos diferentes linguagens conceituais para a realização de operações. Na prática, essas lingaugens são implementadas pelo SQL (e já usamos boa parte delas ao longo das aulas).
Data Definition Language (DDL)
Como o próprio nome já indica, a DDL é a linguagem de definição da estrutura do banco de dados. É com ela que criamos tabelas, colunas e restrições como CHECK
. Um aspecto fundamental a ser observado é que a DDL não manipula os dados em si, apenas define a estrutura em que os dados serão armazenados.
CREATE TABLE Alunos (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
idade INT
);
ALTER TABLE Alunos ADD COLUMN curso VARCHAR(50);
DROP TABLE Alunos;
Data Manipulation Language (DML)
A DML, por suavez, é responsável pela manipulação dos dados. Com ela, podemos inserir novos registros, atualizar informações existentes ou remover dados que não são mais necessários.
INSERT INTO aluno (rga, nome)
VALUES ('4343','Ana Silva');
UPDATE aluno
SET nome = 'Ana Silva dos Santos'
WHERE rga = '4343';
DELETE FROM aluno
WHERE rga = '4343';
Data Query Language (DQL)
A DQL é a linguagem de consulta, ou seja, ela possibilita que consultemos os dados armzenados no banco. Seu principal comando é o SELECT
, que permite recuperar informações de acordo com critérios específicos, ordenar resultados, agrupar registros, entre outros, como já vimos nas aulas anteriores.
SELECT nome
FROM aluno
WHERE rga = '4343'
ORDER BY nome;
Data Transaction Language (DTL)
A DTL controla transações, garantindo que uma sequência de operações seja executada de forma atômica. Isso significa que ou todas as instruções de uma transação são aplicadas, ou nenhuma delas.
START TRANSACTION;
INSERT INTO aluno (rga, nome)
VALUES ('777', 'Carlos Mendes');
SAVEPOINT antes_da_atualizacao;
UPDATE aluno
SET nome = 'Carlos Mendes Juvenal'
WHERE rga = '777';
ROLLBACK TO antes_da_atualizacao;
COMMIT;
Data Control Language (DCL)
A DCL gerencia a segurança e os privilégios no banco de dados. Com ela, podemos conceder ou revogar permissões de usuários, controlando quem pode executar determinadas operações.
CREATE USER 'professor'@'localhost' IDENTIFIED BY 'senha123';
GRANT SELECT, INSERT ON universidade.aluno TO 'professor'@'localhost';
REVOKE INSERT ON universidade.aluno FROM 'professor'@'localhost';