Última atualização em 26 de fevereiro de 2020 08:07:42 (UTC / GMT +8 horas)
O que é subconsulta em SQL?
Uma subconsulta é uma consulta SQL aninhada dentro de uma consulta maior.
- Uma subconsulta pode ocorrer em:
- – Uma cláusula SELECT
- – Uma cláusula FROM
- – Uma cláusula WHERE
- A subconsulta pode ser aninhada dentro de uma instrução SELECT, INSERT, UPDATE ou DELETE ou dentro de outra subconsulta.
- Uma subconsulta geralmente é adicionada à cláusula WHERE de outra instrução SQL SELECT.
- Você pode usar os operadores de comparação, como >, < ou =. O operador de comparação também pode ser um operador de várias linhas, como IN, ANY ou ALL.
- Uma subconsulta também é chamada de consulta interna ou seleção interna, enquanto a instrução que contém uma subconsulta também é chamada de consulta externa ou seleção externa.
- A consulta interna é executada primeiro antes de sua consulta pai para que os resultados de uma consulta interna possam ser passados para a consulta externa.
Você pode usar uma subconsulta em uma instrução SELECT, INSERT, DELETE ou UPDATE para realizar as seguintes tarefas:
- Compare uma expressão com o resultado da consulta.
- Determine se uma expressão é incluída nos resultados da consulta.
- Verifique se a consulta seleciona alguma linha.
Sintaxe:
- A subconsulta (consulta interna) é executada uma vez antes da consulta principal (consulta externa) ser executada.
- A consulta principal (consulta externa) usa o resultado da subconsulta.
Exemplo de subconsultas SQL:
Nesta seção, você aprenderá os requisitos de uso de subconsultas. Temos as duas tabelas a seguir “student” e “marks” com o campo comum “StudentID”.
notas do aluno
Agora queremos escrever uma consulta para identificar todos os alunos que obtêm notas melhores do que a do aluno cujo ID de aluno é “V002”, mas não sabemos as notas de “V002”.
– Para resolver o problema, precisamos de duas consultas. Uma consulta retorna as marcas (armazenadas no campo Total_marks) de “V002” e uma segunda consulta identifica os alunos que obtiveram melhores notas do que o resultado da primeira consulta.
Primeira consulta:
Resultado da consulta:
O resultado da consulta é 80.
-Usando o resultado desta consulta, aqui escrevemos outra consulta para identificar os alunos que obtêm notas melhores do que 80. Aqui está a consulta:
Segunda consulta:
Resultado da consulta:
Acima das duas consultas alunos identificados que conseguem t O melhor número do que o aluno cujo ID de aluno é “V002” (Abhay).
Você pode combinar as duas consultas acima, colocando uma consulta dentro da outra. A subconsulta (também chamada de “consulta interna”) é a consulta entre parênteses. Veja o seguinte código e resultado da consulta:
Código SQL:
Resultado da consulta:
Apresentação pictórica de subconsulta SQL:
Subconsultas: Regras gerais
Uma instrução SELECT de subconsulta é quase semelhante à instrução SELECT e é usada para iniciar uma consulta regular ou externa. Aqui está a sintaxe de uma subconsulta:
Sintaxe:
Subconsultas: Diretrizes
Existem algumas diretrizes a serem consideradas ao usar subconsultas:
- Uma subconsulta deve ser colocada entre parênteses.
- Uma subconsulta deve ser colocada no lado direito do operador de comparação.
- As subconsultas não podem manipular seus resultados internamente, portanto, a cláusula ORDER BY não pode ser adicionada a uma subconsulta. Você pode usar uma cláusula ORDER BY na instrução SELECT principal (consulta externa), que será a última cláusula.
- Use operadores de linha única com subconsultas de linha única.
- Se uma subconsulta (consulta interna) retornar um valor nulo para a consulta externa, a consulta externa não retornará nenhuma linha ao usar certos operadores de comparação em uma cláusula WHERE.
Tipo de subconsultas
- Subconsulta de uma única linha: retorna zero ou uma linha.
- Subconsulta de várias linhas: retorna uma ou mais linhas.
- Subconsultas de várias colunas: Retorna uma ou mais colunas.
- Subconsultas correlacionadas: referência a uma ou mais colunas na instrução SQL externa. A subconsulta é conhecida como subconsulta correlacionada porque está relacionada à instrução SQL externa.
- Subconsultas aninhadas: as subconsultas são colocadas em outra subconsulta.
Na próxima sessão, discutimos exaustivamente os tópicos acima. Além do tipo de subconsulta acima, você pode usar uma subconsulta dentro das instruções INSERT, UPDATE e DELETE. Aqui está uma breve discussão:
Subconsultas com instrução INSERT
A instrução INSERT pode ser usada com subconsultas.Aqui está a sintaxe e um exemplo de subconsultas usando a instrução INSERT.
Sintaxe:
INSERT INTO table_name ) ]SELECT FROM table1 ;
Se quisermos inserir esses pedidos de ” pedidos “tabela que tem o advance_amount 2000 ou 5000 na tabela” neworder “o seguinte SQL pode ser usado:
Tabela de exemplo: pedidos
Código SQL:
Resultado:
Para ver mais detalhes de subconsultas usando a instrução INSERT clique aqui.
Subconsultas com instrução UPDATE
Em uma instrução UPDATE, você pode definir um novo valor de coluna igual ao resultado retornado por uma subconsulta de uma única linha. Aqui está a sintaxe e um exemplo de subconsultas usando a instrução UPDATE.
Sintaxe:
UPDATE table SET column_name = new_value(SELECT COLUMN_NAMEFROM TABLE_NAME)
Se quisermos atualizar essa ord_date em ” neworder “table com” 15-JAN-10 “que tem a diferença de ord_amount e advance_amount é menor que o mínimo ord_amount da tabela” orders “o seguinte SQL pode ser usado:
Tabela de amostra: neworder
Código SQL:
Resultado:
Para ver mais detalhes das subconsultas usando a instrução UPDATE, clique aqui.
Subconsultas com instrução DELETE
A instrução DELETE pode ser usada com subconsultas. Aqui está a sintaxe e um exemplo de subconsultas usando a instrução DELETE.
Sintaxe:
DELETE FROM TABLE_NAME(SELECT COLUMN_NAME FROM TABLE_NAME)
Se quisermos deletar os pedidos da tabela “neworder” cujos advance_amount são menores do que o advance_amount máximo de ” pedidos “, o seguinte SQL pode ser usado:
Tabela de exemplo: novo pedido
Código SQL:
Resultado:
Para ver mais detalhes das subconsultas usando a instrução DELETE, clique aqui.
O que vem a seguir?
- Subconsultas SQL – Apresentação de slides
- Subconsultas de uma única linha
- Subconsultas de várias linhas e colunas
- Subconsultas correlacionadas usando aliases
- Subconsultas aninhadas
Observação: as saídas da referida instrução SQL mostrada aqui são obtidas usando o Oracle Database 10g Express Edition.
Exercícios práticos de SQL
- Exercícios, prática, solução de SQL
- SQL Recuperar dados de tabelas
- Operadores booleanos e relacionais de SQL
- SQL Wildcard e operadores especiais
- SQL Aggregate Funções
- Saída de consulta de formatação SQL
- Consulta SQL em várias tabelas
- FILTRAGEM e CLASSIFICAÇÃO no banco de dados de RH
- SQL JOINS
- SQL JOINS
- SQL JOINS no banco de dados RH
- SQL SUBQUERIES
- SQL SUBQUERIES
- SQL SUBQUERIES no banco de dados de RH
- SQL Union
- SQL View
- SQL User Account Management
- Movie Database
- Consultas BÁSICAS no banco de dados de filmes
- SUBQUERIES no banco de dados de filmes
- JOINS no banco de dados de filmes
- Banco de dados de futebol
- Introdução
- Consultas BÁSICAS no banco de dados de futebol
- SUBQUERIES no banco de dados de futebol
- JOINS de consultas sobre Banco de dados de futebol
- Banco de dados de hospitais
- Introdução
- BÁSICO, SUBQUERIES e JOINS
- Banco de dados de funcionários
- Consultas BÁSICAS no banco de dados de funcionários
- SUBQUERIES no banco de dados de funcionários
- Mais por vir!