Condiciones Lógicas
Operadores Lógicos
A | B | A AND B |
falso | falso | falso |
falso | verdadero | falso |
verdadero | falso | falso |
verdadero | verdadero | verdadero |
falso | NULL | falso |
NULL | falso | falso |
veradero | NULL | NULL |
NULL | verdadero | NULL |
A | B | A OR B |
falso | falso | falso |
falso | verdadero | verdadero |
verdadero | falso | verdadero |
verdadero | verdadero | verdadero |
falso | NULL | NULL |
NULL | falso | NULL |
verdadero | NULL | verdadero |
NULL | verdadero | verdadero |
A | B | A XOR B |
falso | falso | falso |
falso | verdadero | verdadero |
verdadero | falso | verdadero |
verdadero | verdadero | falso |
falso | NULL | NULL |
NULL | falso | NULL |
veradero | NULL | NULL |
NULL | verdadero | NULL |
A | NOT A |
falso | verdadero |
verdadero | falso |
NULL | NULL |
Para crear expresiones lógicas, a las que podremos aplicar el álgebra de Boole, disponemos de varios operadores de comparación. Estos operadores se aplican a cualquier tipo de columna: fechas, cadenas, números, etc, y devuelven valores lógicos: verdadero o falso (1/0).
Si uno o los dos valores a comparar son NULL, el resultado es NULL, excepto con el operador <=>, de comparación con NULL segura.
El operador <=> funciona igual que el operador =, salvo que si en la comparación una o ambas de las expresiones es nula el resultado no es NULL. Si se comparan dos expresiones nulas, el resultado es verdadero:
Operador | Descripción |
<= | Menor o igual |
< | Menor |
> | Mayor |
>= | Mayor o igual |
Los operadores IS NULL e IS NOT NULL sirven para verificar si una expresión determinada es o no nula
Ejemplos de aplicación:
- select * from artículos where precio >= 500 or stock >= 100;
- select nombre,descripcion, precio,cantidad from artículos
- where cantidad < 20 and precio >=100;
- select nombre, domicilio from agenda where domicilio is not null;
Sentencia Between
Entre los operadores de MySQL, hay uno para comprobar si una expresión está comprendida en un determinado rango de valores. La sintaxis es:- BETWEEN mínimo AND máximo
- NOT BETWEEN mínimo AND máximo
Ejemplo de aplicación
- select * from articulos where precio between 100 and 200;
- select * from articulos where precio not between 100 and 200;
Sentencia IN
Los operadores IN y NOT IN sirven para averiguar si el valor de una expresión determinada está dentro de un conjunto indicado- IN (
, , ...) - NOT IN (
, , ...)
El operador IN devuelve un valor verdadero, 1, si el valor de la expresión es igual a alguno de los valores especificados en la lista. El operador NOT IN devuelve un valor falso en el mismo caso. Por ejemplo:
SELECT 10 IN(2, 4, 6, 8, 10);
Ejemplo de aplicación
- select * from agenda where nombre in (‘Juan’,’Susana’);
- select * from agenda where nombre not in (‘Juan’,’Susana’);
Sentencia LIKE
El operador LIKE se usa para hacer comparaciones entre cadenas y patrones. El resultado es verdadero (1) si la cadena se ajusta al patrón, y falso (0) en caso contrario. Tanto si la cadena como el patrón son NULL, el resultado es NULL. La sintaxis es:
LIKE
Carácter | Descripción |
% | Coincidencia con cualquier número de caracteres, incluso ninguno. |
_ | Coincidencia con un único carácter. |
La comparación es independiente del tipo de los caracteres, es decir, LIKE no distingue mayúsculas de minúsculas, salvo que se indique lo contrario (ver operadores de casting):
Como siempre que se usan caracteres concretos para crear patrones, se presenta la dificultad de hacer comparaciones cuando se deben buscar precisamente esos caracteres concretos. Esta dificultad se suele superar mediante secuencias de escape. Si no se especifica nada en contra, el carácter que se usa para escapar es '\'. De este modo, si queremos que nuestro patrón contenga los caracteres '%' o '_', los escaparemos de este modo: '\%' y '\_':
Como en cualquier otro lenguaje, los paréntesis se pueden usar para forzar el orden de la evaluación de determinadas operaciones dentro de una expresión. Cualquier expresión entre paréntesis adquiere mayor precedencia que el resto de las operaciones en el mismo nivel de paréntesis.
Ejemplo de aplicación:
- select * from agenda where nombre like ´%ana%';
- --- lista todos los nombres que contienen ana
- --- ej. Analia,Mariana,Susana, Diana, etc.
0 Comentarios