Tema 2. Las consultas simples (III) |
|
|
A continuación veremos las cláusulas que
nos permiten indicar qué filas
queremos visualizar.
|
|
|
|
Las cláusulas
DISTINCT / ALL
|
|
Al incluir la cláusula DISTINCT
en la SELECT, se eliminan del resultado
las repeticiones de filas. Si por
el contrario queremos que aparezcan todas las filas incluidas
las duplicadas, podemos incluir la cláusula ALL
o nada, ya que ALL es el valor que SQL asume por defecto.
Por ejemplo queremos saber los códigos de los
directores de oficina.
|
|
SELECT dir FROM oficinas
SELECT ALL dir FROM oficinas
|
Lista los códigos de los directores de las oficinas.
El director 108 aparece en cuatro oficinas, por lo tanto aparecerá
cuatro veces en el resultado de la consulta. |
|
SELECT DISTINCT dir FROM oficinas
|
En este caso el valor 108 aparecerá una sola vez
ya que le decimos que liste los distintos valores de directores.
|
|
La cláusula TOP
permite sacar las n
primeras filas de la tabla origen. No elige entre valores iguales,
si pido los 25 primeros valores pero el que hace 26 es el mismo valor
que el 25, entonces devolverá 26 registros en vez de 25 (o los que sea).
Siempre se guia por la columna de ordenación, la que aparece en
la cláusula ORDER BY o en su defecto la clave principal de la tabla.
Por ejemplo queremos saber los dos empleados más
antiguos de la empresa.
|
|
SELECT TOP 2 numemp, nombre
FROM empleado
ORDER BY contrato
|
Lista el código y nombre de los empleados ordenándolos
por fecha de contrato, sacando unicamente los dos primeros (serán
los dos más antiguos).
|
|
SELECT TOP 3 numemp, nombre
FROM empleado
ORDER BY contrato
|
En este caso tiene que sacar los tres primeros, pero
si nos fijamos en las fechas de contrato tenemos 20/10/86, 10/12/86, 01/03/87,
01/03/87, la tercera fecha es igual que la cuarta, en este caso sacará
estas cuatro filas en vez de tres, y sacaría todas las filas que
tuviesen el mismo valor que la tercera fecha de contrato.
|
|
El número de filas que queremos visualizar se
puede expresar con un número entero o como un porcentaje
sobre el número total de filas
que se recuperarían sin la cláusula TOP. En este último
caso utilizaremos la cláusula TOP n PERCENT
(porcentaje en inglés).
|
|
SELECT TOP 20 PERCENT nombre
FROM empleado
ORDER BY contrato
|
Lista el nombre de los empleados ordenándolos
por fecha de contrato, sacando unicamente un 20% del total de empleados.
Como tenemos 10 empleados, sacará los dos primeros, si tuviesemos
100 empleados sacaría los 20 primeros.
|
|
La cláusula WHERE
selecciona unicamente las filas que
cumplan la condición
de selección especificada.
En la consulta sólo aparecerán las filas para las cuales la condición
es verdadera (TRUE), los valores nulos (NULL) no se incluyen por lo tanto
en las filas del resultado. La condición
de selección puede ser cualquier condición
válida o combinación
de condiciones utilizando los operadores NOT
(no) AND (y) y OR
(ó). En ACCESS2000 una cláusula WHERE puede contener hasta 40 expresiones
vinculadas por operadores lógicos AND y OR. Si quieres ver cómo
funcionan los operadores lógicos
Para empezar veamos un ejemplo sencillo:
|
|
SELECT nombre
FROM empleados
WHERE oficina = 12
|
Lista el nombre de los empleados de la oficina 12. |
|
SELECT nombre
FROM empleados
WHERE oficina = 12 AND edad > 30
|
Lista el nombre de los empleados de la oficina 12 que tengan
más de 30 años. (oficina igual a 12 y edad mayor que
30) |
|
Aviso legal: este curso es gratuito
siempre que se visualice desde la página web de aulaClic. No está
permitido descargar el curso ni utilizarlo en academias o centros de enseñanza
privados sin estar conectado a Internet.
|
© aulaClic. Todos los derechos reservados.
Free Computer tutorials .
Prohibida la reproducción por cualquier medio.
Abril-2001.aulaClic.com
|
|
|