16th Jan 2023 7 minutos de leitura O que são DDL, DML, DQL, e DCL em SQL? Marko Calasan sql DDL DML DQL DCL Índice Dividindo a linguagem SQL em sub-línguas Linguagem de Consulta de Dados (DQL) Linguagem de Manipulação de Dados (DML) Linguagem de Definição de Dados (DDL) Linguagem de Controle de Dados (DCL) Saiba mais sobre a linguagem SQL Exploramos a separação de SQL em suas quatro principais sub-línguas e explicamos o significado por trás de cada uma delas. Quando você estiver aprendendo SQL - talvez através do LearnSQL.com.br's muito próprio abrangente SQL para Iniciantes curso - você pode ter se deparado com os termos DDL, DML, DQL e DCL. E talvez você tenha ficado confuso por todas as siglas. Neste artigo, explicaremos o que significam estes termos e como eles correspondem a sublínguas que dividem a linguagem SQL em quatro partes que funcionam juntas. Dividindo a linguagem SQL em sub-línguas A Structured Query Language, ou SQL, é uma linguagem abrangente para manipulação de bancos de dados. É a linguagem utilizada em sistemas de bancos de dados como PostgreSQL, MySQL, Microsoft SQL Server, e Oracle Database. Cada um destes sistemas tem suas próprias implementações das dezenas de comandos na linguagem SQL (ou seja, seus próprios dialetos), o que pode ser esmagador no início. SQL pode fazer muitas coisas diferentes: criar tabelas de banco de dados, inserir ou alterar registros, adicionar índices, recuperar informações, e assim por diante. Portanto, pode ser útil dividir SQL em várias sub-línguas; isto nos ajuda a envolver nossas cabeças em todas as diferentes operações que podem ser realizadas em um banco de dados SQL. Estas sub-línguas são: Data Query Language (DQL) - A Data Query Language é a sub-língua responsável pela leitura, ou consulta, de dados de um banco de dados. Em SQL, isto corresponde à SELECT Data Manipulation Language (DML ) - A Data Manipulation Language é o sub idioma responsável pela adição, edição ou exclusão de dados de um banco de dados. Em SQL, isto corresponde ao INSERT, UPDATE, e DELETE Data Definition Language (DDL ) - A linguagem de definição de dados é a sub-língua responsável pela definição da forma como os dados são estruturados em um banco de dados. Em SQL, isto corresponde à manipulação de tabelas através do CREATE TABLE, ALTER TABLE, e DROP TABLE Data Control Language (DCL) - A Data Control Language é a sub-língua responsável pelas tarefas administrativas de controle do próprio banco de dados, principalmente a concessão e revogação de permissões de banco de dados para os usuários. Em SQL, isto corresponde aos comandos GRANT, REVOKE, e DENY, entre outros. Nas seções abaixo passaremos por estas sublínguas uma a uma e exploraremos seus significados e os comandos que elas representam. Se você quiser um mergulho mais profundo sobre estes conceitos, siga nossos conceitos interativos SQL para Iniciantes curso em LearnSQL.com.br. Ele contém 129 exercícios práticos que o ajudarão a aprender SQL através da prática. Com cada exercício resolvido, você ganhará confiança em suas habilidades SQL. Linguagem de Consulta de Dados (DQL) A Data Query Language, ou DQL, é o grupo de comandos responsáveis por consultar os dados de um banco de dados. O principal comando DQL em SQL é o comando SELECT, que recupera dados de uma ou mais tabelas. Vamos pegar a seguinte tabela. Ela contém detalhes de contas bancárias e é denominada Accounts: IDNameBalance 1John Doe2000 2Sally Swanson1800 3Richard Poor5 Se quiséssemos recuperar os nomes de todos os usuários com uma conta bancária, usaríamos este comando SELECT: SELECT Name FROM Accounts O comando acima é uma declaração típica da sub-língua DQL. E se, no entanto, quiséssemos obter os nomes de todos os usuários com um saldo superior a US$ 1.500? Nesse caso, precisamos acrescentar a cláusula WHERE à declaração: SELECT Name FROM Accounts WHERE Balance > 1500 Dê uma olhada em nossa SQL para Iniciantes Cheat Sheet para obter detalhes sobre o comando SELECT (e muito mais). Linguagem de Manipulação de Dados (DML) A Linguagem de Manipulação de Dados, ou DML , é o grupo de comandos responsáveis pela manipulação de dados em um banco de dados; isto geralmente implica em inserir, editar ou excluir linhas em tabelas SQL. O comando SQL para inserção de uma nova linha em uma tabela é o comando INSERT. Se quisermos adicionar uma linha ao comando Accounts tabela para um usuário chamado Evan Johnson com um saldo de 3.200 dólares, faríamos algo como isto: INSERT INTO Accounts (Name, Balance) VALUES (‘Evan Johnson’, 3200) Se, em algum momento no futuro, Evan fizesse um saque de $200, precisaríamos atualizar seu saldo para $3000. Para editar o registro da conta bancária de Evan, precisamos usar o comando UPDATE: UPDATE Accounts SET Balance = 3000 WHERE Name = ‘Evan Johnson’ Finalmente, se Evan decidisse fechar sua conta em nosso banco, precisaríamos apagar sua entrada no Accounts mesa. Para conseguir isso, precisamos usar o comando DELETE: DELETE FROM Accounts WHERE Name = ‘Evan Johnson’ Os comandos descritos acima (INSERT, UPDATE, e DELETE) representam as principais operações SQL para manipulação de dados e assim compõem a Linguagem de Manipulação de Dados. Para saber mais sobre estes comandos, você pode ler o artigo SQL INSERT, SQL UPDATE, SQL DELETE - Oh My! ou pegar o Usando Comandos INSERT, UPDATE e DELETE em SQL curso aqui mesmo em LearnSQL.com.br. Linguagem de Definição de Dados (DDL) A Linguagem de Definição de Dados, ou DDL, é composta pelos comandos responsáveis pela criação, edição e exclusão de tabelas SQL. Estes comandos são CREATE TABLE, ALTER TABLE, e DROP TABLE. Nos exemplos acima, estávamos trabalhando com a Accounts tabela, que já possuía uma estrutura e registros. Mas como criar esta mesa em primeiro lugar? Precisaríamos usar o comando CREATE TABLE: CREATE TABLE Accounts ( ID INT, Name VARCHAR(255), Balance INT ) E se depois quiséssemos editar a tabela para que ela tivesse uma coluna armazenando os números de telefone dos titulares de contas? Usaríamos o comando ALTER TABLE: ALTER TABLE Accounts ADD Phone VARCHAR(255) Finalmente, se quisermos apagar o comando Accounts no conjunto, usaríamos o comando DROP TABLE: DROP TABLE Accounts Estes comandos têm muito mais características do que os listados acima e sua sintaxe específica tende a variar entre os dialetos SQL. Se você quiser aprender mais, pegue nossa trilha Creating Database Structure ou leia What Is a SQL Dialect, and Which One Should You Learn? para ter uma idéia das diferentes implementações SQL disponíveis. Linguagem de Controle de Dados (DCL) A Linguagem de Controle de Dados, ou DCL , resumindo, é responsável por todos os tipos de tarefas administrativas em torno do próprio banco de dados. A mais notável é a definição de permissões para os usuários do banco de dados, que é feita principalmente através dos comandos GRANT, REVOKE, e DENY. GRANT é o comando SQL responsável pela concessão de permissões a um usuário do banco de dados. Se quiséssemos conceder a permissão para consultar o Accounts a um usuário chamado Mark, nós faríamos algo assim: GRANT SELECT TO ‘mark’@’localhost’ Para negar explicitamente a permissão de consultar a tabela para um usuário do banco de dados, use o comando DENY como segue: DENY SELECT FROM ‘mark’@’localhost’ Note que a negação explícita de uma permissão impede que ela seja concedida no futuro. Se simplesmente quisermos reverter um comando GRANT ou DENY, devemos usar o comando REVOKE: REVOKE SELECT FROM ‘mark’@’localhost’ O comando acima reverte quaisquer permissões particulares GRANT e DENY atribuídas ao usuário, essencialmente redefinindo-as para seu estado padrão. Note que estes comandos diferem muito entre os dialetos SQL, portanto, os exemplos acima estão assumindo que você está executando o Microsoft SQL Server. Há muitos outros comandos que lidam com a administração de bancos de dados, mas estes diferem tanto entre plataformas que seria esmagador lidar com eles aqui. Consulte a documentação de seu banco de dados para obter mais detalhes. Saiba mais sobre a linguagem SQL Em resumo, a linguagem SQL pode ser dividida em quatro sub-línguas: Linguagem Data Query (DQL) para consulta de dados. Linguagem de Manipulação de Dados (DML) para edição de dados. Data Definition Language (DDL ) para a estruturação de dados. Linguagem deControle de Dados (DCL) para administrar o banco de dados. Se você quiser saber mais sobre SQL, junte-se a nossa SQL para Iniciantes curso, onde cobrimos tudo isso e muito mais. Você também pode dar uma olhada em nosso SQL para Iniciantes Cheat Sheet para uma rápida atualização de sintaxe em qualquer comando. Tags: sql DDL DML DQL DCL