Quando usar subconsultas: Entendendo seus tipos, ordem de execução e criação

Quando usar subquery?
Uma Subquery (também conhecida como SUBCONSULTA ou SUBSELECT) é uma instrução do tipo SELECT dentro de outra instrução SQL. Desta forma, se torna possível efetuar consultas que de outra forma seriam extremamente complicadas ou impossíveis de serem feitas de outra forma.
Aprender mais sobre www.devmedia.com.br

Os sistemas de gerenciamento de banco de dados (DBMS) permitem o uso de subconsultas para recuperar dados de uma ou mais tabelas que atendem a determinadas condições. As subconsultas são uma ferramenta poderosa para filtrar, agregar e comparar dados, especialmente quando a consulta é complexa ou quando é necessário juntar várias tabelas. Neste artigo, responderemos a algumas perguntas comuns sobre subconsultas, incluindo o que são, como criá-las no Oracle, seus tipos e a ordem de execução de consultas que contêm subconsultas.

O que é uma subquery?

Uma subconsulta, também conhecida como subselect, é uma consulta aninhada em outra consulta que retorna um conjunto de resultados para a consulta externa. O conjunto de resultados da subconsulta pode ser um único valor, uma lista de valores ou uma tabela. A consulta externa utiliza o conjunto de resultados da subconsulta como um filtro ou um critério de comparação para seleccionar dados de uma ou mais tabelas. As subconsultas podem ser utilizadas nas cláusulas SELECT, INSERT, UPDATE, DELETE e WHERE.

Como fazer uma subselecção Oracle?

No Oracle, é possível criar uma subconsulta utilizando a instrução SELECT e a cláusula FROM. A subconsulta é colocada entre parênteses e pode receber um alias. Aqui está um exemplo de uma subconsulta que recupera o salário médio de um departamento e o compara com o salário de cada funcionário desse departamento:

SELECT e.nome_do_funcionário, e.salário

FROM funcionários e

WHERE e.salário > (SELECT AVG(salário) FROM funcionários WHERE departamento_id = e.departamento_id);

Esta consulta retorna o nome e o salário de todos os funcionários cujo salário é maior do que o salário médio de seu departamento.

Quais são os tipos de subconsulta?

Existem dois tipos principais de subconsultas: correlacionadas e não correlacionadas. Uma subconsulta não correlacionada é uma subconsulta que pode ser executada independentemente da consulta externa e devolve um único valor ou uma lista de valores que são utilizados como uma constante ou um conjunto de constantes na consulta externa. Uma subconsulta correlacionada, por outro lado, é uma subconsulta que depende dos valores da consulta externa e é executada uma vez para cada linha da consulta externa. As subconsultas correlacionadas são mais lentas do que as subconsultas não correlacionadas, mas podem ser mais flexíveis em determinados casos.

Posteriormente, quando há uma subconsulta dentro da consulta principal, qual consulta é executada primeiro?

Em geral, a subconsulta é executada primeiro e o seu conjunto de resultados é utilizado pela consulta externa para obter o conjunto de resultados final. No entanto, a ordem de execução real pode depender do optimizador de consultas e do plano de consulta. Em alguns casos, o optimizador pode optar por executar primeiro a consulta externa e depois a subconsulta, especialmente se a subconsulta não estiver correlacionada e devolver um pequeno conjunto de resultados.

Também, como fazer uma subconsulta?

Para criar uma subconsulta, é necessário seguir estes passos:

1. identificar a consulta principal e os dados que deseja recuperar.

2. identificar a condição ou o critério de comparação que envolve dados de outra tabela ou um subconjunto da mesma tabela.

Criar uma subconsulta que recupere os dados necessários da outra tabela ou de um subconjunto da mesma tabela.

4. coloque a subconsulta entre parênteses e dê-lhe um alias, se necessário.

5. Utilizar o conjunto de resultados da subconsulta como um filtro ou um critério de comparação para a consulta principal.

Em conclusão, as subconsultas são uma ferramenta útil para consultar dados de várias tabelas com base em condições ou critérios complexos. Podem ser utilizadas para filtrar, agregar ou comparar dados e podem ser criadas em SQL utilizando a instrução SELECT e a cláusula FROM. As subconsultas podem ser correlacionadas ou não correlacionadas e podem ser executadas independentemente ou para cada linha da consulta externa. Compreender os tipos, a ordem de execução e a criação de subconsultas pode ajudá-lo a escrever consultas SQL mais eficientes e eficazes.

FAQ
Em relação a isto, qual dos tipos de subconsulta faz referência a uma coluna da tabela da consulta externa?

O tipo de subconsulta que faz referência a uma coluna da tabela de consulta externa é chamado de subconsulta correlacionada.

Ali, que operador pode ser utilizado com uma subconsulta de várias linhas?

Em SQL, o operador que pode ser utilizado com uma subconsulta de várias linhas é o operador IN. O operador IN permite-lhe especificar um conjunto de valores para comparar com os valores devolvidos pela subconsulta. Por exemplo, pode utilizar o operador IN para encontrar todos os clientes que efectuaram uma encomenda de um produto específico, utilizando uma subconsulta de várias linhas que devolve a lista de IDs de clientes que efectuaram uma encomenda desse produto e, em seguida, utilizando o operador IN para comparar essa lista com os IDs de clientes na consulta principal.

De forma correspondente, qual é a diferença entre os comandos delete e truncate?

A principal diferença entre os comandos DELETE e TRUNCATE em SQL é que o DELETE remove os registos individuais um a um, enquanto o TRUNCATE remove todos os registos de uma só vez e repõe a tabela no seu estado inicial. O DELETE é mais lento e utiliza mais recursos, uma vez que regista cada operação de eliminação, enquanto o TRUNCATE é mais rápido e mais eficiente, uma vez que não regista cada operação. Além disso, o DELETE pode ser utilizado para remover apenas registos específicos, enquanto o TRUNCATE não pode. No entanto, o TRUNCATE não pode ser revertido, enquanto o DELETE pode.