SQL EXISTS: Verificar subconsultas para valores específicos
Com o operador SQL EXISTS, você pode verificar se uma subconsulta contém um valor específico. O resultado é um valor booleano. Também é possível consultar várias condições.
O que é SQL EXISTS?
Em SQL (Structured Query Language), além das consultas regulares, existe o conceito de “subconsultas” ou subqueries. Se você quiser verificar se um valor específico está presente em uma dessas subconsultas, você pode usar o operador SQL EXISTS. Este operador aplica uma condição definida à subconsulta e retorna o valor TRUE
(ou seja, “verdadeiro”) se a condição for satisfeita. Somente se essa condição for atendida, a consulta principal será executada. O operador SQL EXISTS pode ser utilizado com os comandos SQL DELETE
, INSERT
, SELECT
e UPDATE
.
Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.
- Armazenamento 100% SSD
- Pronto em 55 segundos
- Certificado SSL
Sintaxe e funcionamento de SQL EXISTS
A seguir, mostramos como o operador SQL EXISTS funciona em combinação com SELECT
. A sintaxe correspondente é a seguinte:
nome_da_coluna(s)
refere-se à coluna ou colunas que devem ser filtradas pelo SELECT
. Em seguida, você deve especificar o nome da tabela onde o comando será executado. A verificação da subconsulta é feita por meio de WHERE EXISTS
. Neste ponto, você fornece a subconsulta correspondente entre parênteses.
Ao executar o código, a consulta principal é iniciada. Então, o sistema executa a subconsulta. Se a subconsulta retornar um resultado (ou seja, TRUE
), o resultado da consulta principal será considerado. Se o resultado da subconsulta for NULL
, o resultado da consulta principal também será ignorado.
Exemplo de aplicação de SQL EXISTS
A importância e o funcionamento do SQL EXISTS podem ser melhor compreendidos com um exemplo. Para isso, criamos duas tabelas diferentes. A primeira tabela é chamada “Lista de Clientes”. Nela estão listados vários clientes de uma empresa, com número de cliente, nome e localização. Esta tabela é como segue:
Número do Cliente | Nome | Localização |
---|---|---|
1427 | Machado | Rio de Janeiro |
1377 | Silva | Curitiba |
1212 | Recife | Curitiba |
1431 | Ribeiro | Luziânia |
1118 | Becker | Palmas |
Nossa segunda tabela é chamada de “Pedidos”. Ela contém para cada entrada um número de item, o número do cliente e a data do pedido. Ela é estruturada da seguinte forma:
Número do Item | Número do Cliente | Data do Pedido |
---|---|---|
00282 | 1172 | 2024-01-17 |
00311 | 1361 | 2024-01-19 |
00106 | 1431 | 2024-01-19 |
00378 | 1274 | 2024-01-30 |
00418 | 1118 | 2024-02-03 |
Agora, podemos filtrar quais clientes fizeram pelo menos um pedido no período de 17 de janeiro a 3 de fevereiro. Para isso, utilizamos o seguinte código:
O sistema verifica se os números dos clientes da tabela “Lista de Clientes” também aparecem na tabela “Pedidos”. Se isso acontecer (ou seja, o valor é TRUE
), os registros correspondentes são listados. A tabela resultante ficará assim:
Número do Cliente | Nome | Localização |
---|---|---|
1431 | Ribeiro | Luziânia |
1118 | Becker | Palmas |
Consultar várias condições com SQL EXISTS
Você também tem a possibilidade de consultar várias condições e, assim, especificar ainda mais sua seleção. No exemplo a seguir, queremos verificar se não apenas certos números de cliente estão presentes, mas também se a localização é Luziânia. O código fica assim:
Aqui o resultado também é TRUE
e a saída é a seguinte:
Número do Cliente | Nome | Localização |
---|---|---|
1431 | Ribeiro | Luziânia |
Combinar SQL EXISTS e NOT
Se você quiser seguir o caminho inverso, o SQL EXISTS também oferece essa opção. No exemplo a seguir, buscamos todos os clientes que não fizeram nenhum pedido no período correspondente. Para isso, adicionamos o complemento NOT
.
A saída será:
Número do Cliente | Nome | Localização |
---|---|---|
1427 | Machado | Rio de Janeiro |
1377 | Silva | Curitiba |
1212 | Recife | Curitiba |
Alternativas ao SQL EXISTS
Existem algumas alternativas ao SQL EXISTS que também permitem investigar subconsultas em busca de entradas específicas. As opções mais práticas são os operadores IN
e JOIN
, que você também pode especificar de acordo com suas necessidades.
Desempenho de alta qualidade e consultoria personalizada! Com SQL Server Hosting da IONOS, você pode escolher entre MSSQL, MySQL e MariaDB. Escolha o modelo que melhor se adapta às suas necessidades!