Principais Subconjuntos do SQL
Principais Subconjuntos do SQL
O SQL se divide em subconjuntos que organizam os comandos por funcionalidade.
DDL (Data Definition Language) – Definição de Dados
Usado para criar e gerenciar a estrutura do banco de dados.
💡 Analogia: O DDL cria e organiza a "caixa de brinquedos".
1️⃣ Criando (CREATE) – Criamos a caixa e os compartimentos 🛠️
CREATE DATABASE CaixadeBrinquedo;
CREATE TABLE carrinhos (
id INT PRIMARY KEY,
cor VARCHAR(20),
tamanho VARCHAR(10)
);
2️⃣ Mudamos os espaços (ALTER) – Precisamos de mais espaço!
ALTER TABLE carrinhos ADD marca VARCHAR(50);
3️⃣ Jogamos um espaço fora (DROP) – Não uso mais, vou excluir! 🗑️
DROP TABLE carrinhos;
4️⃣ Esvaziamos um espaço (TRUNCATE) – Retiro tudo, mas deixo pronto! 🧹
TRUNCATE TABLE carrinhos;
⚠️ DROP e TRUNCATE podem causar perda de dados irreversível!
⚠️ Diferença entre TRUNCATE e DELETE:
- TRUNCATE remove todos os registros de uma tabela sem deixar rastros e reinicia IDs automáticos.
- DELETE permite excluir registros específicos e pode ser desfeito com ROLLBACK. O DELETE e um DML que iremos ver a seguir.
DML (Data Manipulation Language) – Manipulação de Dados
Usado para inserir, atualizar ou excluir dados.
💡 Analogia: Brincar com os carrinhos dentro da caixa! 🎲🚗
1️⃣ Adicionar um carrinho (INSERT) – Ganhei um carrinho novo! 🏎️
INSERT INTO carrinhos (id, cor, tamanho, marca)
VALUES (1, 'vermelho', 'pequeno', 'Hot Wheels');
2️⃣ Mudar detalhes (UPDATE) – Vou pintar de azul! 🎨
UPDATE carrinhos SET cor = 'azul' WHERE id = 1;
3️⃣ Remover um carrinho (DELETE) – Esse está velho, vou tirar! 🗑️
DELETE FROM carrinhos WHERE id = 1;
DQL (Data Query Language) – Consulta de Dados
Usado para buscar informações no banco.
💡 Analogia: Ver quais carrinhos estão na caixa! 👀
1️⃣ Consultar todos os carrinhos (SELECT)
SELECT * FROM carrinhos;
SELECT * FROM carrinhos WHERE cor = 'azul';
DTL (Data Transaction Language) – Controle de Transações
Gerencia transações no banco de dados.
💡 Analogia: Testar mudanças antes de decidir! ⚖️
1️⃣ Começar um teste (BEGIN TRANSACTION)
BEGIN;
2️⃣ Fazer mudanças (DML)
INSERT INTO carrinhos (id, cor, tamanho, marca)
VALUES (2, 'verde', 'médio', 'Matchbox');
3️⃣ Confirmar ou desfazer mudanças
COMMIT; -- Salva as mudanças
ROLLBACK; -- Cancela tudo
Agora temos duas opções:
✅ Se gostamos da brincadeira, confirmamos todas as mudanças! (COMMIT)(Isso salva todas as alterações permanentemente.)
"Gostei da nova organização, vou deixar assim mesmo!"
COMMIT;
❌ Se não gostamos, podemos desfazer tudo! (ROLLBACK)(Isso cancela todas as mudanças feitas desde o BEGIN os carrinhos voltam a ser como eram antes.)
"Ah, não gostei... vou deixar tudo como estava antes!"
ROLLBACK
DCL (Data Control Language) – Controle de Permissões
Usado para definir acessos.
💡 Analogia: Quem pode brincar com meus carrinhos? 🤝
1️⃣ Conceder permissão (GRANT) – Karmen pode olhar, mas não mexer!
GRANT SELECT ON carrinhos TO Karmen ;
Isso significa que o Karmen pode olhar os carrinhos (usar SELECT), mas não pode adicionar, apagar ou modificar nenhum deles.
Se você quiser dar mais permissões, pode fazer assim:
GRANT INSERT, UPDATE ON carrinhos TO karmen;
Agora ele pode adicionar carrinhos novos e trocar suas cores, mas não pode apagar nenhum.
2️⃣ Revogar permissão (REVOKE) – Karmen fez bagunça, não pode mais!
REVOKE SELECT ON carrinhos FROM Karmen ;
"Acho que o Karmen fez bagunça... não vou deixar ele brincar mais."
REVOKE INSERT, UPDATE ON carrinhos FROM Karmen ;
Agora ele ainda pode olhar os carrinhos, mas não pode mais mudar nada.
Se quiser tirar todas as permissões, basta revogar tudo:
REVOKE ALL ON carrinhos FROM Karmen ;
Agora o Karmen não pode nem abrir a caixa! 🚫
Curiosidade:
Além dos subconjuntos DDL, DML, DQL, DTL e DCL, que são os mais conhecidos, existem algumas outras classificações que podem aparecer dependendo da abordagem do banco de dados. Aqui estão alguns exemplos:
📌 TCL (Transaction Control Language) – Controle de Transações
Algumas fontes separam o DTL e chamam de TCL, que foca exclusivamente no controle de transações. Os comandos são os mesmos:
- BEGIN TRANSACTION – Inicia uma transação
- COMMIT – Confirma as mudanças
- ROLLBACK – Desfaz as mudanças
📌 TCL = Mesma ideia do DTL, mas alguns classificam de forma separada.
📌 DQL pode ser separado?
Algumas classificações não consideram o DQL como um subconjunto separado e o incluem dentro do DML. Mas a maioria trata SELECT de forma independente porque ele não modifica os dados, apenas os consulta.
📌 DCL pode incluir mais permissões avançadas
Algumas variações do DCL incluem comandos avançados, como:
- DENY – Bloqueia permissões específicas
- GRANT WITH GRANT OPTION – Permite que um usuário conceda permissões para outros
Isso varia de um banco de dados para outro.
🎯 Resumindo:
Os cinco principais subconjuntos (DDL, DML, DQL, DTL/TCL e DCL) cobrem quase tudo o que você precisa saber em SQL. Algumas variações existem, mas o conceito principal continua o mesmo! 😃🚀
✅ DDL – Criar e organizar a caixa 📦
✅ DML – Adicionar, modificar e remover carrinhos 🚗
✅ DQL – Olhar os carrinhos na caixa 👀
✅ DTL – Testar mudanças antes de confirmar ⚖️
✅ DCL – Definir quem pode brincar 🛑
Referências:
- Formação Banco de Dados Relacional – DIO.me
- ChatGPT