CONSULTAS

CONSULTAS

Una consulta SQL es tipo de consulta a una base de datos empleando lenguaje SQL.

Una consulta SQL básica puede constar con un máximo de seis cláusulas, de las cuales sólo dos son obligatorias (SELECT y FROM). Las cláusulas se especifican en el siguiente orden:

SELECT < lista de atributos >
FROM < lista de tablas >
WHERE < condición >
GROUP BY < atributo(s) de agrupación >
HAVING < condición de agrupación >
ORDER BY < lista de atributos >


SELECT: indica qué atributos o funciones se van a recuperar.

FROM: especifica todas las relaciones (tablas) que se necesitan en la consulta.

WHERE: especifica las condiciones, si es que hacen falta, para seleccionar tuplas de esas relaciones, incluyendo las condiciones de reunión.

GROUP BY: especifica atributos de agrupación.

HAVING: especifica una condición que deben cumplir los grupos seleccionados, no las tuplas individuales. Las funciones agregadas integradas COUNT, SUM, MIN, MAX y AVG se usan junto con la agrupación.

ORDER BY: especifica un orden para presentar el resultado de una consulta.

Combinación interna (INNER JOIN)
Con esta operación se calcula el producto cruzado de todos los registros; así cada registro en la tabla A es combinado con cada registro de la tabla B; pero sólo permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el tipo de JOIN más utilizado por lo que es considerado el tipo de combinación predeterminado.
SQL:2003 especifica dos formas diferentes para expresar estas combinaciones. La primera, conocida como explícita usa la palabra JOIN, mientras que la segunda es implícita y usa ',' para separar las tablas a combinar en la sentencia FROM de la declaración SELECT. Entonces siempre se genera el producto cruzado del cual se seleccionan las combinaciones que cumplan lo que indica la sentencia WHERE.
Es necesario tener especial cuidado cuando se combinan columnas con valores nulos NULL ya que el valor nulo no se combina con otro valor o con otro nulo, excepto cuando se le agregan predicados tales como IS NULL o IS NOT NULL.
Como ejemplo, la siguiente consulta toma todos los registros de la tabla Empleado y encuentra todas las combinaciones en la tabla Departamento. La sentencia JOIN compara los valores en la columna IDDepartamento en ambas tablas. Cuando no existe esta correspondencia entre algunas combinaciones, éstas no se muestran; es decir que si el número de departamento de un empleado no coincide con los números de departamento de la tabla Departamento, no se mostrará el empleado con su respectivo departamento en la tabla resultante.
Las dos consultas siguientes son similares, y se realizan de manera explicita (A) e implícita (B).
A. Ejemplo de la sentencia INNER JOIN explícita:
SELECT *
FROM   empleado
       INNER JOIN departamento
          ON empleado.IDDepartamento = departamento.IDDepartamento




Combinación externa (OUTER JOIN)
Mediante esta operación no se requiere que cada registro en las tablas a tratar tenga un registro equivalente en la otra tabla. El registro es mantenido en la tabla combinada si no existe otro registro que le corresponda.
En SQL:2003 no existe una notación implícita para las combinaciones externas.
Este tipo de operación se subdivide dependiendo de la tabla a la cual se le admitirán los registros que no tienen correspondencia, ya sean de tabla izquierda, de tabla derecha, o combinación completa.