PorMyWebStudies
Concepto de subconsultas en sql - oracle sql
Una subconsulta es una consulta anidada dentro de otra consulta. La consulta principal [padre] utiliza los resultados devueltos por la subconsulta para realizar comparaciones, mostrar datos, entre otros.
Existen tres formas principales de utilizar una subconsulta:
SELECT
con el mismo formato y reglas que cualquier otra consulta, y se coloca entre paréntesis.Las subconsultas pueden usarse en:
SELECT employee_id, first_name, [SELECT department_id FROM job_history jh WHERE jh.employee_id = e.employee_id] departamento FROM employees e.
En la cláusula FROM:
SELECT COUNT [*] FROM [SELECT * FROM employees WHERE department_id = 90].
En la cláusula WHERE:
SELECT * FROM job_history WHERE job_id IN [SELECT job_id FROM jobs WHERE job_title = 'Programmer'].
En la cláusula HAVING:
SELECT department_id "id departamento", COUNT [*] "total empleados" FROM employees GROUP BY department_id HAVING COUNT [*] = [SELECT max [COUNT [*]] FROM employees GROUP BY department_id].
Orden de ejecución:
Características de una subconsulta:
ORDER BY
, ya que los resultados no son visibles para el usuario final.Utilización de subconsultas:
SELECT department_id, AVG[salary] "salario medio" FROM employees GROUP BY department_id HAVING AVG[salary] > [SELECT AVG[salary] FROM employees].
Para generar tablas temporales:
SELECT COUNT [*] FROM [SELECT * FROM employees WHERE id_departamento = 90].
Para sentencias DML:
UPDATE employees SET salary = salary + 2000 WHERE job_id IN [SELECT job_id FROM jobs WHERE job_title = 'Programmer'].
Ejemplos de subconsultas: