Está en la página 1de 7

operadores

de MySQL

MySQL dispone de una gran cantidad de utiles operadores y funciones. Los


operadores son uno de 10s elementos basicos de MySQL sin 10s que no podra
avanzar mucho. Por otra parte, existen muchas y complejas funciones, algunas de
las cuales nunca utilizara, pero merece la pena repasar la lista completa ya que
puede encontrar funciones que le Sean de utilidad y otras que guarde en la recama-
ra para utilizarlas mas adelante.

Operadores Iogicos
Los operadores Iogicos, o booleanos, comprueban si algo es verdadero o falso.
Devuelven 0 si la expresion es falsa y 1 si es verdadera. Los valores nulos se
procesan de distintas formas, en funcion del operador. Normalmente devuelven
un valor NULL.

AND, &&
v a l o r l AND v a l o r l
v a l o r l & & valor2

Devuelven verdadero (1) si ambos valores son verdaderos


Por ejemplo:
mysql> SELECT 1 AND 0;
+- +
IlANDO I
+- +
I 0 I
+- +
mysql> SELECT 1=1 && 2=2;

valorl OR valor2
valorl I I valor 2

Devuelven verdadero (1) si alguno de 10s dos valores, v a l o r l o v a l o r 2 , es


verdadero.
Por ejemplo:
mysql> SELECT 1 OR 1;
+- +
I l O R 1 I
+- +
I 1 I
+- +
mysql> SELECT 1=2 11 2=3;

NOT, !
NOT valorl
! valorl

Devuelven lo contrario del v a l o r 1,que es verdadero si v a l o r 1 es falso y


falso si v a l o r 2 es verdadero. Por ejemplo:
mysql> SELECT !l;
+-+
I !1 I
+-+
1 0 1
+-+
mysql> SELECT NOT ( 1 = 2 ) ;
+- +
I NOT(1=2) I
+-
-- +
I 1 I
+- +

Operadores aritmeticos
Los operadores aritmeticos realizan calculos matematicos basicos. Si alguno
de 10s valores es nulo, 10s resultados de toda la operacion tambien lo seran. Por
motivos del calculo, las cadenas se convierten en numeros. Algunas cadenas se
convierten a1 numero equivalente (como las cadenas '1' y '33'); otras se convierten
en 0 (como las cadenas 'uno' y 'abc').

valorl + valor2
Suma dos valores.
Por ejemplo:
mysql> SELECT 1 + 3 ;
+-+
1 1+3 1
+-+
1 4 1
+-+
mysql> SELECT 1 5 + " 9 r 1;

valorl - valor2

Resta valor2 de valorl.


Por ejemplo:
SELECT 1 - 9 ;
valorl * valor2

Multiplica dos valores. Por ejemplo:


mysql> SELECT 12 10;
+- +
1 12 * 10 1
+- +
I 120 1
+- +

valorl / valor2

Divide valor 1 por valor2. Por ejemplo:


mysql> SELECT 4/2;
+-+
1 4/2 1
+-+
1 2.00 1
+-+
mysql> SELECT 10005.00000/10004.00000;
+ +
1 10005.00000/10004.00000 1

Devuelve el modulo (el resto que se obtiene despues de dividir valorl por
valor2). Por ejemplo:
mysql> SELECT 3%2;
+-+
1 3%2 1
+-+
I 1 I
+-+

Operadores de comparacion
Los operadores de comparacion comparan valores y devuelven verdadero o
falso ( 1 o 0) en funcion de 10s resultados. Si hay un valor nulo, en la mayoria de
10s casos el operador devolvera el valor NULL. Se pueden comparar distintos
tipos (cadenas, numeros, fechas, etc.) aunque si 10s tipos son diferentes tendra
que prestar especial atencion. MySQL convierte 10s tipos a su equivalente todo lo
bien que puede.
Si se trata de comparar cadenas, se comparan sin distinguir entre maytisculas
y minusculas, a menos que Sean BINARY.Por ejemplo, A es lo mismo que a , per0
BINARY A no es lo mismo que BINARY a. En este caso primer0 vienen las
mayusculas, por lo que BINARY A es menor que BINARY a. Del mismo modo, la
cadena 10 es menor que la cadena 2 porque, a1 ser una cadena, se compara de
izquierda a derecha. La primera comprobacion es ver si 1 es menor que 2 y, como
si lo es, la comprobacion se detiene en ese punto (lo mismo queaz es anterior ab).

valorl = valor2

Verdadero si tanto valorl como valor2 son iguales. Si alguno es nulo,


devolvera NULL.
Por ejemplo:
mysql> SELECT 1=2;
+-+
1 1=2 1
+-+
1 0 1
+-+
mysql> SELECT ' A ' = ' a 1 ;
+- +
I 'A1 = 'a' I
+- +
I 1 I
+- +
mysql> SELECT BINARY 'a' = ' A 1 ;
+ +
I BINARY ' a 1 = ' A ' I
+ +
I 0 I
+ +
mysql> SELECT NULL=NULL;
+- +
I NULL=NULL I
+-
-- +
1 NULL I
+- +

v a l o r l <> v a l o r 2
valorl != valor2
Verdadero si valor 1 no es igual a valor 2 .
Por ejemplo:
mysql> SELECT 'a' != 'A';
+-
-- +
1 'at != 'A' 1
+- +
I 0 I
+- +
mysql> SELECT BINARY 'a' <> 'A';
+ +
I BINARY 'a' <> 'A' I
+ +
I 1 I
+ +

valorl > valor2

Verdadero si valor 1 es mayor que va 1or2.


Por ejemplo:
mysql> SELECT 1>2;
+-+
1 1>2 1
+-+
1 0 1
+-+
mysql> SELECT 'b'>'a1;
+- +
I 'bl>'a' I
+- +

valorl < valor2

Verdadero si valor 1 es menor que valor 2 .


Por ejemplo:
mysql> SELECT 'b' < 'dl;
+- +
I 'b' < 'd' I
+- +
I 1 I
+- +
mysql> SELECT '4' < '34 ;
+------- +
valorl >= valor2

Verdadero si v a l o r 1 es mayor o igual que va l o r 2 .


Por ejemplo:
mysql> SELECT 4 >c 4 ;
+- +
1 4 > = 4 1
+- +
I 1 I
+- +

Verdadero si v a l o r 1 es menor o igual que va l o r 2


Por ejemplo:
mysql> SELECT 4 <= 3;
+- +
( 4 < = 3 1
+- +
I 0 I
+- +

valorl <=> valor2

Verdadero si va 1o r 1 es igual a va 1o r 2, incluyendo 10s valores nulos. Esto


le pennite creer que NULL es un valor real y, por lo tanto, obtener un resultado
verdadero o falso (en lugar de NULL ) cuando utilice NULL en una comparacion
con valores que no Sean NULL. Por el contrario, MySQL se niega a dar una
respuesta a la pregunta " ~ es4 igual a NULL? En su lugar, indica que la expresion
4 =NULL tiene como resultado algo indeterminado ( NULL ).
Por ejemplo:
mysql> SELECT NULlr<=>NULL;
+- +
I NULL<=>NULL I
+- +

También podría gustarte