jueves, 23 de septiembre de 2010

Subconsultas relacionadas

Una subconsulta es una consulta SELECT que devuelve un valor único y está anidada en una instrucción SELECT, INSERT, UPDATE o DELETE, o dentro de otra subconsulta. Una subconsulta se puede utilizar en cualquier parte en la que se permita una expresión, delante o detras de un WHERE, pero las subconsultas relacionadas pueden usarse en la cláusula FROM.

Se puede acualiar una columna de una tabla con información de otro tabla uando subconsulta en vez de la sintaxis UNION.

Se pueden crear vista con subconsultas relacionadas y se pueden usar subconsultas relacionadas con las vistas del diccionario.

Puede utilizar tres formas de sintaxis para crear una subconsulta:

  • comparación [ANY | ALL | SOME] (instrucción sql) --> Es una expresión y un operador de comparación que compara la expresión con el resultado de la subconsulta.
  • expresión [NOT] IN (instrucción sql) [NOT] EXISTS -->Es una expresión por la que se busca el conjunto resultante de la subconsulta.
  • instrucción sql -->Es una instrucción SELECT, que sigue el mismo formato y reglas que cualquier otra instrucción SELECT. Debe ir entre paréntesis.
Los predicados que utliza son :
  • EXIST(con la palabra reservada NOT opcional) --> se utiliza en comparaciones de verdad/falso para determinar si la subconsulta devuelve algún registro.Este operador tb se puede usar en subconsultas de multiples columnas.
  • ANY o SOME --> los cuales son sinónimos, para recuperar registros de la consulta principal, que satisfagan la comparación con cualquier otro registro recuperado en la subconsulta.
  • ALL --> El predicado ALL se utiliza para recuperar únicamente aquellos registros de la consulta principal que satisfacen la comparación con todos los registros recuperados en la subconsulta.
  • IN or NOT IN--> para recuperar únicamente aquellos registros de la consulta principal para los que hay (o no hay) algunos registros de la subconsulta contienen un valor igual.