En esta ocasión te voy a mostrar el uso de los operadores lógicos de SQL. AND, OR y NOT.


Hasta este punto en el curso, solo lo habíamos utilizado con condiciones simples (una condición). Al combinar múltiples condiciones, es posible precisar aún más los resultados que obtenemos de una consulta. En este capítulo, aprenderemos cómo usar los operadores AND y OR para construir consultas más complejas con múltiples condiciones.

Para los ejemplos de consultas, voy a utilizar las tablas que vienen con la instalación de MySQL (world y sakila).

Operadores lógicos: AND

El operador AND se usa para combinar múltiples condiciones en una consulta. Estas deben ser verdaderas para que una fila sea incluida en el resultado. Veamos un ejemplo de uso práctico:

SELECT Name, Population, Continent
FROM Country
WHERE Population > 1000000 AND
Continent = "Asia"
ORDER BY Population DESC;

Esto nos da un resultado de países que tienen más de 1 millón de habitantes y que además, pertenecen a Asia.

operador and sql

Operadores lógicos: OR

El operador OR se utiliza para combinar múltiples condiciones en una consulta, y al menos una de las condiciones debe ser verdadera para que una fila sea incluida en el resultado. En este caso, la condición no es tan restrictiva.

Probemos la misma consulta, pero con OR. En este caso, nos va a devolver las filas de los países que tengan más de 1 millón de habitantes y todos los de Asia, independientemente de si tienen 1 millón o no.

SELECT Name, Population, Continent
FROM Country
WHERE Population > 1000000 OR
Continent = "Asia"
ORDER BY Population DESC;
operador or sql

Combinaciones entre OR y AND

Es posible hacer combinaciones de ambos operadores para llegar a realizar consultas más complejas todavía. Además, podrás encadenar más de dos condiciones.


SELECT store_id, first_name, last_name, active
FROM customer
WHERE (active = 1 AND store_id =2)
OR (first_name = "ANDREA" OR first_name = "ANGEL")
ORDER BY store_id ASC, first_name ASC
múltiples operadores and y or en SQL

Lo primero, se aplica la condición (active = 1 AND store_id =2). En este caso, se pide que los clientes estén activos (1, 0 sería inactivo) y que además, sean clientes de la tienda con id 2.

Después, decimos con OR que puede sacar también resultados de la siguiente condición: (first_name = «ANDREA» OR first_name = «ANGEL»). Independientemente de la condición anterior, saca las filas donde el nombre sea igual a «ANDREA» o también, donde el nombre sea igual a «ANGEL».

Es por eso, que tenemos en los resultados, las dos primeras filas, que no son de la tienda 2, son de la 1, ya que la condición era el nombre en este paréntesis y no el ID de tienda.

Como puedes ver, se puede complicar mucho el tema de las consultas. Ves haciendo pruebas con diferentes consultas y verás como le pillas el truco.

Operadores lógicos: NOT

El operador NOT se utiliza para negar o invertir el valor de una expresión booleana. Básicamente, es para pedir que no muestre algo en los resultados.

SELECT Name, Population, Continent
FROM Country
WHERE NOT Population > 1000000 AND
NOT continent = "Asia"
ORDER BY Population DESC;

Esta consulta muestra todos los países que no tengan una población superior a 1 millón y además, que el continente no sea «Asia».

operador not sql

Espero que con estos ejemplos te quede claro el uso de los operadores lógicos de SQL. Por supuesto, los iré usando en muchos más ejemplos de otros temas.

No te pierdas nada del curso Máster en Python.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending