Resumo de SQL Básico
Faça o download deste resumo de 2 páginas de SQL Básico em formato PDF ou PNG, imprima-a e cole-a em sua mesa.
O Resumo de SQL Básico fornece a sintaxe de todas as cláusulas básicas, mostra como escrever diferentes condições e ainda inclui exemplos.
Opções de download:
- Resumo de SQL Básico em formato PDF (A4)
- Resumo de SQL Básico em PDF compatível com dispositivos móveis
Você também pode ler o conteúdo aqui:
Resumo de SQL Básico
SQL, ou Structured Query Language (Linguagem de Consulta Estruturada), é uma linguagem para comunicação com bancos de dados. Ela é usada para selecionar dados específicos e criar relatórios complexos. Atualmente, o SQL é uma linguagem de dados universal, sendo usada em praticamente todas as tecnologias que processam dados.
DADOS DE EXEMPLO

CONSULTANDO UMA ÚNICA TABELA
Recuperar todas as colunas da tabela pais
:
SELECT *FROM pais;
Recuperar as colunas id
e nome
da tabela cidade
:
SELECT id, nomeFROM cidade;
Recuperar os nomes das cidades ordenados pela coluna classificacao
em ordem crescente (ASC) padrão:
SELECT nomeFROM cidadeORDER BY classificacao[ASC] ;
Recuperar os nomes das cidades ordenados pela coluna classificacao
em ordem decrescente (DESC):
SELECT nomeFROM cidadeORDER BY classificacaoDESC ;
APELIDOS/ALIAS
COLUNAS
SELECT nomeAS nome_cidade FROM cidade;
TABELAS
SELECT pa.nome, ci.nomeFROM cidadeAS ci JOIN paisAS pa ON ci.id_pais = pa.id;
FILTRANDO RESULTADOS
OPERADORES DE COMPARAÇÃO
Recuperar os nomes das cidades cuja classificação é maior que 3 :
SELECT nomeFROM cidadeWHERE classificacao > 3;
Recuperar os nomes das cidades que não são nem Berlim nem Madrid:
SELECT nomeFROM cidadeWHERE nome != 'Berlim'AND nome != 'Madrid';
OPERADORES DE TEXTO
Pesquisar nomes de cidades que comecem com um "P" ou terminem com um "s" :
SELECT nomeFROM cidadeWHERE nomeLIKE 'P%'OR nomeLIKE '%s';
Pesquisar nomes de cidades que comecem com qualquer letra seguida de "ublin" (como Dublin, na Irlanda, ou Lublin, na Polônia):
SELECT nomeFROM cidadeWHERE nomeLIKE '_ublin';
OUTROS OPERADORES
Recuperar os nomes das cidades com uma população entre 500.000 e 5 milhões:
SELECT nomeFROM cidadeWHERE populacaoBETWEEN 500000AND 5000000;
Recuperar os nomes das cidades que não têm um valor de classificação:
SELECT nomeFROM cidadeWHERE classificacaoIS NOT NULL ;
Recuperar os nomes das cidades localizadas em países cujo identificador é 1, 4, 7 ou 8:
SELECT nomeFROM cidadeWHERE id_paisIN (1, 4, 7, 8);
CONSULTANDO VÁRIAS TABELAS
INNER JOIN
JOIN
(ou explicitamente INNER JOIN
) retorna linhas cujos valores em ambas as tabelas são correspondentes.
SELECT cidade.nome, pais.nomeFROM cidade[INNER] JOIN paisON cidade.id_pais = pais.id;

LEFT JOIN
LEFT JOIN
retorna todas as linhas da tabela da esquerda com as linhas correspondentes na tabela da direita. Se não houver linhas correspondentes, os valores retornados da segunda tabela serão NULL
.
SELECT cidade.nome, pais.nomeFROM cidadeLEFT JOIN paisON cidade.id_pais = pais.id;

RIGHT JOIN
RIGHT JOIN
retorna todas as linhas da tabela da direita com as linhas correspondentes na tabela da esquerda. Se não houver linhas correspondentes, os valores retornados da segunda tabela serão NULL
.
SELECT cidade.nome, pais.nomeFROM cidadeRIGHT JOIN paisON cidade.id_pais = pais.id;

FULL JOIN
FULL JOIN
(ou explicitamente FULL OUTER JOIN
) retorna todas as linhas de ambas as tabelas – se não houver uma linha correspondente na segunda tabela, valores NULL
serão retornados.
SELECT cidade.nome, pais.nomeFROM cidadeFULL [OUTER] JOIN paisON cidade.id_pais = pais.id;

CROSS JOIN
CROSS JOIN
retorna todas as combinações possíveis de linhas das duas tabelas. Há duas sintaxes disponíveis.
SELECT cidade.nome, pais.nomeFROM cidadeCROSS JOIN pais;SELECT cidade.nome, pais.nomeFROM cidade, pais;

