Consultas SQL (SQL queries): Guia Completo
Este guia completo fornecerá a você um compreensivo entendimento do que são SQL queries e como utilizá-las no dia-a-dia.
A linguagem SQL (Structured Query Language) é amplamente utilizada para acessar e manipular dados em banco de dados relacionais.
Ela é usada por desenvolvedores e administradores de banco de dados para realizar tarefas como criar, consultar, modificar e excluir dados. Ela pode ajudá-lo a manipular grandes conjuntos de dados de forma eficiente.
Neste guia, explicaremos como escrever queries SQL eficazes, abordando tópicos como estruturas de query básicas, comandos de consulta, subconsultas e outros.
Ao final deste guia, você terá um conhecimento sólido sobre queries SQL e estará apto para escrever queries para manipular dados eficientemente.
O que são consultas SQL (SQL queries)?
Uma consulta SQL é uma solicitação feita a um banco de dados para recuperar informações específicas.
Elas são usadas para selecionar, inserir, atualizar e excluir dados de um banco de dados.
Consultas SQL podem ser usadas para criar tabelas, adicionar novas colunas às tabelas existentes, criar restrições, definir chaves primárias e muito mais.
SQL é a principal linguagem usada para operar bancos de dados relacionais, e as consultas SQL são usadas para extrair informações desses bancos de dados.
Por que é importante conhecer consultas SQL?
Conhecer consultas SQL é importante para qualquer programador de banco de dados.
Elas permitem que você acesse dados estruturados armazenados em um banco de dados e os use para suas necessidades.
As consultas são a linguagem usada para recuperar ou atualizar dados em um banco de dados.
Conhecer as ferramentas de consulta ajudará você a desenvolver aplicações mais eficientes e confiáveis.
Além disso, dará a você um entendimento mais profundo de como os bancos de dados funcionam e como criar instruções SQL para manipular os dados.
Isso tornará seu trabalho mais rápido e eficiente.
Por fim, conhecer consultas SQL também é importante para a criação de relatórios, pois as consultas podem ser usadas para extrair informações exatas e relevantes dos bancos de dados.
Consultas Básicas
Agora que você já sabe o que são SQL queries.
Recapitulando: SQL queries nada mais são do que consultas a um banco de dados utilizando a linguagem SQL.
Lembre-se, SQL queries e consultas SQL são a mesma coisa.
Vamos aos tipos mais básicos existentes.
Selecionar Dados
SQL queries para selecionar dados são a forma mais comum de interagir com um banco de dados com uso do SQL.
Esse tipo de consulta é usado para recuperar informações específicas de uma tabela ou de várias tabelas.
Uma consulta básica consiste em três partes:
- Uma cláusula SELECT, que especifica quais colunas da tabela devem ser selecionadas.
- Uma cláusula FROM, que especifica de quais tabelas as colunas devem ser selecionadas.
- Uma cláusula WHERE, que especifica quais linhas da tabela devem ser selecionadas.
Uma consulta para selecionar dados também pode usar cláusulas ORDER BY e LIMIT para organizar e restringir os resultados.
Exemplo:
SELECT
first_name,
last_name
FROM customers
WHERE
country = 'USA'
ORDER BY last_name ASC
LIMIT 10;
Esta consulta retornaria os primeiros 10 (LIMIT) nomes e sobrenomes (SELECT) de todos os clientes (FROM) nos Estados Unidos (WHERE), classificados pelo sobrenome em ordem crescente (ORDER BY).
Outro exemplo
Suponha que temos uma tabela de clientes com o seguinte conteúdo:
Nome | Cidade |
---|---|
João | São Paulo |
Maria | Rio de Janeiro |
Carlos | Curitiba |
Pedro | Belo Horizonte |
Vamos supor que queremos selecionar todos os clientes da cidade de São Paulo. Para fazer isso, usamos o seguinte comando:
SELECT * FROM clientes WHERE cidade = 'São Paulo';
Esse comando irá selecionar todos os registros da tabela onde a cidade for igual a São Paulo. O resultado será:
Nome | Cidade |
---|---|
João | São Paulo |
Inserir Dados
A inserção de dados em uma tabela é um dos conceitos mais básicos da linguagem SQL.
Quando você adiciona dados a uma tabela, você está criando novas linhas na tabela, o que significa que o tamanho da tabela aumenta.
Se trata de uma parte importante da manipulação de dados, pois permite que você crie novos registros.
Os scripts de inserção de dados são escritos usando a instrução SQL INSERT.
Observe o exemplo abaixo com o comando INSERT:
INSERT INTO Clientes (Nome, Endereco, Cidade, Estado, CEP)
VALUES ('John Doe', 'Rua 123', 'New York', 'NY', '11111');
O comando INSERT acima é usado para inserir dados na tabela clientes
.
Nesse exemplo, estamos inserindo os dados de um cliente específico, John Doe.
O comando especifica que os valores a serem inseridos na tabela de clientes são o nome, o endereço, a cidade, o estado e o CEP.
Os valores inseridos são 'John Doe', 'Rua 123', 'New York', 'NY' e '11111', respectivamente.
Atualizar Dados
Atualizar dados é uma operação comum a ser realizada no banco de dados.
Ela é usada para atualizar o conteúdo ou valores em tabelas existentes.
A operação é realizada usando a instrução SQL UPDATE.
Com ela, é possível atualizar uma ou mais colunas em uma tabela específica. Por exemplo, a seguinte instrução:
UPDATE tabela SET coluna1 = valor, coluna2 = valor WHERE condicao
Atualizará as colunas especificadas com os valores especificados, mas apenas nas linhas que satisfazem a condição.
Também é possível usar a instrução UPDATE em conjunto com outras instruções, como SELECT ou JOIN.
Isso permite atualizar dados a partir de várias tabelas. Por exemplo, a seguinte instrução:
UPDATE usuarios
SET nome = 'João',
email = 'joao@email.com'
WHERE id = 1;
Neste caso, estamos atualizando o nome e o email do usuário cujo ID é 1. O nome é alterado para "João" e o email para "joao@email.com".
SQL queries: Funções mais usadas
Agora que já sabemos o básico, vamos para as funções mais utilizadas em SQL.
Existem muitas funções diferentes disponíveis no SQL para ajudar os usuários a manipular os dados de maneiras úteis.
Vamos dar uma olhada em algumas das funções mais usadas e como elas podem ser usadas.
Função COUNT
A função COUNT é usada para contar o número de linhas em uma tabela. Por exemplo, se você tiver uma tabela chamada "clientes", a função COUNT pode ser usada para contar o número de clientes na tabela.
A sintaxe para a função COUNT é a seguinte:
SELECT COUNT(*) FROM clientes;
Neste exemplo, a função COUNT contará o número de linhas na tabela "clientes".
Função SUM
A função SUM é usada para calcular a soma de um conjunto de valores. Por exemplo, se você tiver uma tabela chamada "pedidos" que contenha um campo chamado "ValorTotal", a função SUM pode ser usada para calcular o total de todos os pedidos.
A sintaxe para a função SUM é a seguinte:
SELECT SUM(ValorTotal) FROM pedidos;
Neste exemplo, a função SUM irá somar todos os valores no campo "ValorTotal" na tabela "pedidos".
Função AVG
A função AVG é usada para calcular a média de um conjunto de valores. Por exemplo, se você tiver uma tabela chamada "clientes" que contenha um campo chamado "ValorTotal", a função AVG pode ser usada para calcular a média de todos os clientes.
A sintaxe para a função AVG é a seguinte:
SELECT AVG(ValorTotal) FROM clientes;
Neste exemplo, a função AVG irá calcular a média de todos os valores no campo "ValorTotal" na tabela "clientes".
Função MIN
A função MIN é usada para encontrar o valor mais baixo em um conjunto de valores. Por exemplo, se você tiver uma tabela chamada "clientes" que contenha um campo chamado "ValorTotal", a função MIN pode ser usada para encontrar o cliente com o menor valor total.
A sintaxe para a função MIN é a seguinte:
SELECT MIN(ValorTotal) FROM clientes;
Neste exemplo, a função MIN irá encontrar o valor mais baixo no campo "ValorTotal" na tabela "clientes".
Função MAX
A função MAX é usada para encontrar o valor mais alto em um conjunto de valores. Por exemplo, se você tiver uma tabela chamada "clientes" que contenha um campo chamado "ValorTotal", a função MAX pode ser usada para encontrar o cliente com o maior valor total.
A sintaxe para a função MAX é a seguinte:
SELECT MAX(ValorTotal) FROM clientes;
Neste exemplo, a função MAX irá encontrar o valor mais alto no campo "ValorTotal" na tabela "clientes".
As funções SQL descritas acima são apenas algumas das muitas funções disponíveis para manipular dados em um banco de dados relacional.
Elas podem ser usadas para realizar tarefas como contagem, soma, média, mínimo e máximo.
Elas também podem ser usadas para filtrar os dados, agrupá-los e classificá-los. Por exemplo, considere a seguinte tabela de clientes:
Nome | Endereço | ValorTotal |
---|---|---|
João | Rua A | 200,00 |
Maria | Rua B | 500,00 |
Pedro | Rua C | 300,00 |
Usando as funções SQL, podemos executar consultas para encontrar o cliente com o maior ValorTotal, ou para encontrar o total de todos os ValorTotals, ou para encontrar a média de todos os ValorTotals.
Essas são apenas algumas das muitas maneiras pelas quais as funções SQL podem ser usadas para manipular dados.
Group by
O Group By é um dos comandos mais utilizados do SQL e permite que você agrupe os resultados de uma consulta por um ou mais campos.
Esta é uma operação muito útil que fornece informações sobre como os dados estão organizados e pode ser usada para agrupar os dados de acordo com um campo específico.
Ele permite selecionar linhas em um conjunto de dados e agrupá-las de acordo com um ou mais campos.
O Group By é usado em conjunto com outras funções como o Count (), o Sum () e o Avg (), para agregar os dados de acordo com o campo de agrupamento.
Como funciona o Group By?
Vamos considerar a seguinte tabela de clientes:
Id | Nome | Estado |
---|---|---|
1 | Ricardo | SP |
2 | Maria | MG |
3 | João | RJ |
4 | Joana | RJ |
5 | Paulo | SP |
6 | Ana | MG |
Para agrupar os dados desta tabela, você pode usar a cláusula Group By seguida do nome do campo por meio do qual deseja agrupar os dados.
No exemplo a seguir, usaremos o campo Estado para agrupar os dados:
SELECT Estado, COUNT(*)
FROM Clientes
GROUP BY Estado
Quando executamos esta consulta, obtemos os seguintes resultados:
Estado | COUNT(*) |
---|---|
SP | 2 |
MG | 2 |
RJ | 2 |
Os resultados mostram que temos dois clientes em SP, dois clientes em MG e dois clientes em RJ.
Joins
As queries de SQL utilizando Joins são uma ferramenta poderosa para manipular dados em bases de dados.
Elas nos permitem combinar dados de duas ou mais tabelas, permitindo-nos realizar consultas complexas sobre nossas bases de dados.
Usando os tipos de Joins, podemos obter informações como, por exemplo, todos os pedidos realizados por um determinado cliente, todos os clientes que realizaram pedidos ou todos os clientes e os pedidos que eles realizaram.
Isso nos permite manipular dados de maneira mais eficiente e eficaz.
Além disso, os Joins também nos permitem realizar consultas de dados de forma mais rápida, pois eles nos permitem combinar várias tabelas em uma única instrução SQL.
Isso significa que podemos realizar consultas mais complexas e obter resultados mais rapidamente.
Tipos de Joins
Existem vários tipos de Joins, cada um com um propósito diferente. Os principais tipos de Joins são:
- Inner Join
- Left Join
- Right Join
- Full Join
Inner Join
O Inner Join combina linhas de duas ou mais tabelas que satisfaçam uma determinada condição.
Por exemplo, imagine que temos uma tabela de clientes e outra de pedidos.
Usando um Inner Join, podemos combinar as duas tabelas para obter todos os pedidos realizados por um determinado cliente.
No exemplo abaixo, temos uma tabela de clientes chamada customers
e uma tabela de pedidos chamada orders
.
Usando um Inner Join, podemos combinar as duas tabelas para obter todos os pedidos realizados por um determinado cliente.
Por exemplo, se quisermos obter todos os pedidos realizados pelo cliente com o ID
de 3, podemos usar o seguinte comando SQL:
SELECT *
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id
WHERE customers.customer_id = 3;
Esta instrução irá retornar todos os pedidos realizados pelo cliente com o ID
de 3.
Nesse caso, não vão aparecer nos resultados:
- Clientes que não possuem nenhum pedido ligado a ele
- Pedidos que não estejam ligados a nenhum cliente
Veja aqui mais detalhes sobre o uso do inner join.
Se você estiver vendo isso pela primeira vez vai parecer confuso.
Mas acredite, com a prática vai ser muito natural e bem tranquilo de fazer.
Caso você tenha uma certa experiência com o Excel. Os joins são semelhantes ao comando PROCV.
Nele, você consegue trazer para uma tabela A colunas de uma tabela B.
Ambas as tabelas estão ligadas por uma coluna em comum. Mais detalhes aqui.
Left Join
O Left Join é usado para combinar linhas de duas ou mais tabelas, mas mantendo todas as linhas da tabela à esquerda.
No exemplo abaixo, temos uma tabela de clientes chamada customers
e uma tabela de pedidos chamada orders
.
Usando um Left Join, podemos combinar as duas tabelas para obter todos os clientes e, para cada cliente, obter os pedidos que eles fizeram.
Podemos usar o seguinte comando SQL:
SELECT *
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
Esta instrução irá retornar todos os clientes e os pedidos que eles fizeram.
Caso exista algum cliente que não tenha pedido vinculado a ele, os campos da tabela orders
para esse cliente virão com o valor NULL.
Nesse link você pode observar o funcionamento do left join na prática. Basta clicar no botão 'Try it yourself'.
Right Join
O Right Join é usado para combinar linhas de duas ou mais tabelas, mas mantendo todas as linhas da tabela à direita.
No exemplo abaixo, temos uma tabela de clientes chamada customers
e uma tabela de pedidos chamada orders
.
Usando um Right Join, podemos combinar as duas tabelas para obter todos os pedidos e, para cada pedido, obter os clientes que realizaram os mesmos.
Podemos usar o seguinte comando SQL:
SELECT *
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
Esta instrução irá retornar todos os pedidos e os clientes que realizaram eles.
Caso exista algum pedido que não tenha cliente vinculado a ele, os campos da tabela customers
para esse pedido virão com o valor NULL.
Nesse link você pode observar o funcionamento do left join na prática. Basta clicar no botão 'Try it yourself'.
Full Join
O Full Join combina linhas de duas ou mais tabelas, mantendo todas as linhas de ambas as tabelas.
No exemplo abaixo, temos uma tabela de clientes chamada customers
e uma tabela de pedidos chamada orders
.
Usando um Full Join, podemos combinar as duas tabelas para obter todos os clientes e pedidos e, para cada cliente, obter os pedidos que ele realizou.
Podemos usar o seguinte comando SQL:
SELECT *
FROM customers
FULL JOIN orders
ON customers.customer_id = orders.customer_id;
Esta instrução irá retornar todos os clientes e os pedidos que eles realizaram.
Caso exista algum pedido que não tenha cliente vinculado a ele, os campos da tabela customers
para esse pedido virão com o valor NULL.
Além disso, caso exista algum cliente que não tenha pedido vinculado a ele, os campos da tabela orders
para esse cliente virão com o valor NULL.
Nesse link você pode observar o funcionamento do left join na prática. Basta clicar no botão 'Try it yourself'.
Joins são importantes
Usando os Joins, podemos realizar consultas e manipular dados de maneira muito mais eficiente.
Isso aumenta a produtividade e reduz o tempo gasto com tarefas de manipulação de dados.
Por isso, é importante ter um conhecimento básico sobre os Joins e como eles podem nos ajudar a manipular dados.
Agora você já sabe o básico das queries SQL e sabe também as funções mais utilizadas.
Vale a pena a gente responder as perguntas mais comuns para quem está começando com SQL.
Perguntas frequentes
O que precisa saber para aprender SQL?
Se você estiver interessado em aprender SQL, aqui estão algumas coisas que você precisa saber antes de começar.
Entenda os fundamentos
Antes de começar a aprender SQL, é importante ter uma compreensão básica dos fundamentos da linguagem.
Você precisa entender como funciona a sintaxe SQL e como ela é usada para manipular dados.
Você também deve ter uma compreensão básica dos tipos de dados e como eles são armazenados em um banco de dados.
Saiba como se conectar a um banco de dados
Depois de entender os fundamentos da linguagem SQL, você precisa entender como se conectar a um banco de dados.
Isso envolve aprender como se conectar a um servidor usando um cliente específico e como usar o cliente para criar ou acessar um banco de dados.
Aprenda os comandos SQL básicos
Depois de se conectar ao banco de dados, você precisa aprender os comandos básicos SQL para manipular dados.
Os principais comandos que você precisa aprender são SELECT, INSERT, UPDATE e DELETE.
Você também precisa entender comandos como JOIN, UNION e GROUP BY para criar consultas mais avançadas.
Pratique construindo consultas
Depois de aprender os comandos básicos, é importante começar a praticar.
A melhor maneira de praticar é construindo consultas usando os comandos que você aprendeu.
Para isso, você precisará ter acesso a um banco de dados com dados reais para usar como base para as consultas.
Use tutoriais e materiais de referência
Aprender SQL pode ser um processo demorado e complicado.
Para tornar isso mais fácil, use tutoriais e materiais de referência para ajudá-lo a entender os conceitos básicos da linguagem.
Ao usar tutoriais e materiais de referência, você também pode aprender melhores práticas para escrever códigos SQL de qualidade.
Crie um projeto pessoal
Depois de aprender a sintaxe e os principais comandos da linguagem, é hora de começar a trabalhar em um projeto real.
Crie um projeto simples usando os conhecimentos que você acabou de adquirir.
Isso o ajudará a aplicar o que você aprendeu e a entender como é usar SQL em um ambiente real.
Qual é a diferença entre MySQL e SQL?
MySQL e SQL são linguagens de banco de dados relacionais (RDBMS) que permitem que os desenvolvedores trabalhem com bases de dados de forma eficiente. Eles fornecem a capacidade de criar, atualizar, excluir e selecionar informações armazenadas em uma base de dados.
MySQL é um sistema de gerenciamento de banco de dados relacional.
Ele é amplamente utilizado em ambientes web para armazenar informações como endereços de email, nomes de usuários e senhas.
SQL (Structured Query Language) é uma linguagem de banco de dados relacional padrão que foi criada para permitir que os desenvolvedores interajam com os bancos de dados relacionais.
A linguagem SQL é usada para criar, atualizar, excluir e selecionar informações armazenadas em uma base de dados.
A principal diferença entre MySQL e SQL é que MySQL é um sistema de gerenciamento de banco de dados relacional que usa a linguagem SQL como sua base.
Enquanto a linguagem SQL é uma linguagem de banco de dados genérica que pode ser usada para interagir com qualquer banco de dados relacional.
Qual a diferença entre Python e SQL?
Python e SQL são linguagens de programação muito diferentes usadas para trabalhar com dados.
Python é uma linguagem de programação de alto nível e interpretada, que é usada principalmente para processar dados.
SQL é uma linguagem de programação declarativa, que é usada principalmente para gerenciar bases de dados.
Vamos ver um exemplo de cada uma.
Código SQL
SELECT * FROM Clientes WHERE Idade > 18;
A instrução SQL acima recupera todos os registros da tabela Clientes cuja idade seja maior que 18.
Código Python
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM Clientes WHERE Idade > 18')
for linha in cursor.fetchall():
print(linha)
A instrução Python acima recupera todos os registros da tabela Clientes cuja idade seja maior que 18.
Como ilustrado no exemplo acima, Python é usado principalmente para manipular dados e executar tarefas, enquanto SQL é usado principalmente para gerenciar dados.
Embora os dois sejam usados para trabalhar com dados, têm propósitos e usos diferentes.
O que achou?
Ao longo deste guia, vimos que consultas SQL podem ser usadas para acessar e manipular dados em um banco de dados.
Apesar de parecer complicado no início, os recursos oferecidos pelas consultas SQL tornam o processo mais fácil para desenvolvedores e usuários.
Com o conhecimento deste guia, você está pronto para criar consultas SQL poderosas que produzam resultados ótimos em qualquer banco de dados.
Se gostou, não esquecer de compartilhar com aquele amigo que está começando a aprender a mexer com consultas SQL.