As consultas SQL são a carne e as batatas do RDBMS CRUD (criar, ler, atualizar, excluir). Mas quando seu aplicativo ou banco de dados corporativo cresce, a necessidade de consultas inteligentes para recuperar dados condicionais específicos de requisitos se torna imprescindível.

SQL é relativamente abrangente, abrangendo muitas funcionalidades, cada uma das quais é adequada para vários usos de negócios. Uma dessas funcionalidades inclui o uso de subconsultas.

Para tornar seus códigos eficientes e eficazes, você pode usar subconsultas em seus códigos SQL para buscar dados, manipular variáveis ​​existentes e atingir vários objetivos de uma só vez.

O que são subconsultas SQL?

Uma subconsulta é uma consulta aninhada, que funciona como um parâmetro dentro de outra consulta principal. A subconsulta é uma consulta interna, enquanto a consulta principal é a consulta externa.

A subconsulta supostamente retorna os dados como um argumento entre parênteses para a consulta principal, enquanto a consulta principal recupera o resultado final.

instagram viewer

As subconsultas são incorporadas ao Selecionar declaração ou no Onde cláusula. Essa estrutura permite que a subconsulta se comporte como uma condição de filtragem de dados bem descrita. Infelizmente, as subconsultas só podem usar o Agrupar por comandos e não Ordenar por comandos, pois são permitidos apenas na consulta principal.

Relacionado: Tudo o que você precisa saber sobre a instrução SQL GROUP BY

Normalmente, cada subconsulta compreende uma única coluna com o Selecionar cláusula. No entanto, há cenários em que a consulta principal tem várias colunas. Uma subconsulta pode ser aninhada em outra subconsulta, tornando-a uma subconsulta aninhada.

A restrição de uma subconsulta é a seguinte:

Selecione column_name da tabela onde condition= 
(SELECT conditional_column FROM tabela) como alias;

Por exemplo, suponha que você tenha a seguinte tabela:

identificação Primeiro nome Segundo nome Taxa da Agência
1 John Pavio 5000
2 Roberto Graham 4000
3 Stephen Hicks 8000
4 Prumo Marley 1000
5 Mary Ellen 9000

Nesta tabela, para obter os nomes das pessoas que estão ganhando acima da taxa média da agência, você pode escrever uma subconsulta, em vez de escrever várias linhas de código.

Relacionado: Como criar uma tabela em SQL

Veja como fica a consulta:

Selecione * de agent_details
onde Agency_Fee > (selecione avg (Agency_Fee) de agent_details);

O comando antes do > sinal é a consulta externa, enquanto tudo após o > sinal é a consulta interna.

A consulta interna calculará a taxa média da agência dentro da subconsulta e a consulta externa mostrará todos os valores maiores que o valor médio calculado.

Como usar subconsultas no SQL?

Existem algumas maneiras diferentes de usar subconsultas no SQL.

Subconsultas com cláusula where

Uma das estruturas mais básicas de uma subconsulta em SQL está dentro da cláusula Where. É a maneira mais simples de definir o que você está procurando. A instrução select retorna valores conforme a(s) condição(ões) da subconsulta e a utiliza como parâmetro para a consulta principal.

Estrutura da consulta:

selecione * de table_name
onde column_name = (selecione column_name de table_name);

Vamos explicar isso com um exemplo.

Suponha que você queira encontrar a segunda taxa de agência mais alta na tabela agency_details. Para isso, existem funções alternativas dentro do SQL; no entanto, o melhor método é usar uma subconsulta.

Veja como você pode definir a subconsulta:

selecione *, max (Agency_fee)
de agent_details
onde Agency_fee < (selecione max (Agency_fee) de agent_details);

A declaração resultante mostrará a você 8000, que é a segunda taxa mais alta na tabela fornecida. Quando a consulta é executada, a subconsulta calcula o valor máximo da lista de taxas. O maior valor da taxa (9000) é armazenado na memória.

Uma vez que esta parte é calculada, a segunda parte da consulta é calculada, que encontra a segunda maior taxa da tabela (desde que o < sinal é usado). O resultado final é 8000, que é a segunda taxa mais alta da tabela.

Subconsultas dentro da cláusula From