NATURAL JOIN
NATURAL JOIN
une as tabelas de acordo com todas as colunas com o mesmo nome.
SELECT cidade.nome, pais.nomeFROM cidadeNATURAL JOIN pais;

NATURAL JOIN
usa essas colunas para fazer a correspondência entre as linhas:
cidade.id
, cidade.nome
, pais.id
, pais.nome
.
Na prática, NATURAL JOIN
raramente é usado.
AGREGAÇÃO E AGRUPAMENTO
GROUP BY
agrupa linhas com os mesmos valores em colunas especificadas. Ele gera resumos (agregados) para cada combinação exclusiva de valores.

FUNÇÕES DE AGREGAÇÃO
avg(expr)
– valor médio das linhas do grupocount(expr)
– número de valores para as linhas no grupomax(expr)
– valor máximo no grupomin(expr)
– valor mínimo no gruposum(expr)
– soma dos valores do grupo
EXEMPLOS DE CONSULTAS
Encontrar o número de cidades:
SELECT COUNT(*) FROM cidade;
Encontrar o número de cidades com uma classificação diferente de zero:
SELECT COUNT( classificacao) FROM cidade;
Encontrar o número de valores distintos para países:
SELECT COUNT(DISTINCT id_pais) FROM cidade;
Encontrar os países com as menores e maiores populações:
SELECT MIN( populacao) ,MAX( populacao) FROM pais;
Determinar a população total de cidades nos respectivos países:
SELECT id_pais,SUM( populacao) FROM cidadeGROUP BY id_pais;
Determinar a classificação média das cidades nos respectivos países se a média for maior que 3,0:
SELECT id_pais,AVG( classificacao) FROM cidadeGROUP BY id_paisHAVING AVG( classificacao) > 3.0;
SUBCONSULTAS
Uma subconsulta é uma consulta aninhada em outra consulta ou em outra subconsulta. Há diferentes tipos de subconsultas.
VALOR ÚNICO
A subconsulta mais simples retorna exatamente uma coluna e uma linha. Ela pode ser usada com os operadores de comparação =
, <
, <=
, >
ou >=
.
A consulta a seguir é usada para encontrar cidades com a mesma classificação de Paris:
SELECT nomeFROM cidadeWHERE classificacao = ( SELECT classificacaoFROM cidadeWHERE nome = 'Paris');
VALORES MÚLTIPLOS
Uma subconsulta também pode retornar várias colunas ou várias linhas. Essas subconsultas podem ser usadas com os operadores IN
, EXISTS
, ALL
ou ANY
.
Essa consulta encontra cidades em países com população de mais de 20 milhões:
SELECT nomeFROM cidadeWHERE id_pais IN ( SELECT id_paisFROM paisWHERE populacao > 20000000);
SUBCONSULTA CORRELACIONADA
Uma subconsulta correlacionada refere-se às tabelas inseridas na consulta externa. Uma subconsulta correlacionada depende da consulta externa. Ela não pode ser executada independentemente da consulta externa.
Essa consulta pesquisa cidades cuja população é maior do que a população média do país:
SELECT *FROM cidade cidade_principalWHERE populacao > ( SELECT AVG(populacao)FROM cidade cidade_mediaWHERE cidade_media.id_pais = cidade_principal.id_pais);
Essa consulta pesquisa países com pelo menos uma cidade:
SELECT nomeFROM paisWHERE EXISTS ( SELECT *FROM cidadeWHERE id_pais = pais.id);
OPERAÇÕES DE CONJUNTO
As operações de conjunto são usadas para combinar os resultados de duas ou mais consultas em um único resultado. As consultas combinadas devem retornar o mesmo número de colunas e tipos de dados compatíveis. Os nomes das colunas correspondentes podem ser diferentes.

UNION
UNION
combina os resultados de dois conjuntos de resultados e exclui os duplicados. UNION ALL
não exclui linhas duplicadas.
Essa consulta exibe ciclistas e patinadores alemães:
SELECT nomeFROM ciclismoWHERE pais = 'DE'UNION /UNION ALL SELECT nomeFROM patinacaoWHERE pais = 'DE';

INTERSECT
INTERSECT
retorna apenas as linhas que aparecem em ambos os conjuntos de resultados.
Essa consulta exibe ciclistas alemães que também são patinadores alemães:
SELECT nomeFROM ciclismoWHERE pais = 'DE'INTERSECT SELECT nomeFROM patinacaoWHERE pais = 'DE';

EXCEPT
EXCEPT
retorna somente as linhas que aparecem no primeiro conjunto de resultados, mas não aparecem no segundo conjunto de resultados.
Essa consulta exibe ciclistas alemães, desde que eles não sejam patinadores alemães:
SELECT nomeFROM ciclismoWHERE pais = 'DE'EXCEPT /MINUS SELECT nomeFROM patinacaoWHERE pais = 'DE';
