Continuamos explicando los posibles operadores que pueden aparecer en la consulta select en SQL.
Null y Not Null
Se dice que una columna de una fila es NULL si está completamente vacía.
Podemos utilizar estos términos a la hora de hacer consultas si queremos saber si una columna esta vacía o no.
Por ejemplo, A partir de una tabla de empleados consultamos los apellidos de aquellos que no tengan comisión, que es lo mismo que decir, aquellos que su comisión sea nula.
Select apellido from empleado where comisión IS NULL;
De esta misma forma podemos preguntar por los que tengan comisión.
Select apellido from empleado where comisión IS NOT NULL;
Operador IN
Hasta ahora todas las comprobaciones lógicas que hemos visto comparan una columna o expresión con valor, pero también podemos comparar conjunto de valores.
El operador IN nos permite comprobar si una expresión pertenece a un conjunto de valores. Su sintaxis es la siguiente:
IN (lista de valores separados por comas)
De la misma forma utilizamos el NOT IN para saber si no están dentro de ese conjunto de valores.
Un ejemplo de utilización de IN y NOT IN:
Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento sea el 10 o el 30
Select apellido from empleado where departamento IN (10,30);
Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento no sea ni el 10 ni el 30
Select apellido from empleado where departamento NOT IN (10,30);
También lo podemos aplicar a lista de valores con cadenas:
Queremos mostrar los apellidos de la tabla empleado cuyo oficio sea peón o capataz
Select apellidos from empleado where oficio IN ('peon','capataz');
Operador between
Este operador comprueba si un valor está comprendido o no dentro de un rango de valores. Su sintaxis es la siguiente:
<expresión> [NOT] between valor_inicial AND valor_final
Ponemos un ejemplo:
Queremos mostrar el apellido y el salario de los empleados cuyo salario este comprendido entre 2000 y 2500 euros
Select apellido,salario from empleado where salario between 2000 and 2500
Operadores AND y OR combinados
Estos operadores se pueden combinar para sacar resultados más complicados en nuestras sentencias selects, pero siempre con cuidado y utilizando los paréntesis para agrupar las expresiones que se desean evaluar.
El orden de prioridad de los operadores lógicos es el siguiente, primero NOT, luego AND y por último OR.
Ejemplo de uso:
Queremos obtener el apellido, salario y departamento de los empleados cuyo salario sea mayor de 1000 euros en los departamentos 10 o 30
Select apellido,salario, departamento from empleado where salario>1000 and (departamento=10 or departamento=30);
Se dice que una columna de una fila es NULL si está completamente vacía.
Podemos utilizar estos términos a la hora de hacer consultas si queremos saber si una columna esta vacía o no.
Por ejemplo, A partir de una tabla de empleados consultamos los apellidos de aquellos que no tengan comisión, que es lo mismo que decir, aquellos que su comisión sea nula.
Select apellido from empleado where comisión IS NULL;
De esta misma forma podemos preguntar por los que tengan comisión.
Select apellido from empleado where comisión IS NOT NULL;
Operador IN
Hasta ahora todas las comprobaciones lógicas que hemos visto comparan una columna o expresión con valor, pero también podemos comparar conjunto de valores.
El operador IN nos permite comprobar si una expresión pertenece a un conjunto de valores. Su sintaxis es la siguiente:
De la misma forma utilizamos el NOT IN para saber si no están dentro de ese conjunto de valores.
Un ejemplo de utilización de IN y NOT IN:
Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento sea el 10 o el 30
Select apellido from empleado where departamento IN (10,30);
Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento no sea ni el 10 ni el 30
Select apellido from empleado where departamento NOT IN (10,30);
También lo podemos aplicar a lista de valores con cadenas:
Queremos mostrar los apellidos de la tabla empleado cuyo oficio sea peón o capataz
Select apellidos from empleado where oficio IN ('peon','capataz');
Operador between
Este operador comprueba si un valor está comprendido o no dentro de un rango de valores. Su sintaxis es la siguiente:
<expresión> [NOT] between valor_inicial AND valor_final
Ponemos un ejemplo:
Queremos mostrar el apellido y el salario de los empleados cuyo salario este comprendido entre 2000 y 2500 euros
Select apellido,salario from empleado where salario between 2000 and 2500
Operadores AND y OR combinados
Estos operadores se pueden combinar para sacar resultados más complicados en nuestras sentencias selects, pero siempre con cuidado y utilizando los paréntesis para agrupar las expresiones que se desean evaluar.
El orden de prioridad de los operadores lógicos es el siguiente, primero NOT, luego AND y por último OR.
Ejemplo de uso:
Queremos obtener el apellido, salario y departamento de los empleados cuyo salario sea mayor de 1000 euros en los departamentos 10 o 30
Select apellido,salario, departamento from empleado where salario>1000 and (departamento=10 or departamento=30);