2nd Nov 2023 7 minutos de leitura Resumo de SQL Básico LearnSQL.com.br Team resumo sql Índice Resumo de SQL Básico DADOS DE EXEMPLO CONSULTANDO UMA ÚNICA TABELA APELIDOS/ALIAS COLUNAS TABELAS FILTRANDO RESULTADOS OPERADORES DE COMPARAÇÃO OPERADORES DE TEXTO OUTROS OPERADORES CONSULTANDO VÁRIAS TABELAS INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN CROSS JOIN NATURAL JOIN AGREGAÇÃO E AGRUPAMENTO FUNÇÕES DE AGREGAÇÃO EXEMPLOS DE CONSULTAS SUBCONSULTAS VALOR ÚNICO VALORES MÚLTIPLOS SUBCONSULTA CORRELACIONADA OPERAÇÕES DE CONJUNTO UNION INTERSECT EXCEPT 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, nome FROM cidade; Recuperar os nomes das cidades ordenados pela coluna classificacao em ordem crescente (ASC) padrão: SELECT nome FROM cidade ORDER BY classificacao [ASC]; Recuperar os nomes das cidades ordenados pela coluna classificacao em ordem decrescente (DESC): SELECT nome FROM cidade ORDER BY classificacao DESC; APELIDOS/ALIAS COLUNAS SELECT nome AS nome_cidade FROM cidade; TABELAS SELECT pa.nome, ci.nome FROM cidade AS ci JOIN pais AS 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 nome FROM cidade WHERE classificacao > 3; Recuperar os nomes das cidades que não são nem Berlim nem Madrid: SELECT nome FROM cidade WHERE nome != 'Berlim' AND nome != 'Madrid'; OPERADORES DE TEXTO Pesquisar nomes de cidades que comecem com um "P" ou terminem com um "s" : SELECT nome FROM cidade WHERE nome LIKE 'P%' OR nome LIKE '%s'; Pesquisar nomes de cidades que comecem com qualquer letra seguida de "ublin" (como Dublin, na Irlanda, ou Lublin, na Polônia): SELECT nome FROM cidade WHERE nome LIKE '_ublin'; OUTROS OPERADORES Recuperar os nomes das cidades com uma população entre 500.000 e 5 milhões: SELECT nome FROM cidade WHERE populacao BETWEEN 500000 AND 5000000; Recuperar os nomes das cidades que não têm um valor de classificação: SELECT nome FROM cidade WHERE classificacao IS NOT NULL; Recuperar os nomes das cidades localizadas em países cujo identificador é 1, 4, 7 ou 8: SELECT nome FROM cidade WHERE id_pais IN (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.nome FROM cidade [INNER] JOIN pais ON 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.nome FROM cidade LEFT JOIN pais ON 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.nome FROM cidade RIGHT JOIN pais ON 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.nome FROM cidade FULL [OUTER] JOIN pais ON 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.nome FROM cidade CROSS JOIN pais; SELECT cidade.nome, pais.nome FROM cidade, pais; NATURAL JOIN NATURAL JOIN une as tabelas de acordo com todas as colunas com o mesmo nome. SELECT cidade.nome, pais.nome FROM cidade NATURAL 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 grupo count(expr) – número de valores para as linhas no grupo max(expr) – valor máximo no grupo min(expr) – valor mínimo no grupo sum(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 cidade GROUP 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 cidade GROUP BY id_pais HAVING 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 nome FROM cidade WHERE classificacao = ( SELECT classificacao FROM cidade WHERE 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 nome FROM cidade WHERE id_pais IN ( SELECT id_pais FROM pais WHERE 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_principal WHERE populacao > ( SELECT AVG(populacao) FROM cidade cidade_media WHERE cidade_media.id_pais = cidade_principal.id_pais ); Essa consulta pesquisa países com pelo menos uma cidade: SELECT nome FROM pais WHERE EXISTS ( SELECT * FROM cidade WHERE 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 nome FROM ciclismo WHERE pais = 'DE' UNION / UNION ALL SELECT nome FROM patinacao WHERE 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 nome FROM ciclismo WHERE pais = 'DE' INTERSECT SELECT nome FROM patinacao WHERE 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 nome FROM ciclismo WHERE pais = 'DE' EXCEPT / MINUS SELECT nome FROM patinacao WHERE pais = 'DE'; Tags: resumo sql