image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image

MA

Maria Amaral18/03/2025 14:05
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

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
    Compartilhe
    Recomendados para você
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Comentários (1)
    DIO Community
    DIO Community - 18/03/2025 15:00

    Excelente artigo, Maria! Você fez um excelente trabalho ao dividir os subconjuntos do SQL de maneira clara e com analogias divertidas e fáceis de entender. A comparação com a "caixa de brinquedos" e os "carrinhos" torna o conteúdo muito mais acessível e engajador, além de facilitar o entendimento dos conceitos, especialmente para iniciantes.

    Na DIO, acreditamos que aprender SQL de forma estruturada e prática é essencial para qualquer desenvolvedor, e seu artigo oferece um excelente guia para dominar os conceitos fundamentais do SQL. As explicações sobre DDL, DML, DQL, DTL e DCL são bem completas, e as dicas sobre boas práticas no uso dos comandos são valiosas.

    Qual dos subconjuntos você considera ser mais importante para quem está começando com SQL e por quê? E como você sugeriria que os novatos pratiquem esses conceitos em projetos reais para solidificar o aprendizado?

    Recomendados para você