Comandos SQL: DDL, DML, DCL, TCL, DQL e Cláusulas

COMPARTILHAR:

Primeiramente, é importante entender que à medida que as empresas e organizações lidam com quantidades cada vez maiores de dados, há uma necessidade crescente de que os desenvolvedores usem bancos de dados de maneira eficaz para lidar com esses dados, dessa forma, surge a importância de conhecer os comandos SQL.

O que é SQL?

Em primeiro lugar, SQL, que significa Structured Query Language, ou Linguagem de Consulta Estruturada é a linguagem de pesquisa declarativa padrão para banco de dados relacional. Dessa forma, muitas das características originais do SQL foram inspiradas na álgebra relacional.

Portanto, a maioria dos bancos de dados como SQL Server, Oracle, PostgreSQL, MySQL, MariaDB manipulam esta linguagem (com algumas extensões e variações) para lidar com os dados.

Assim, com o SQL você pode inserir, excluir e atualizar dados. Dessa forma, você também pode criar, excluir ou alterar objetos de banco de dados.

Atenção! Descubra os melhores cursos de programação neste guia especial: Cursos de Programação.

Quem criou o SQL?

Edgar Frank Codd, enquanto trabalhava para a IBM, inventou o banco de dados relacional nos anos 70. Portanto, com base nesse trabalho, Donald Chamberlin e Raymond Boyce desenvolveram o SQL para manipular dados.

Ele foi inicialmente chamado de SEQUEL, mas devido a um problema de marca registrada, foi alterado para SQL.

No entanto, muitas pessoas ainda dizem SEQUEL.

Leia também: O que é Docker?

Tipos de comando SQL

Então, que o SQL é a linguagem de banco de dados com a qual podemos realizar certas operações no banco de dados existente e também podemos usar essa linguagem para criar um banco de dados. Dessa forma, o SQL usa certos comandos como Create, Drop, Insert, etc. para realizar as tarefas necessárias.

Esses comandos SQL são categorizados principalmente em cinco categorias, como: DDL, DML, DCL, TCL e DQL.

  • DDL: Linguagem de definição de dados;
  • DML: Linguagem de manipulação de dados;
  • DCL: Linguagem de Controle de Dados;
  • TCL: Linguagem de controle de transação;
  • DQL: linguagem de consulta de dados.
comandos sql tipos

Comandos SQL que todo programador precisa saber

DDL: Linguagem de definição de dados

Sobretudo, uma linguagem de definição de dados (DDL) permite aos usuários especificar um esquema de banco de dados através de um conjunto de definições. Portanto, um esquema é o projeto geral de um banco de dados e raramente é modificado. Compõe uma linguagem de consulta banco de dados, como por exemplo, o SQL. Dessa forma, se assemelha a uma linguagem simples (do inglês) e torna fácil a interação do usuário com o sistema de banco de dados.

  • CREATE: utilizado para criar banco de dados, tabelas, store procedures, entre outros. 

Sintaxe:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

Exemplo:

CREATE TABLE EMPLOYEE(Name VARCHAR2(20), Email VARCHAR2(100), DOB DATE);  
  • ALTER: faz modificações em objetos criados com o CREATE, como inserir ou remover uma nova coluna em uma tabela, alterar o tipo das colunas etc.

Sintaxe:

Para adicionar uma nova coluna na tabela

ALTER TABLE table_name ADD column_name COLUMN-definition;    

Para modificar a coluna existente na tabela:

pacote fullstack danki code
ALTER TABLE table_name MODIFY(column_definitions....);  

Exemplo:

ALTER TABLE STU_DETAILS ADD(ADDRESS VARCHAR2(20));  
ALTER TABLE STU_DETAILS MODIFY (NAME VARCHAR2(20)); 
  • DROP: remove o que foi criado com o CREATE

Sintaxe

DROP TABLE table_name;  

Exemplo

DROP TABLE EMPLOYEE;  

DML: Linguagem de manipulação de dados

Então, uma linguagem de manipulação de dados (DML) é uma família de linguagens de computador, incluindo comandos que permitem aos usuários manipular dados em um banco de dados.

Portanto, essa manipulação envolve inserir dados em tabelas de banco de dados, recuperar dados existentes, excluir dados de tabelas existentes e modificar dados existentes. DML é principalmente incorporado em bancos de dados SQL.

  • INSERT: é uma forma de inserir dados em uma tabela.

Sintaxe

INSERT INTO TABLE_NAME    
(col1, col2, col3,.... col N)  
VALUES (value1, value2, value3, .... valueN);  

OU

INSERT INTO TABLE_NAME    
VALUES (value1, value2, value3, .... valueN);    

Exemplo

INSERT INTO javatpoint (Author, Subject) VALUES ("Sonoo", "DBMS");  
  • UPDATE: Para atualizar um registro em uma tabela, você usa a instrução UPDATE.

Sintaxe

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

Exemplo

UPDATE students    
SET User_Name = 'Sonoo'    
WHERE Student_Id = '3'  
  • DELETE: pode remover todas as linhas de uma tabela (usando *) ou pode ser usado como parte de uma cláusula WHERE para excluir linhas que atendam a uma condição específica.

Sintaxe

DELETE FROM table_name [WHERE condition]; 

Exemplo

DELETE FROM javatpoint  
WHERE Author="Sonoo";  

DCL: Linguagem de Controle de Dados

DCL inclui comandos como GRANT e REVOKE que lidam principalmente com os direitos, permissões e outros controles do sistema de banco de dados.

  • GRANT: concede aos usuários privilégios de acesso ao banco de dados.

Exemplo

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;  
  • REVOKE: retira os privilégios de acesso do usuário dados usando o comando GRANT.

