Voltar para a lista de artigos Artigos
7 minutos de leitura

Enumerar e explicar todos os elementos básicos de uma consulta SQL

"Quais são os elementos básicos de uma consulta SQL?" é uma pergunta popular de entrevista de trabalho SQL. Neste artigo, revisamos a sintaxe básica de uma consulta SQL.

Uma consulta SQL, que solicita informações de um banco de dados relacional, consiste em vários elementos. Estes permitem selecionar colunas específicas de tabelas específicas e filtrar e ordenar estas informações, se necessário. Neste artigo, vou revisar brevemente estes elementos explicando o que cada elemento faz e como utilizá-lo.

Elementos básicos de uma consulta SQL

SELECIONE

A declaração SELECT é a primeira coisa que você vai encontrar quando começar a aprender SQL. Com a declaração SELECT, você escolhe as colunas a serem exibidas na saída.

Por exemplo, vamos imaginar que somos analistas de dados no Louvre. Temos várias tabelas em nosso banco de dados, incluindo tabelas sobre artworks e artists.

artworks
idtitleartist_idyeartype
111The Mona Lisa121506painting
112Jean-Baptiste Poquelin (Moliere)141787sculpture
113The Wedding Feast at Cana111563painting
114The Lacemaker131670painting
115A River141759sculpture

artists
idnameyear_birthyear_death
11Paolo Veronese15281588
12Leonardo da Vinci14521519
13Johannes Vermeer16321675
14Jean-Jacques Caffieri17251792

Nossa primeira tarefa é obter algumas informações básicas sobre as obras de arte que exibimos - especificamente, o title, ano de criação, e o tipo de obra de arte. Aqui está a consulta para solicitar esta informação:

SELECT title, year, type
FROM artworks;

Na declaração SELECT, nós simplesmente listamos as colunas que queremos ver. Aqui está a saída:

titleyeartype
The Mona Lisa1506painting
Jean-Baptiste Poquelin (Moliere)1787sculpture
The Wedding Feast at Cana1563painting
The Lacemaker1670painting
A River1759sculpture

Você pode obter mais exemplos de SELECT neste artigo sobre como escrever uma declaração SELECT. Além disso, confira nossa SQL para Iniciantes curso para começar a aprender SQL interativamente.

A PARTIR DE

Como você viu em nosso primeiro exemplo, ao escolher as colunas a serem exibidas, você também precisa especificar a tabela onde esses dados são armazenados. Isto é feito com a palavra-chave FROM.

No exemplo acima, solicitamos informações sobre várias obras de arte, que são (como esperado) armazenadas no artworks mesa.

Agora, vamos obter algumas informações básicas sobre os artistas apresentados em nosso museu. Para isso, solicitaremos os nomes dos artistas, anos de nascimento e anos de morte do artists mesa:

SELECT name, year_birth, year_death
FROM artists;

Aqui está a saída desta consulta SQL:

nameyear_birthyear_death
Paolo Veronese15281588
Leonardo da Vinci14521519
Johannes Vermeer16321675
Jean-Jacques Caffieri17251792

JUNTE-SE A

Em muitos casos, você precisará juntar dados de várias tabelas para obter o resultado desejado. A declaração JOIN permite obter informações de duas ou mais tabelas em uma consulta SQL.

Por exemplo, digamos que você queira ver os nomes dos artistas juntamente com suas obras de arte. Esta informação não está disponível em uma tabela: você tem o nome da obra de arte no artworks tabelas, enquanto o nome do artista é armazenado no artists mesa. Entretanto, você pode facilmente juntar estas duas informações usando o número de identificação do artista , que é armazenado em ambas as tabelas:

SELECT artworks.title, artists.name
FROM artworks
JOIN artists
ON artworks.artist_id = artists.id;

Especificamos uma tabela na instrução FROM e outra tabela na instrução JOIN. Também usamos a palavra-chave ON para dizer ao banco de dados quais valores de coluna devem ser combinados para unir as tabelas.

Aqui está o resultado:

titlename
The Mona LisaLeonardo da Vinci
Jean-Baptiste Poquelin (Moliere)Jean-Jacques Caffieri
The Wedding Feast at CanaPaolo Veronese
The LacemakerJohannes Vermeer
A RiverJean-Jacques Caffieri

Para entender os diferentes tipos de uniões disponíveis em SQL, consulte este guia introdutório. Além disso, não deixe de verificar nossas 10 principais perguntas de entrevista sobre as junções SQL. Elas são ótimas para a prática (mesmo que você não esteja se preparando para uma entrevista de emprego).

CONSIDERANDO

A cláusula WHERE é utilizada para filtrar o resultado de uma consulta. Por exemplo, digamos que sua próxima tarefa é listar os títulos dos quadros disponíveis no museu e seu ano de criação. Você não quer informações sobre esculturas e outros tipos de obras de arte no conjunto de resultados.

