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.
SELECT 1 = 1 AND 'test' = 'test';

Resultado → 1 (verdadero)
SELECT 1 = 1 AND 'test' = 'abc';

Resultado → 0 (falso)
En MySQL:
-
1 = true
-
0 = false
🔀 Operador OR
Devuelve verdadero si al menos una de las condiciones es verdadera.
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.
SELECT NOT 1 = 1;
→ 0 (false)
SELECT NOT 1 = 2;
→ 1 (true)
💠 Operadores Simbólicos
Puedes usar también las versiones simbólicas:
-
&&→ AND -
||→ OR -
!→ NOT
SELECT 1 = 1 && 'test' = 'abc';
SELECT 1 = 1 || 'test' = 'abc';
SELECT 1 != 1;
🔍 Uso de operadores en consultas SQL
❗ Diferente de: !=
SELECT * FROM logins WHERE username != 'john';
📌 Combinar operadores
SELECT * FROM logins
WHERE username != 'john'
AND id > 1;
⚙️ Precedencia de Operadores
La precedencia determina qué operación se evalúa primero.
-
/,*,% -
+,- -
Comparaciones
= > < <= >= != LIKE -
NOT -
AND -
OR
🧮 Ejemplo de precedencia
Consulta original:
SELECT * FROM logins
WHERE username != 'tom' AND id > 3 - 2;
- Primero se evalúa la resta:
id > 1
- Después las comparaciones:
username != 'tom'
- 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';
