viernes, 17 de julio de 2009

Oracle Sql WHERE:

Sintaxis

SELECT ... <columnas>
FROM......<tabla>
WHERE....<condiciones>


La cláusula WHERE se utiliza para filtrar los resultado obtenidos por una consulta sql

Si quiero que mi consulta me retorne solo aquellos valores que contengan cierta condición, entonces voy a utilizar la cláusula "WHERE"

Suponiendo que tengo una tabla de empleados cuyos atributos o columnas con:

nombre : VARCHAR(20)
apellido : VARCHAR(15)
edad : NUMBER

Y de la cual quiero generar una consulta que me retorne la información de aquellos empleados que son mayores de 28 años

La consulta a realizar seria:

SELECT * FROM empleados WHERE edad > 28;

Ahora bien, si mi consulta fuera por aquellos empleados de tienen igual o mayor edad que 28 entonces la consulta seria algo asi:

SELECT * FROM empleados WHERE edad >= 28;
entonces la consulta me va a retornar la información de aquellos empleados cuya edad sea mayor o igual a 28

La Cláusula WHERE utiliza condiciones de comparación para comparar una expresión con otra, o con un valor. Estas condiciones pueden ser:

Operadores Aritmeticos:

  • "+" SELECT * FROM empleados WHERE edad + 1 = 26;

  • "=" (igual) SELECT * FROM empleados WHERE nombre = 'Ignacio'
    --Ojo que Oracle es case sensitive no es lo mismo 'Ignacio' que 'IGNACIO'
    --Por otra parte para lo que son caracteres en ORACLE se utiliza la comilla simple

  • "<" (menor que)
  • ">" (mayor que)

  • "<>"(distintos)


    Condiciones AND, OR y BETWEEN

  • "AND" Sirve para retornar aquellos campos que contengan ambas condiciones, interseccion de ambas condiciones. Restringe la consulta a aquellos empleados que poseen ambas condiciones.

    Ej SELECT * FROM empleados WHERE edad > 25 AND edad <>
  • "OR" Sirve para retornar aquellos campos que contengan una condicion o la otra. Expande el resultado a aquellos resultados que poseen una condicion o la otra

    Ej SELECT * FROM empleados WHERE edad <> 30
    En este ejemplo el resultado me va a traer todos los empleados menores a 25 años y todos los mayores a 30 años.
  •