Aqui está a consulta SQL a ser usada:

SELECT title, year
FROM artworks
WHERE type = ‘painting’;

Com a declaração WHERE, você simplesmente especifica que o tipo de trabalho artístico deve ser 'pintura'. Assim, você obtém este resultado:

titleyear
The Mona Lisa1506
The Wedding Feast at Cana1563
The Lacemaker1670

Para mais detalhes sobre a cláusula WHERE, confira este artigo.

PEDIDO POR

Muitas vezes você deseja que a saída da consulta seja exibida em uma ordem específica. Em SQL, você pode ordenar o resultado definido com a cláusula ORDER BY.

Por exemplo, vamos ordenar o resultado da última consulta SQL até o ano de criação, começando com as obras de arte mais recentes. Para isso, basta especificar a coluna do ano na cláusula ORDER BY e adicionar a palavra-chave DESC para colocar os resultados em ordem decrescente:

SELECT title, year
FROM artworks
WHERE type = ‘painting’
ORDER BY year DESC;
titleyear
The Lacemaker1670
The Wedding Feast at Cana1563
The Mona Lisa1506

Saiba mais sobre a ordenação de linhas por uma ou mais colunas neste artigo introdutório. Para casos de uso mais avançado do ORDER BY, consulte este guia detalhado na declaração ORDER BY.

GROUP BY

Por padrão, todos os resultados que obtemos são orientados para os registros. Entretanto, em alguns casos, podemos querer calcular métricas para grupos de registros (por exemplo, o número de pinturas de cada artista, a obra-prima mais antiga para cada tipo de obra de arte, etc.). É aqui que entra em jogo a cláusula GROUP BY.

Com GROUP BY, você pode criar grupos de registros (linhas) e calcular métricas sobre cada grupo. Por exemplo, vejamos o ano de criação para a obra mais antiga de cada tipo de obra de arte:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type;

Aqui, calculamos o ano mais antigo (mínimo) para cada tipo de obra de arte. Obtemos o seguinte resultado:

typeoldest_work_from
painting1506
sculpture1759

Saiba mais sobre a sintaxe de GROUP BY neste artigo. Além disso, obtenha mais exemplos com GROUP BY aqui.

TENDO

Como a cláusula WHERE, HAVING filtra a saída de uma consulta. No entanto, WHERE filtra no nível de registro, enquanto HAVING filtros em nível de grupo. Leia mais sobre a diferença entre HAVING e WHERE aqui.

Suponha que queremos obter os tipos de arte onde a obra mais antiga é datada antes de 1600. Como esta é a condição para um valor agregado, nós a colocamos na cláusula HAVING:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type
HAVING MIN (year) < 1600;

Em nosso caso, somente a pintura satisfaz esta condição:

typeoldest_work_from
painting1506

Obtenha mais detalhes sobre quando e como usar HAVING neste guia.

Sintaxe da Consulta SQL: Vamos resumir

Como revimos os elementos básicos de uma consulta SQL, você provavelmente poderia ver que onde e como usar esses elementos é geralmente simples. No entanto, há muitos detalhes não cobertos nesta visão geral. Para ajudá-lo a rever seus conhecimentos sobre a sintaxe SQL, preparamos uma folha de duas páginas SQL para Iniciantes Cheat Sheet. Sinta-se livre para baixá-la, imprimi-la e colá-la em sua mesa.

Agora, vamos tentar usar todos os elementos básicos em uma consulta SQL. Vamos juntar os nomes dos artistas com o ano de seu trabalho mais antigo que temos no museu. Também queremos (1) excluir a Mona Lisa, por ser muito famosa; (2) incluir apenas artistas cujo trabalho mais antigo foi criado antes de 1700, e (3) encomendar a produção até o ano do trabalho mais antigo, começando com o mais antigo.

Aqui está a pergunta a ser feita:

consulta

A saída desta consulta é:

nameoldest_work_from
Paolo Veronese1563
Johannes Vermeer1670

Você foi capaz de seguir a lógica desta consulta SQL? Se você não se sente confiante sobre o uso de diferentes elementos de consulta, não deixe de verificar nossa SQL para Iniciantes curso. Em 129 exercícios interativos, ele cobre as aplicações fundamentais do SQL, incluindo a construção de relatórios básicos, o trabalho com múltiplas tabelas, a criação de relatórios com funções agregadas, e a redação de subconsultas e instruções complexas.

Você gostaria de ter ainda mais prática? LearnSQL.com.br desenvolveu um curso de Curso de Práticas em SQL com 88 exercícios interativos para testar seus conhecimentos básicos de SQL.

Obrigado pela leitura, e feliz aprendizado!