Junior
O que são subconsultas em SQL?
sobes.tech IA
Resposta da IA
Uma subconsulta (ou consulta aninhada) em SQL é uma consulta SELECT inserida dentro de outra instrução SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). A subconsulta é executada primeiro, e o seu resultado é utilizado pela consulta externa.
-
Utilização:
- Na cláusula
WHEREpara filtrar dados. - Na cláusula
FROMcomo uma tabela virtual (tabela derivada). - Na cláusula
SELECTpara mostrar dados agregados ou relacionados (subconsulta escalar). - Com os operadores
IN,EXISTS,ANY,ALL.
- Na cláusula
-
Vantagens:
- Permitem realizar consultas de dados complexas.
- Melhoram a legibilidade das consultas em comparação com junções complexas.
- Podem ser usadas como fonte de dados.
-
Tipos:
- Escalar: Retorna um único valor (uma linha e uma coluna).
- Multilinha: Retorna uma coluna e várias linhas. Usado com
IN,ANY,ALL. - Multicoluna: Retorna várias colunas. Usado raramente.
- Correlacionada: Depende da consulta externa e é executada para cada linha da consulta externa.
Exemplo de uso em WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Exemplo de uso em FROM:
SELECT
customer_name,
total_orders
FROM (
SELECT
c.customer_name,
COUNT(o.order_id) AS total_orders
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name
) AS customer_order_counts
WHERE
total_orders > 10;