SQL e seus subtipos (DML, DDL, DCL, TCL)

Um banco de dados relacional é aquele que modela os dados de forma que estes sejam percebidos pelo usuário como tabelas, ou mais formalmente relações.

Structured Query Language – ou ainda Linguagem de Consulta Estruturada, é a linguagem padrão utilizada pelos SGBD (Sistema de gerenciamento de Banco de dados) baseados no modelo relacional. Atualmente podemos listar o Microsoft SQL ServerMySQLORACLE, PostgreeSQL, entre outros.

Como toda linguagem, o SQL possui comandos que podem ser agrupados em subtipos ou ainda grupos lógicos: DML, DDL, DCL e TCL. Vejamos abaixo as definições e alguns exemplos com base no SGBD Microsoft SQL Server:

DML

O Data Manipulation Language (Linguagem de Manipulação de Dados) são comandos utilizados basicamente para leitura e/ou escrita dos registros contidos nas tabelas do banco de dados. Os comando são:

  • SELECT – Utilizado para ler os registro das tabelas, o SELECT tem uma sintaxe bem simples de se entender: utilizamos a palavra Select seguida de um asterisco ou das colunas que desejamos consultar da tabela ou tabelas, acompanhado da palavra From e o nome da(s) tabela(s);
  • INSERT – Comando usado para inserir um ou mais registros em uma tabela existente na base. o comando segue a seguinte sintaxe: Insert into nome_tabela(coluna_1, coluna_2, coluna_n) Values(parametro_1, parametro_2, parametro_n);
  • UPDATE – Usamos o Update para atualizarmos um ou mais registros em uma tabela com a sintaxe: Update nome_tabela set coluna_1 = parametro_1, coluna_n = parametro_n where id = parametro_id; O parâmetro utilizado após a clausula where pode ser qualquer coluna que identifique um registro na tabela, sendo mais aconselhável utilizar o id por ser campo único.
  • DELETE – Comando para apagar um ou mais registros da tabela de dados é utilizado com a sintaxe: Delete from nome_tabela where id = parametro_id.

Capturar

Obs: vale lembrar que os comandos Update e Delete tem a clausula where como opcional e neste caso, devem ser utilizados com muita cautela pois todos os registros serão alterados/apagados.

download

 

DDL

Data Definition Language ou Linguagem de Definição de Dados são usados para definição e criação de objetos na base de dados, tais como tabelas, views, funções, stored procedures etc. São comandos para desenhar e definir a estrutura da base.

  • CREATE – Através deste comando podemos criar uma nova tabela, uma procedure, uma view etc. Cada objeto criado segue uma sintaxe diferente.

  • DROP – Utilizado para deletar objetos existentes na base de dados.

  • ALTER – Comando usado para editar objetos (tabelas, procedures, triggers) como por exemplo adicionar um novo parâmetro a uma procedure, ou ainda deletar uma coluna em uma tabela existente.

    ddl

DCL

Os comandos da Data Control Language (Linguagem de Controle de Dados) são usadas principalmente para controles de acesso e gerenciamento de permissões para usuários em nossas bases de dados. Como um ambiente geralmente tem muitas bases de dados, estes comando permitem ou negam o acesso dos usuários às bases de dados como veremos abaixo:

  • REVOKE – Com este comando retiramos permissão (revogar) de um ou mais usuários.
  • GRANT –  Comando para dar certas permissões (Permitir) a usuários em um ou mais objetos do banco de dados.
  • DENY – Nega certas permissões de usuários.

DCL

Para que fique mais claro, Revoke é o oposto de Grant. Deny também adiciona uma regra de acesso (que poderá ser retirada com o comando Revoke). Se um usuário tem permissão em uma tabela podemos remover esta permissão com Revoke, porém se este usuário tem permissão de acesso negada para um Delete em uma tabela ele continuará a ter a permissão de Delete e mesmo assim não poderá deletar nenhum registro da tabela.

capamerica.jpg

 

 TCL

Transaction Control Language ou Linguagem de Controle de Transação são comandos com os quais podemos gerenciar e controlar as Transações no Microsoft SQL Server. Mais especificamente, operações que requerem alterações em diversas tabelas e que, caso uma dê erro as demais devem ser desfeitas são acompanhadas dos comando da TCL para garantir o sucesso da operação e consequentemente a integridade da nossa base. São eles:

 

  • BEGIN TRAN – Comando para dar inicio (abrir) uma transação.
  • COMMIT TRAN – Usado para completar uma transação bem sucedida.
  • ROLLBACK – Utilizado para reverter toda a operação contida em uma mesma transação em caso de erro.

TCL

No exemplo acima podemos perceber o uso dos três comando em uma única transação. Atualizamos a tabela produtos e atualizam a tabela compra e se, por algum motivo, a quantidade de produtos atualizada na tabela Produtos com id 1 (um) não for 9 (nove), toda a atualização dentro da transação será desfeita (Rollback), do contrário será completada (Commit)

Encontrou algum erro, teve alguma dúvida ou quer contribuir? mande e-mail para cristian.kruger@live.com

 

Deixe um comentário