Outra variação nas subconsultas é passar a condição no a partir de cláusula. Como um conceito semelhante, a consulta interna é processada primeiro e a consulta externa é processada posteriormente. A consulta interna filtrará os dados e mostrará os resultados em que ID = 3.

Aqui está a consulta para referência:

selecione a.* de (
selecione agency_fee em agent_details
onde ID= 3) como a;

Esta é uma estrutura muito básica; no entanto, quanto mais complexas forem suas tabelas de dados, mais linhas de dados serão obtidas, que correspondem às suas condições.

Usando subconsultas com a instrução Insert In

Se você deseja atualizar uma tabela existente com algumas novas linhas de dados, você pode usar o Insira dentro de declaração. Uma subconsulta pode ser bastante benéfica, se você quiser adicionar valores com base em uma(s) condição(ões) específica(s).

Estrutura da consulta:

inserir em table_name 
selecione * de table_name
onde column_name = condições;
selecione * de table_name;

Aqui está um exemplo de como você pode usar a instrução insert into com a subconsulta:

inserir em agent_details
selecione * de agent_details
onde agência_taxa em (1000, 5000);
selecione * de agent_details;

Depois que a consulta for executada, os valores correspondentes à condição serão inseridos novamente na tabela existente. O selecione * referência pega todas as colunas juntas e a insere na tabela agent_details como está. O dentro A instrução é usada para definir várias condições de filtro de uma só vez.

Usando subconsultas com instrução de atualização

Há situações em que você deseja atualizar as tabelas subjacentes ao executar as consultas. Para isso, você pode usar o atualizar declaração junto com os comandos de consulta.

É assim que você escreverá a subconsulta para atualizar as informações na tabela em uma instância:

atualizar table_name 
set column_name = new_value
onde nome_coluna =
(selecione column_name de table_name onde = );

Aqui está um exemplo demonstrando o uso da instrução de atualização:

ATUALIZAR agent_details 
SET agência_taxa = 35.000
ONDE agência_taxa =
(SELECT agency_fee FROM agent_details WHERE First_name='John');
selecione * de agent_details;

A subconsulta filtrará a coluna agency_fee e destacará a(s) linha(s) em que First_Name corresponde John. A consulta externa é executada em seguida, em que a taxa de agência é atualizada para 35.000 para John Wick.

Você pode passar um selecione * declaração para conferir os resultados finais; você notará que a taxa de agência para John Wick é atualizada para 35.000, pois há apenas uma instância que corresponde às condições definidas na consulta.

Usando subconsultas com instrução de exclusão

Assim como a instrução de atualização, na qual você está atualizando as linhas de dados em uma tabela existente, a excluir A instrução exclui linha(s) de dados com base em uma condição.

A estrutura da instrução delete é:

delete de table_name onde variável/nome da coluna = 
(selecione column_name de table_name onde = condição);

Aqui está um exemplo:

Excluir de agent_details 
onde First_name IN
(selecione First_name de agent_details onde agency_fee = 9000);
selecione * de agent_details;

Usando subconsultas no SQL

As subconsultas são um excelente recurso no SQL, que pode evitar que você escreva linhas intermináveis ​​de código desnecessário. Quando você é capaz de usar as funcionalidades básicas de subconsultas para fazer seus lances, você nunca vai querer se preocupar em entrar nas complexidades da codificação SQL.

É sempre melhor aprimorar seu conhecimento de SQL existente para garantir que você esteja sempre no topo do seu jogo. Fique tranquilo, as folhas de dicas do SQL podem lhe dar uma boa ideia sobre como aprimorar seus conceitos básicos em um único olhar.

A folha de dicas de comandos SQL essenciais para iniciantes

Quer aprender mais sobre SQL? Ter um controle sobre os vários comandos de consulta SQL é uma ótima maneira de avançar.

Leia a seguir

CompartilhadoTweetE-mail
Tópicos relacionados
  • Programação
  • Programação
  • SQL
  • Ferramentas de programação
Sobre o autor
Gaurav Siyal (35 Artigos Publicados)

Gaurav Siyal tem dois anos de experiência em redação, escrevendo para uma série de empresas de marketing digital e documentos de ciclo de vida de software.

Mais de Gaurav Siyal

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar