Sql subconsultas

Solo disponible en BuenasTareas
  • Páginas : 9 (2120 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de junio de 2010
Leer documento completo
Vista previa del texto
Subconsultas
Definición de subconsultas.
    Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT. Normalmente se utilizan para filtrar una clausula WHERE o HAVING con el conjunto de resultados de la subconsulta, aunque también pueden utilizarse en la lista de selección.
    Por ejemplo podriamos consultar el alquirer último de un cliente.
||
| SELECT CO_CLIENTE, NOMBRE, MARCA, MODDELO |
| FROM ALQUILERES|
| WHERE CO_CLIENTE = 1 |
| AND   FECHA_ALQUILER = (SELECT MAX(FECHA_ALQUILER) |
|        FROM ALQUILERES|
|        WHERE CO_CLIENTE = 1) |

       
    En este caso, la subconsulta se ejecuta en primer lugar, obteniendo el valor de la máxima fecha de alquier, y posteriormente se obtienen los datos de la consulta principal.
    Una subconsulta tiene la misma sintaxisque una sentencia SELECT normal exceptuando que aparece encerrada entre paréntesis.
    La subconsulta se puede encontrar en la lista de selección, en la cláusula WHERE o en la cláusula HAVING de la consulta principal.
Tiene las siguientes reestricciones:
• No puede contener la cláusula ORDER BY
• No puede ser la UNION de varias sentencias SELECT
• Si la subconsulta apareceen la lista de selección,o esta asociada a un operador igual "=" solo puede devolver un único registro.
Referencias externas 
 
    A menudo, es necesario, dentro del cuerpo de una subconsulta, hacer referencia al valor de una columna de la fila actual en la consulta principal, ese nombre de columna se denomina referencia externa.
    Una referencia externa es un campo que aparece en lasubconsulta pero se refiere a la una de las tablas designadas en la consulta principal.
    Cuando se ejecuta una consulta que contiene una subconsulta con referencias externas, la subconsulta se ejecuta por cada fila de la consulta principal.
    En este ejemplo la subconsulta aparece en la lista de selección, ejecutandose una vez por cada fila que devuelve la consulta principal.
||
| SELECT CO_EMPLEADO, |
|     NOMBRE,|
|     (SELECT MIN(FECHA_NOMINA) |
|FROM NOMINAS |
|WHERE CO_EMPLEADO = EMPLEADOS.CO_EMPLEADO) PRIMERA_NOMINA|
| FROM EMPLEADOS; |

Anidar subconsultas 
 
    Las subconsultas pueden anidarse de forma que una subconsulta aparezca en la cláusula WHERE (por ejemplo) de otra subconsulta que a su vez forma parte de otra consulta principal. 
|...
tracking img