|
Tema 2. Las consultas simples
(IV)
|
|
Las condiciones de selección
son las condiciones que pueden aparecer en la cláusula WHERE.
En SQL tenemos cinco condiciones básicas:
el test de comparación
el test de rango
el test de pertenencia a un conjunto
el test de valor nulo
el test de correspondencia con patrón
.
|
|
El test de comparación.
Compara el valor de una expresión con el valor de otra.
La sintaxis es la siguiente:
|
|
= igual que
<> distinto de
< menor que
<= menor o igual
> mayor que
>= mayor o igual
|
|
SELECT numemp, nombre
FROM empleados
WHERE ventas > cuota
|
Lista los empleados cuyas ventas superan su cuota |
|
SELECT numemp, nombre
FROM empleados
WHERE contrato < #01/01/1988#
|
Lista los empleados contratados antes del año 88 (cuya fecha de
contrato sea anterior al 1 de enero de 1988).
¡¡Ojo!!, las fechas entre almohadillas # # deben estar con
el formato mes,dia,año aunque tengamos definido otro formato para
nuestras fechas.
|
|
SELECT numemp, nombre
FROM empleados
WHERE YEAR(contrato) < 1988
|
Este ejemplo obtiene lo mismo que el anterior pero utiliza
la función year(). Obtiene los empleados cuyo año de la fecha
de contrato sea menor que 1988. |
|
SELECT oficina
FROM oficinas
WHERE ventas < objetivo * 0.8
|
Lista las oficinas cuyas ventas estén por debajo del 80% de su objetivo.
Hay que utilizar siempre el punto decimal aunque tengamos definida la
coma como separador de decimales.
|
|
SELECT oficina
FROM oficinas
WHERE dir = 108
|
Lista las oficinas dirigidas por el empleado 108.
|
|
Test
de rango (BETWEEN).
Examina si el valor de la expresión
está comprendido entre
los dos valores definidos por exp1
y exp2.
Tiene la siguiente sintaxis:
|
|
SELECT numemp, nombre
FROM empleados
WHERE ventas BETWEEN 100000 AND 500000
|
Lista los empleados cuyas ventas estén comprendidas
entre 100.000 y 500.00 |
|
SELECT numemp, nombre
FROM empleados
WHERE (ventas >= 100000) AND (ventas <= 500000)
|
Obtenemos lo mismo que en el ejemplo anterior. Los paréntesis
son opcionales. |
|
Test de pertenencia a conjunto
(IN)
Examina si el valor de la expresión
es uno de los valores incluidos en
la lista de
valores.
Tiene la siguiente sintaxis:
 |
|
SELECT numemp, nombre, oficina
FROM empleados
WHERE oficina IN (12,14,16)
|
Lista los empleados de las oficinas 12, 14 y 16 |
|
SELECT numemp, nombre
FROM empleados
WHERE (oficina = 12) OR (oficina = 14) OR (oficina = 16)
|
Obtenemos lo mismo que en el ejemplo anterior. Los paréntesis
son opcionales. |
|
Test de valor nulo (IS NULL)
Una condición de selección puede dar como resultado el valor verdadero
TRUE, falso FALSE o nulo NULL.
Cuando una columna que interviene
en una condición de selección contiene
el valor nulo, el resultado
de la condición no es verdadero ni falso, sino nulo,
sea cual sea el test que se haya
utilizado. Por eso si queremos listar las filas que tienen valor en una
determinada columna, no podemos utilizar el test de comparación,
la condición oficina = null devuelve el valor nulo sea cual sea
el valor contenido en oficina. Si queremos preguntar si una columna contiene
el valor nulo debemos utilizar un test especial,
el test de valor nulo.
Tiene la siguiente sintaxis:
Ejemplos:
|
|
SELECT oficina, ciudad
FROM oficinas
WHERE dir IS NULL
|
Lista las oficinas que no tienen director. |
|
SELECT numemp, nombre
FROM empleados
WHERE oficina IS NOT NULL
|
Lista los empleados asignados a alguna oficina (los que tienen
un valor en la columna oficina). |
|
Test de correspondencia con patrón (LIKE)
Se utiliza cuando queremos utilizar caracteres
comodines para formar el valor con el comparar.
Tiene la siguiente sintaxis:
Los comodines más usados son los siguientes:
? representa un carácter cualquiera
* representa cero o más caracteres
# representa un dígito cualquiera
(0-9)
Ejemplos:
|
|
SELECT numemp, nombre
FROM empleados
WHERE nombre LIKE 'Luis*'
|
Lista los empleados cuyo nombre empiece por Luis (Luis
seguido de cero o más caracteres).
|
|
SELECT numemp, nombre
FROM empleados
WHERE nombre LIKE '*Luis*'
|
Lista los empleados cuyo nombre contiene Luis, en este
caso también saldría los empleados José Luis (cero
o más caracteres seguidos de LUIS y seguido de cero o más
caracteres).
|
|
SELECT numemp, nombre
FROM empleados
WHERE nombre LIKE '??a*'
|
Lista los empleados cuyo nombre contenga una a como tercera
letra (dos caracteres, la letra a, y cero o más caracteres.
|
|
Si quieres saber más sobre comodines de Access2000
Pincha aquí
|
|
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
|
|
|