Ultimate SQL Cheat Sheet para marcar para mais tarde [2022]

Publicados: 2022-06-17

SQL, 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ís

SELECT 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;
Folha de dicas de comandos SQL para referência rápida

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';
Funções agregadas comuns

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;
Tipos de junções com sintaxe e exemplo

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