Exemplo

REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2; 

TCL: Linguagem de controle de transação

Os comandos TCL são usados ​​para gerenciar transações no banco de dados.

Dessa forma, um conjunto de instruções SQL correlacionadas logicamente e executadas nos dados armazenados na tabela é conhecido como transação. 

  • COMMIT: confirma uma transação.

Sintaxe

COMMIT; 

Exemplo

DELETE FROM CUSTOMERS  
WHERE AGE = 25;  
COMMIT;  
  • ROLLBACK: reverte uma transação no caso de ocorrer algum erro.

Sintaxe

ROLLBACK; 

Exemplo

DELETE FROM CUSTOMERS  
WHERE AGE = 25;  
ROLLBACK;  
  • SAVE POINT: define um ponto de salvamento dentro de uma transação.

Sintaxe

SAVEPOINT SAVEPOINT_NAME;

DQL: linguagem de consulta de dados

Assim, os comandos DQL são basicamente instruções SELECT. Portanto, as instruções SELECT permitem consultar o banco de dados para localizar informações em uma ou mais tabelas e retornar à consulta como um conjunto de resultados.

Dessa forma, um conjunto de resultados é uma estrutura de array, ou mais precisamente, um conjunto de resultados é uma matriz bidimensional. Então, o índice interno para cada linha de dados é a pseudocoluna rowid, que mapeia para o endereço físico onde os dados são gravados.

CURSO GRATUITO DE DESENVOLVIMENTO WEB
  • SELECT: é usado para recuperar dados do banco de dados.

#Exemplo

Problema: Liste todos os fornecedores na Itália.

SELECT *
  FROM Supplier
 WHERE Country = 'Italy'

Comandos SQL: Cláusulas

Primeiramente, as cláusulas são funções integradas disponíveis para nós no SQL. Dessa forma, com a ajuda de cláusulas, podemos lidar com dados facilmente armazenados na tabela.

Então, as cláusulas nos ajudam a filtrar e analisar os dados rapidamente. Portanto, quando temos grandes quantidades de dados armazenados no banco de dados, usamos cláusulas para consultar e obter os dados exigidos pelo usuário.

Alguns dos exemplos de cláusulas são: WHERE, AND, OR, LIKE, TOP, ORDER BY, HAVING, GROUP BY etc.

WHERE:

Uma cláusula WHERE filtra os dados que atendem a alguns critérios.

WHERE retorna apenas as linhas de seu interesse.

Uma condição WHERE retorna verdadeiro ou falso.

WHERE pode ser usado com SELECT, UPDATE e DELETE.

#Exemplo

Liste todos os fornecedores na França.

SELECT *
  FROM Supplier
 WHERE Country = 'France'

SQL WHERE com AND, OR e NOT:

Um WHERE com AND requer que duas condições sejam verdadeiras.

WHERE com OR requer que uma das duas condições seja verdadeira.

WHERE com NOT nega a condição especificada.

#Exemplo

Problema: Liste todos os fornecedores em Paris, França.

SELECT * 
  FROM Supplier
 WHERE Country = 'France' AND City = 'Paris'

SQL GROUP BY:

Retorna um registro para cada grupo.

Pode agrupar registros por uma ou mais colunas.

São usados ​​com agregados: COUNT, MAX, etc.

#Exemplo

Problema: Liste o número de produtos para cada fornecedor, classificados de cima para baixo.

SELECT S.CompanyName, COUNT(P.Id) AS Products 
  FROM Supplier S
  JOIN Product P ON S.Id = P.SupplierId
 GROUP BY S.CompanyName
 ORDER BY COUNT(P.Id) DESC

SQL GROUP BY HAVING

HAVING é como WHERE, mas opera em registros agrupados.

HAVING requer que uma cláusula GROUP BY esteja presente.

Os grupos que atenderem aos critérios HAVING serão devolvidos.

WHERE e HAVING podem ser usados ​​na mesma consulta.

CURSO GRATUITO DE PYTHON

HAVINGs são usados ​​com agregados: COUNT, SUM, etc.

#Exemplo

Problema: Liste todos os países com mais de 2 fornecedores.

SELECT Country, COUNT(Id) AS Count
FROM Supplier
GROUP BY Country
HAVING COUNT(Id) > 2

SQL ORDER BY

A cláusula ORDER BY retorna as linhas em uma determinada ordem de classificação.

SQL ORDER BY permite classificar por uma ou mais colunas.

Os registros podem ser retornados em ordem crescente ou decrescente.

#Exemplo

Problema: liste todos os clientes classificados por país.

SELECT * 
  FROM Customer
 ORDER BY Country

Funções SQL COUNT, SUM, AVG

COUNT, SUM e AVG são funções agregadas.

COUNT retorna uma contagem do número de valores de dados.

SUM retorna a soma dos valores dos dados.

AVG retorna a média dos valores dos dados.

#Exemplo

Problema: obtenha o número total de produtos.

SELECT COUNT(Id) AS 'Product Count'
  FROM Product

Conclusão de comandos SQL

Portanto senhores, eu tentei deixar esse artigo o mais completinho possível para quem está tendo o seu primeiro contato com SQL e também para quem já conhece a linguagem SQL e está aqui somente para relembrar algum conceito.

Espero de fato que esse artigo tenha sido útil para você. Dessa forma, caso conheça algum amigo ou companheiro que precisa estudar esse artigo, por favor, compartilhe no seu grupo da faculdade ou grupo de estudos, é tudo que nós pedimos.

Consultas SQL na Prática usando SELECT, DISTINCT, WHERE e LIMIT
COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.