Article image
Robson Silva
Robson Silva16/10/2022 09:01
Compartilhe

Uma tal de SQL: um breve resumo das subdivisões que integram essa linguagem!

  • #SQL

A patroa dos bancos de dados, sim pois a sigla (ou acrônimo para quem é um pouco mais exigente quanto a protocólos) Structured Query Language quer dizer Linguagem de Consulta Estruturada e é ela quem é a responsável por todas as ações que envolvem um banco de dados relacional.

Você pode pesquisar um pouco da história se quiser, mas como diz o nome do artigo, aqui falaremos sobre as partes que fazem a composição dessa linguagem.

A Sql divide-se em 5 grupamentos de funções cada um dedicado a uma finalidade bem especifíca, vamos a eles:

DDL - Data Definition Language (linguagem de definição de dados)

Aqui estamos falando da construção, manutenção e mesmo da exclusão de estruturas em um banco de dados relacional, sejam essas estruturas tabelas (CREATE TABLE, ALTER TABLE. DROP TABLE) sejam bancos inteiros (CREATE DATABASE, ETC). Uma função que de inicio pode não parecer tão aderente ao contexto acima é a opção TRUNCATE, que serve para excluir todas as linhas de uma tabela. Isso é algo que um DELETE sem especificação de WHERE vindo da DML também faz (e que você DEVE tomar muito cuidado para não fazer se não for sua vontade), mas com uma diferença importante que é o desempenho... e todos nós adoramos desempenho não é? Precisa excluir todas as linhas de uma tabela? Use o TRUNCATE, da um google, testa e me agradece depois, ok?

Sobre os comandos disponibilizados aqui (Create, Drop, Alter e Truncate), eles pertencem a um dos dois grupamentos que mais podem colocar em risco a integridade do seu banco, aqui no caso principalmente quanto a estrutura (mesmo havendo o TRUNCATE que vai literalmente desaparecer com todas as linhas de uma tabela), portanto muita atenção e cuidado ao usá-los!

DCL - Data Control Language (linguagem de controle de dados)

Ah controle... como é bom manter as coisas sobre controle e evitar que alguém que não deve, faça coisas que não queremos com as coisas que não deixamos!

É para isso que esse grupamento serve! Ele está relacionado a garantir que o acesso aos dados do banco seja executado somente por quem deve fazer isso!

GRANT (ou garantir)

É bem auto-explicativo: "GRANT" garante que um determinado usuário possa fazer uma determinada coisa...

Um exemplo:

GRANT SELECT ON carros TO Ayrton;

Aqui liberamos que Ayrton consultar todos os dados da tabela carros... É se você entendeu a referência, significa que talvez esteja ficando velho!

REVOKE (ou revogar)

Faz o contrário do GRANT, portanto revoga o acesso concedido anteriormente!

REVOKE SELECT ON carros FROM Ayrton;

Aqui não quero mais que Ayrton possa selecionar as linhas da tabela carros, então retirei esse acesso dele!

DML - Data Manipulation Language

Lembra do "Com grandes poderes, grandes responsabilidades"?

Quando falei sobre DDL, comentei que existiam dois grupamentos que ofereciam riscos a integridade do banco, se a DDL está relacionado a manutenção estrutural do banco, a DML está relacionada aos dados que "moram" nessas estruturas definidas pela DDL. Portanto é através dos comandos disponibilizados neste grupamento que inserimos, atualizamos e até deletamos dados de nossas tabelas.

TCL - Transaction Control Language (linguagem de controle de transação)

Pense que você tem uma lista de coisas que precisa fazer e que não pode esquecer de nenhuma dessas coisas da lista...

TCL é o equivalente para a linguagem SQL.

Aqui listaremos uma série de comandos a serem executados sempre em conjunto e... bom... o resto é código!

BEGIN TRANSACTION

Aqui informamos que começaremos a lista de tarefas que queremos executar

Depois incluimos os comandos conforme nosso contexto determina e encerramos com o comando COMMIT, é ele que determina que todas as ações solicitadas na nossa transação, devem ser efetivados no banco de dados.

O ROLLBACK faz exatamente o contrário! Ele desfaz as alterações de nossa transação. Mas por que eu desfaria algo? Bom pense que você pode usar isso para testar transações e ver se está obtendo os resultados desejados!

Exemplos com comentários:

-- transação com rollback

BEGIN TRANSACTION

 DELETE FROM Livro_ISBN -- apaga todos registros da tabela, "sem querer"

 SELECT * FROM Livro_ISBN -- mostra tabela vazia

ROLLBACK TRANSACTION; -- desfaz a transação

SELECT * FROM Livro_ISBN; -- mostra os dados normalmente

-- transação com commit

BEGIN TRANSACTION

 DELETE FROM Livro_ISBN -- apaga todos registros da tabela

 SELECT * FROM Livro_ISBN -- mostra tabela vazia

COMMIT TRANSACTION; -- confirma a transação

SELECT * FROM Livro_ISBN; -- agora mostra a tabela vazia em definitivo

DQL - Data Query Language (linguagem de consulta de dados)

Esse aqui já diz logo para o que veio: consultas!

Se você precisa de um banco de dados claramente vai precisar consultá-los, aqui então teremos o SELECT e é esse comando que vai buscar informações para nós no banco de dados!

Bom, por enquanto é isso! Sigam estudando e desliguem a Netflix! Forte abraço!

Contatos:

linkedin : www.linkedin.com/in/rjsilva-oficial

github: https://github.com/rjsilvaoficial

Compartilhe
Comentários (2)
Amanda Lino
Amanda Lino - 17/10/2022 07:19

Agradecida!

Luana Soares
Luana Soares - 16/10/2022 17:01

Obrigada!! :D