Base De Datos

Páginas: 7 (1538 palabras) Publicado: 8 de noviembre de 2012
3.3- Consultas sobre múltiples tablas 

Todas las consultas estudiadas hasta el momento se basan en seleccionar tuplas y campos sobre los datos almacenados en una única tabla. SQL también permite obtener resultados a través de la combinación de múltiples tablas. La forma de hacerlo es a través del enlace o unión (join) de varias tablas a través de claves externas (claves ajenas, foreignkeys). Una clave externa es un campo o conjunto de campos que hacen referencia a otro campos o conjunto de campos de otra tabla. Esta relación habitualmente se establece entre uno o varios campos de una tabla y la clave principal de otra tabla, y la mayoría de las veces va a guardar relación directa con las políticas de integridad referencial definidas.

SubConsultas
Una subconsulta es unainstrucción SELECT anidada dentro de una instrucción SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta.
Puede utilizar tres formas de sintaxis para crear una subconsulta:
    comparación [ANY | ALL | SOME] (instrucción sql) 
    expresión [NOT] IN (instrucción sql) 
    [NOT] EXISTS (instrucción sql)
En donde:
comparación
Es una expresión y un operador decomparación que compara la expresión con el resultado de la subconsulta.
expresión
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.
Se puede utilizar una subconsulta en lugar de una expresión en la lista de campos de unainstrucción SELECT o en una cláusula WHERE o HAVING. En una subconsulta, se utiliza una instrucción SELECT para proporcionar un conjunto de uno o más valores especificados para evaluar en la expresión de la cláusula WHERE o HAVING.
Se puede utilizar el predicado ANY o SOME, los cuales son sinónimos, para recuperar registros de la consulta principal, que satisfagan la comparación con cualquier otroregistro recuperado en la subconsulta. El ejemplo siguiente devuelve todos los productos cuyo precio unitario es mayor que el de cualquier producto vendido con un descuento igual o mayor al 25 por ciento.:
    SELECT * FROM Productos WHERE PrecioUnidad > ANY 
    (SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25);
El predicado ALL se utiliza para recuperar únicamenteaquellos registros de la consulta principal que satisfacen la comparación con todos los registros recuperados en la subconsulta. Si se cambia ANY por ALL en el ejemplo anterior, la consulta devolverá únicamente aquellos productos cuyo precio unitario sea mayor que el de todos los productos vendidos con un descuento igual o mayor al 25 por ciento. Esto es mucho más restrictivo.
El predicado IN seemplea para recuperar únicamente aquellos registros de la consulta principal para los que algunos registros de la subconsulta contienen un valor igual. El ejemplo siguiente devuelve todos los productos vendidos con un descuento igual o mayor al 25 por ciento.:
    SELECT * FROM Productos WHERE IDProducto IN 
    (SELECT IDProducto FROM DetallePedido WHERE Descuento >=  0.25);
Inversamente sepuede utilizar NOT IN para recuperar únicamente aquellos registros de la consulta principal para los que no hay ningún registro de la subconsulta que contenga un valor igual.
El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en comparaciones de verdad/falso para determinar si la subconsulta devuelve algún registro.
Se puede utilizar también alias del nombre de la tabla enuna subconsulta para referirse a tablas listadas en la cláusula FROM fuera de la subconsulta. El ejemplo siguiente devuelve los nombres de los empleados cuyo salario es igual o mayor que el salario medio de todos los empleados con el mismo título. A la tabla Empleados se le ha dado el alias T1::
    SELECT Apellido, Nombre, Titulo, Salario FROM Empleados AS T1 
    WHERE Salario >=...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Que es una base de datos y tipos de base de datos
  • Bases de datos y usuarios de bases de datos
  • Base De Datos
  • Base De Datos
  • Base de datos
  • Base De Datos
  • Base de datos
  • Bases de datos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS