Operadores Lógicos en SQL – AND, OR, NOT y Precedencia

🔗 Operadores Lógicos en SQL

SQL permite usar múltiples condiciones gracias a operadores como AND, OR y NOT.


🤝 Operador AND

El operador AND devuelve verdadero solo si ambas condiciones son verdaderas.

Ejemplo
SELECT 1 = 1 AND 'test' = 'test';

{061C345D-1BE3-41E5-A666-1B74F1FDCEA1}.png
Resultado → 1 (verdadero)

SELECT 1 = 1 AND 'test' = 'abc';

{383BA541-76AD-44E6-8A23-29563933A137}.png
Resultado → 0 (falso)

Info

En MySQL:

  • 1 = true

  • 0 = false


🔀 Operador OR

Devuelve verdadero si al menos una de las condiciones es verdadera.

Example
SELECT 1 = 1 OR 'test' = 'abc';

Resultado → 1 (verdadero)

SELECT 1 = 2 OR 'test' = 'abc';

Resultado → 0 (falso)


🔁 Operador NOT

Invierte el valor booleano de una expresión.

Example
SELECT NOT 1 = 1;

0 (false)

SELECT NOT 1 = 2;

1 (true)


💠 Operadores Simbólicos

Puedes usar también las versiones simbólicas:

Example
SELECT 1 = 1 && 'test' = 'abc';
SELECT 1 = 1 || 'test' = 'abc';
SELECT 1 != 1;

🔍 Uso de operadores en consultas SQL


❗ Diferente de: !=

Example
SELECT * FROM logins WHERE username != 'john';

📌 Combinar operadores

Example

SELECT * FROM logins 

WHERE username != 'john'
AND id > 1;


⚙️ Precedencia de Operadores

La precedencia determina qué operación se evalúa primero.

Orden desde mayor prioridad hacia abajo:
  1. /, *, %

  2. +, -

  3. Comparaciones = > < <= >= != LIKE

  4. NOT

  5. AND

  6. OR


🧮 Ejemplo de precedencia

Consulta original:

SELECT * FROM logins 
WHERE username != 'tom' AND id > 3 - 2;
  1. Primero se evalúa la resta:
id > 1
  1. Después las comparaciones:
username != 'tom'
  1. Finalmente el AND combina ambas:
    SELECT * FROM logins 
    

WHERE username != 'tom' AND id > 1;
```

Ejercicio

En la tabla 'títulos', ¿cuál es el número de registros DONDE el número de empleados es mayor a 10000 O su título NO contiene 'ingeniero'?

SELECT COUNT(*) 
FROM titles 
WHERE emp_no > 10000 OR title != 'engineer';

{AA08716D-8186-4503-9A70-3E2DD3A1B38F}.png