En este articulo veremos los operadores lógicos en PostgreSQL (and, or y not). Hasta ahora hemos visto cómo realizar consultas con condiciones gracias al where y los operadores relacionales y ahora utilizaremos los operadores lógicos para establecer condiciones más complejas.
Operadores lógicos
Utilizamos los operadores lógicos para establecer más de una condición en el where y conseguir así consultas mas complejas.
Tipos de operadores
Disponemos de seis operadores relacionales en PostgreSQL:
Operador | Función |
---|---|
and | condicion_1 and condicion_2 – se cumplen las dos condiciones |
or | condicion_1 or condicion_2 – se cumple cualquiera de las dos condiciones |
not | not condicion1 – no se cumple la condición |
Operador lógico AND
Este operador se utiliza cuando queremos que se cumplan todas las condiciones. Observa este ejemplo como le indicamos que debe cumplir la condición de que el empleado sea igual a 1 y ademas el nombre debe empezar por Miguel:

Operador lógico OR
Utilizamos este operador cuando queremos que se cumpla cualquiera de las condiciones especificadas. Observa como en este ejemplo le indicamos que queremos todos los datos cuando el id_empleado es igual a o que su nombre empiece por Ismael:

Operador lógico NOT
Utilizamos este operador cuando queremos que no se cumpla la condición. Observa como en este ejemplo le indicamos que nos muestre todos los datos de aquellos empleados que su nombre no empiece por Ismael:

Uso de parentesis
Cuando se tienen más de dos condiciones se deben utilizar paréntesis para establecer el orden tal y como hacemos con las operaciones matemáticas. Dicho de otro modo, todo lo que engloba un paréntesis lo considerara una única expresión.
En el siguiente ejemplo tenemos tres condiciones; que el id_empleado sea igual a tres, que su sueldo sea igual a 80000 o que su nombre empiece por Ismael. Esto nos devolverá dos registros:

Ahora mira este otro ejemplo donde tenemos las mismas condiciones, pero al incluir los paréntesis nos devuelve un resultado diferente:

¿Por qué no nos devuelve lo mismo? Muy fácil, en el ejemplo anterior le estamos indicando que si o si el id_empleado tiene que ser igual a tres y una vez evaluado esta condición evalúa la que esta dentro del paréntesis y debe cumplir ademas de la anterior que su sueldo sea 80000 o su nombre comience por Ismael. En este caso se cumple que su sueldo es igual a 80000.
Ejemplo completo
Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios: