Ultimate SQL Cheat Sheet para marcar para mais tarde [2022]
Publicados: 2022-06-17SQL, ou linguagem de consulta estruturada é um conjunto de comandos para gerenciar operações de banco de dados relacional como excluir, criar, atualizar, ler e assim por diante.
SQL tem sido o padrão internacional usado por bancos de dados relacionais desde 1987. Existem quatro tipos de comandos SQL:
- Linguagem de definição de dados (DDL) – Esses comandos definem a estrutura do banco de dados. Por exemplo, solte, renomeie, altere e crie. Eles afetam a estrutura do banco de dados. Por exemplo, criar um banco de dados ou renomear uma tabela.
- Linguagem de manipulação de dados (DML) – Esses comandos são usados para trabalhar com os dados. Por exemplo, inserir, selecionar, atualizar, excluir. Isso não afeta as tabelas ou a estrutura do banco de dados, mas os dados presentes nas tabelas. Por exemplo, inserir uma nova linha ou atualizar um valor na linha.
- Transaction Control Language (TCL) – Esses comandos controlam o processamento de transações no banco de dados. Por exemplo, reverter, salvar, confirmar. Esses comandos têm um impacto permanente no banco de dados. Por exemplo, reverter toda a transação para o estado anterior, mesmo que um processo falhe.
- Data Control Language (DCL) – Os comandos de controle de dados são usados para autorizar usuários e conceder apenas as permissões necessárias a um usuário ou grupo. Por exemplo, um usuário pode ter permissão somente leitura, enquanto outro pode ter leitura e gravação. O controle de acesso é feito através dos comandos grant, deny e revoke.
Abaixo está a planilha SQL Cheat contendo os comandos mais úteis. A folha de dicas ajudará você a consultar rapidamente os comandos necessários com a sintaxe correta e o resultado esperado de uma consulta. Nesta folha de dicas, nos concentramos nos comandos DDL e DML, pois os outros dois tipos são bastante simples de usar.
Consultas de definição e manipulação de dados
Comando | Descrição | Exemplo |
ADICIONAR | Adiciona uma coluna ou restrição (conforme especificado) à tabela existente. | ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name); ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name); |
ALTERAR A TABELA | Altera a tabela especificada para adicionar, atualizar ou excluir a coluna de uma tabela. | ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee DROP COLUMN last_name; |
ALTERAR COLUNA | Altere o tipo de dados da coluna. Por exemplo, para alterar o tipo de coluna join_date da tabela de funcionários de varchar2 para datetime. | ALTER TABLE employee ALTER COLUMN joining_date datetime; |
TUDO | Operador lógico usado com SELECT, WHERE e HAVING, e retorna true se todos os valores satisfizerem a condição de subconsulta | SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D'); |
E | Operador lógico que retorna true somente quando todas as condições da cláusula WHERE são satisfeitas. | SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000; |
ALGUM | Operador lógico; retorna true se mesmo um dos valores da subconsulta satisfizer a condição na cláusula where | SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = 'HR' OR department = 'R&D'); |
COMO | Cria um alias para a tabela ou coluna até o momento da execução da consulta, útil quando o nome é usado várias vezes, especialmente durante as junções de tabelas | SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston'; |
ASC | Retorna os dados em ordem final asc , usados com a cláusula ORDER BY. O próprio ORDER BY classifica os resultados em ordem crescente por padrão. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC; |
ENTRE | Para selecionar valores dentro de um intervalo | SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000; |
CASO | Consiste em um conjunto de declarações; retorna o valor da declaração que é verdadeira, SE nenhuma das condições for atendida, a condição na parte ELSE é executada. Se não houver mais, retorna NULL. | SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details; |
CRIAR BANCO DE DADOS | Cria um novo banco de dados com o nome especificado | CREATE DATABASE movies_development; |
CRIAR A TABELA | Cria uma nova tabela com o nome da tabela e os nomes e tipos de coluna especificados | CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255)); |
PREDEFINIÇÃO | Define um valor padrão para a coluna especificada, usada com os comandos CREATE ou ALTER TABLE | CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE); ALTER TABLE product ALTER is_available SET DEFAULT true; |
EXCLUIR | Exclui dados da tabela especificada | DELETE from employee where employee_id = 345; |
DESC | Retorna os dados na ordem final de sc , usada com a cláusula ORDER BY. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC; |
COLUNA DE DESCARGA | Exclui a coluna especificada da tabela especificada. | ALTER TABLE employee DROP COLUMN employee_name; |
SOLTAR BANCO DE DADOS | Exclui todo o banco de dados | DROP DATABASE movies_development; |
RETIRAR PADRÃO | Exclui o valor padrão da coluna especificada | ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT; |
RETIRAR TABELA | Exclui a tabela especificada | DROP TABLE employee; |
EXISTE | Verifica se um registro existe ou não na subconsulta e retorna true se um ou mais resultados forem encontrados. | SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR'); |
A PARTIR DE | Especifica a tabela da qual os dados devem ser selecionados ou excluídos | SELECT * FROM employee; DELETE FROM employee where employee_id = 345; |
AGRUPAR POR | Agrupa dados de acordo com a coluna especificada, usada para funções agregadas | Exibir o número de funcionários em cada paísSELECT COUNT(employee_id), country from employee GROUP BY country; Mostra as classificações médias dos funcionários de cada departamento SELECT AVG(rating), department from employee GROUP BY department; |
DENTRO | Usado para selecionar vários valores de uma vez em uma cláusula WHERE em vez de usar várias condições OR | SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia'); |
ÍNDICE | O índice torna a consulta de dados mais eficiente e rápida. Os índices geralmente são criados nas colunas mais pesquisadas. | Criar índice:CREATE INDEX idx_employee ON employee (first_name, last_name); Crie um índice exclusivo onde os valores não podem ser duplicados: CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name); Excluir o índice: ALTER TABLE employee DROP INDEX idx_employee; |
INSIRA DENTRO DE | Adicionar nova linha em uma tabela | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java'); |
É NULO | Verifica valores nulos | SELECT employee_id from employee where employee_name IS NULL; |
NÃO É NULO | Verifica os valores que não são nulos | SELECT employee_id, core_skill from employee where core_skill IS NOT NULL; |
CURTI | Retorna todos os valores que correspondem a um determinado padrão | SELECT employee_id, first_name, last_name where first_name LIKE '%tony'; |
NÃO PARECE | Retorna todos os valores que não correspondem ao padrão fornecido | SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony'; |
OU | Retorna verdadeiro se uma das condições da cláusula where for satisfeita | SELECT * from employee where country = 'India' OR country = 'Australia'; |
ORDENAR POR | Ordena os resultados em ordem crescente (por padrão) ou na ordem especificada na consulta (final asc ou final desc ) | SELECT employee_name, salary from employee ORDER BY salary DESC; |
ROWNUM | Retorna o número especificado de linhas mencionadas na cláusula WHERE da consulta | SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset. |
SELECIONAR | Seleciona as colunas mencionadas da tabela com base nas condições fornecidas. Se * for especificado, todos os valores da coluna serão retornados. | SELECT employee_id from employee; SELECT * from employee; |
SELECIONE EM | Copia dados da tabela de origem para outra tabela de destino. Você pode selecionar todas as colunas (*) ou colunas específicas. | SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee; |
SELECIONAR PRIMEIRO | Seleciona o número especificado de registros da tabela | SELECT TOP 5 employee_id from employee where employee_rating = 5; |
DEFINIR | Define o valor de uma coluna para o novo valor especificado durante uma operação UPDATE. | UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345; |
ALGUM | Retorna verdadeiro se uma das condições da subconsulta for satisfeita. SOME é semelhante ao comando ANY. | SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR'); |
TRUNCAR TABELA | Exclui dados da tabela – lembre-se de que a tabela não será excluída. | TRUNCATE TABLE log_info; |
UNIÃO | Retorna valores distintos de 2 ou mais tabelas unidas. Para obter os valores duplicados também, use UNION ALL. | SELECT city from employee UNION SELECT city from office_locations; |
ÚNICO | Adiciona uma restrição exclusiva à coluna especificada, o que significa que a coluna não pode ter valores duplicados. Pode ser usado durante os comandos de criação ou alteração da tabela. | CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id)); ALTER TABLE employee ADD UNIQUE(employee_id); |
ATUALIZAR | Atualiza o valor da coluna especificada com um novo valor | UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345; |
VALORES | Usado com o comando INSERT para adicionar uma nova linha de valores na tabela | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java'); |
ONDE | Adiciona condições para filtrar o conjunto de resultados de uma instrução select | SELECT * from employee WHERE salary > 20000; |
Funções agregadas
Funções agregadas são comandos de manipulação de dados que funcionam em colunas numéricas como int e float. Eles são úteis na filtragem e classificação de dados no próprio nível do banco de dados. Algumas funções agregadas comumente usadas são:

FUNÇÃO | DESCRIÇÃO | EXEMPLO |
AVG | Retorna o valor médio da coluna especificada | SELECT AVG(marks) from students where subject = 'English'; |
MIN | Retorna o menor valor da coluna especificada | SELECT MIN(price) from product WHERE product_category = 'shoes'; |
MÁX. | Retorna o maior valor da coluna especificada | SELECT MAX(quantity), product_name from inventory; |
CONTAR | Retorna o número de linhas que satisfazem a consulta | Mostra um número total de registros na tabela de funcionários.SELECT COUNT(*) from employee; Mostrar o número de funcionários cujo salário é superior a 20.000 SELECT COUNT(*) from employee where salary > 20000; |
SOMA | Retorna a soma dos valores da coluna numérica especificada | SELECT SUM(marks) from students where subject = 'English'; |
Junções SQL
As junções SQL são muito importantes porque conectam e filtram dados de várias tabelas. As junções são um pouco complicadas e podem dar resultados inesperados, se não forem executadas corretamente. A tabela abaixo irá ajudá-lo a consultar rapidamente os 4 tipos de junções SQL:
TIPO DE ENTRADA | DESCRIÇÃO | SINTAXE | EXEMPLO |
Junção interna | Devolve os registos que correspondem nas tabelas unidas; é semelhante a uma interseção. | SELECT coluna1, coluna2… da tabela1 INNER JOIN tabela2 na tabela1.colunaN = tabela2.colunaN; | select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id; |
Junção completa (externa) | Retorna todos os registros que têm uma correspondência em ambos os lados – esquerdo ou direito. É semelhante a uma união. | SELECT coluna1, coluna2… da tabela1 FULL OUTER JOIN tabela2 na tabela1.colunaN = tabela2.colunaN; | select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id; |
Associação à esquerda | Retorna todos os registros da tabela da esquerda e os registros que correspondem aos critérios da tabela da direita | SELECT coluna1, coluna2… da tabela1 LEFT JOIN tabela2 na tabela1.colunaN = tabela2.colunaN; | select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id; |
União direita | Retorna todos os registros da tabela da direita e os registros que correspondem aos critérios da tabela da esquerda | SELECT coluna1, coluna2… da tabela1 RIGHT JOIN tabela2 na tabela1.colunaN = tabela2.colunaN; | select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id; |
Recursos adicionais
O SQL é uma ferramenta importante para desenvolvedores de software, cientistas de dados e analistas. Uma referência útil de comandos SQL na forma de uma folha de dicas pode economizar muito tempo e ajudá-lo a entender a saída esperada de cada palavra-chave.
Para obter informações adicionais, consulte os seguintes recursos:
Tutorial SQL: Folha de dicas SQL
Intellipaat: Folha de dicas de comandos SQL
Configuração do site: folha de dicas SQL
ProgrammingWithMosh: Folha de dicas do SQL
Folha de dicas do PostgreSQL