Anda di halaman 1dari 8

3.2.

2 Restriccin y ordenacin de datos


La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos una condicin en la clusula WHERE.

Esta condicin regresa todas las filas que cumplen dicha condicional. La complejidad del criterio de bsqueda es prcticamente ilimitada, y en l se pueden combinar operadores de diversos tipos con funciones de columnas, componiendo expresiones ms o menos complejas. Condicin de bsqueda basada en una comparacin compuesta En este ejemplo, se utiliza el operador lgico OR en la clusula WHERE para localizar los empleados que son chofer o secretaria. La consulta y la tabla resultados se muestra a continuacin.
1

SELECT nombreEmpleado "Nombre Empleado", oficio FROM empleado WHERE (oficio = 'Chofer') OR (oficio = 'Secretaria')

3.2.3 Informes de datos agregados mediante funciones de grupo

La clusula GROUP BY combina los registros con valores idnticos en la lista de campos especificada en un nico registro. Para cada registro se puede crear un valor agregado si se incluye una funcin SQL agregada como por ejemplo SUM o COUNT, en la instruccin SELECT. Su sintaxis es:

SELECT [ALL | DISTINCT ] <nombre_campo> [{,<nombre_campo>}] [{,<funcion_agregacin>}] FROM <nombre_tabla>|<nombre_vista> [{,<nombre_tabla>|<nombre_vista>}] [WHERE <condicin> [{ AND|OR <condicin>}]] [GROUP BY <nombre_campo> [{,<nombre_campo >}]] [HAVING <condicin>[{ AND|OR <condicin>}]] [ORDER BY <nombre_campo>|<campo_ndice> [ASC | DESC] [{,<nombre_campo>|<campo_ndice> [ASC | DESC ]}]]
4

En la clusula GROUP BY se colocan las columnas por las que vamos a agrupar. Y en la clusula HAVING filtra los registros una vez agrupados.

La evaluacin de las diferentes clusulas en tiempo de ejecucin, se efecta en el siguiente orden:

Clusula WHERE

Descripcin Filtra las filas Crea una tabla de grupo nueva Filtra los grupos Clasifica la salida
5

GROUP BY
HAVING ORDER BY

Los valores NULL en los campos de GROUP BY se agrupan y no se omiten. Sin embargo, los valores NULL no se calculan en ninguna funcin de agregado SQL.

Un ejemplo de SELECT de grupos es consultar los empleados agrupados por su oficio. Un primer intento de consulta es el siguiente:
SELECT oficio, nombreEmpleado FROM empleado GROUP BY oficio
6

Se presenta un error debido a que cuando se utiliza GROUP BY, las columnas implicadas en el SELECT y que no aparezcan en la clusula GROUP BY deben tener una funcin de agrupamiento. En otras palabras, la columna nombreEmpleado debe tener una funcin de agrupamiento que actue sobre ella (MAX, MIN, SUM, COUNT, AVG). De no ser posible, deber aparecer dicha columna a la clusula GROUP BY.

La consulta correcta quedaria as: SELECT oficio, COUNT(nombreEmpleado) Elementos FROM empleado GROUP BY oficio ORDER BY oficio

Anda mungkin juga menyukai