Curso de MariaDB Desde la Consola/OperadoresAritméticos

De WikiCabal
Saltar a: navegación, buscar

Operadores Aritméticos

Operador de Adición

+ 

Si ambos operandos son enteros, el resultado se calcula con 
precisión BIGINT. Si cualquier número entero sin signo, el 
resultado también es un entero sin signo.
Para operandos reales o de cadena, operando con la máxima 
precisión determina la precisión del resultado.

MariaDB [Prueba1]> SELECT 3+5;
+-----+
| 3+5 |
+-----+
|   8 |
+-----+
1 row in set (0.00 sec)

Operador División de enteros

DIV

Similar a FLOOR(), pero es seguro 
con valores BIGINT. Resultados incorrectos pueden ocurrir 
para operandos no enteros que exceden la gama BIGINT.
Si se utiliza el ERROR de división por cero modo SQL, 
una división por cero produce un error. De lo contrario, 
devuelve NULL.
El resto de una división puede obtenerse usando el 
operador MOD.

MariaDB [Prueba1]> SELECT 300 DIV 7;
+-----------+
| 300 DIV 7 |
+-----------+
|        42 |
+-----------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 300 DIV 0;
+-----------+
| 300 DIV 0 |
+-----------+
|      NULL |
+-----------+
1 row in set (0.00 sec)

Operador de División

/

Dividir por cero, devolverá NULL. 
De forma predeterminada, devuelve cuatro dígitos 
después del decimal. Esto está determinado por el 
incremento de precisión de div variable de sistema 
de servidor que por defecto es cuatro. 
Puede ajustarse de 0 a 30.
Si se utiliza el ERROR de división por cero modo SQL, 
una división por cero produce un error. 
De lo contrario, devuelve NULL.

MariaDB [Prueba1]> SELECT 4/5;
+--------+
| 4/5    |
+--------+
| 0.8000 |
+--------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 300/(2-2);
+-----------+
| 300/(2-2) |
+-----------+
|      NULL |
+-----------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 300/7;
+---------+
| 300/7   |
+---------+
| 42.8571 |
+---------+
1 row in set (0.00 sec)

MOD(N,M), N % M, N MOD M

Operador de Modulo

 %, MOD

Devuelve el resto de N dividido por M.
Si se utiliza el ERROR de división por cero 
modo SQL, cualquier módulo número cero produce 
un error. De lo contrario, devuelve NULL.
La parte entera de una división puede obtenerse 
utilizando DIV.

MariaDB [Prueba1]> SELECT 1042 % 50;
+-----------+
| 1042 % 50 |
+-----------+
|        42 |
+-----------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT MOD(234, 10);
+--------------+
| MOD(234, 10) |
+--------------+
|            4 |
+--------------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 29 MOD 9;
+----------+
| 29 MOD 9 |
+----------+
|        2 |
+----------+
1 row in set (0.00 sec)

Operador de Multiplicación

*

MariaDB [Prueba1]> SELECT 7*6;
+-----+
| 7*6 |
+-----+
|  42 |
+-----+
1 row in set (0.00 sec)

MariaDB [Prueba1]> select 32.55 * -3.55 ;
+---------------+
| 32.55 * -3.55 |
+---------------+
|     -115.5525 |
+---------------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 1234567890*9876543210;
ERROR 1690 (22003): BIGINT value is out of range 
                    in '(1234567890 * 9876543210)'

Operador de Sustracción

-

Operador de Sustracción también se utiliza  como el operador 
unario menos para el cambio de signo.
Si ambos operandos son enteros, el resultado se calcula 
con precisión BIGINT. Si cualquier número entero sin signo, 
el resultado también es un entero sin signo, a menos que el 
modo de SQL de resta sin firmar NO está habilitado, en cuyo 
caso el resultado siempre es firmado.
Para operandos reales o de cadena, operando con la máxima 
precisión determina la precisión del resultado.

MariaDB [Prueba1]> SELECT 96-9;
+------+
| 96-9 |
+------+
|   87 |
+------+
1 row in set (0.00 sec)

MariaDB [Prueba1]> SELECT 15-17;
+-------+
| 15-17 |
+-------+
|    -2 |
+-------+
1 row in set (0.00 sec)

Usado como operador Unario

MariaDB [Prueba1]>  SELECT - (3+5);
+---------+
| - (3+5) |
+---------+
|      -8 |
+---------+
1 row in set (0.01 sec)