Curso de MariaDB Desde la Consola/OperadoresAritméticos

De WikiCabal
Ir a la navegación Ir a la búsqueda

Operadores Aritméticos

Operador de Adición

 1 + 
 2 
 3 Si ambos operandos son enteros, el resultado se calcula con 
 4 precisión BIGINT. Si cualquier número entero sin signo, el 
 5 resultado también es un entero sin signo.
 6 Para operandos reales o de cadena, operando con la máxima 
 7 precisión determina la precisión del resultado.
 8 
 9 MariaDB [Prueba1]> SELECT 3+5;
10 +-----+
11 | 3+5 |
12 +-----+
13 |   8 |
14 +-----+
15 1 row in set (0.00 sec)

Operador División de enteros

 1 DIV
 2 
 3 Similar a FLOOR(), pero es seguro 
 4 con valores BIGINT. Resultados incorrectos pueden ocurrir 
 5 para operandos no enteros que exceden la gama BIGINT.
 6 Si se utiliza el ERROR de división por cero modo SQL, 
 7 una división por cero produce un error. De lo contrario, 
 8 devuelve NULL.
 9 El resto de una división puede obtenerse usando el 
10 operador MOD.
11 
12 MariaDB [Prueba1]> SELECT 300 DIV 7;
13 +-----------+
14 | 300 DIV 7 |
15 +-----------+
16 |        42 |
17 +-----------+
18 1 row in set (0.00 sec)
19 
20 MariaDB [Prueba1]> SELECT 300 DIV 0;
21 +-----------+
22 | 300 DIV 0 |
23 +-----------+
24 |      NULL |
25 +-----------+
26 1 row in set (0.00 sec)

Operador de División

 1 /
 2 
 3 Dividir por cero, devolverá NULL. 
 4 De forma predeterminada, devuelve cuatro dígitos 
 5 después del decimal. Esto está determinado por el 
 6 incremento de precisión de div variable de sistema 
 7 de servidor que por defecto es cuatro. 
 8 Puede ajustarse de 0 a 30.
 9 Si se utiliza el ERROR de división por cero modo SQL, 
10 una división por cero produce un error. 
11 De lo contrario, devuelve NULL.
12 
13 MariaDB [Prueba1]> SELECT 4/5;
14 +--------+
15 | 4/5    |
16 +--------+
17 | 0.8000 |
18 +--------+
19 1 row in set (0.00 sec)
20 
21 MariaDB [Prueba1]> SELECT 300/(2-2);
22 +-----------+
23 | 300/(2-2) |
24 +-----------+
25 |      NULL |
26 +-----------+
27 1 row in set (0.00 sec)
28 
29 MariaDB [Prueba1]> SELECT 300/7;
30 +---------+
31 | 300/7   |
32 +---------+
33 | 42.8571 |
34 +---------+
35 1 row in set (0.00 sec)
36 
37 MOD(N,M), N % M, N MOD M

Operador de Modulo

 1  %, MOD
 2 
 3 Devuelve el resto de N dividido por M.
 4 Si se utiliza el ERROR de división por cero 
 5 modo SQL, cualquier módulo número cero produce 
 6 un error. De lo contrario, devuelve NULL.
 7 La parte entera de una división puede obtenerse 
 8 utilizando DIV.
 9 
10 MariaDB [Prueba1]> SELECT 1042 % 50;
11 +-----------+
12 | 1042 % 50 |
13 +-----------+
14 |        42 |
15 +-----------+
16 1 row in set (0.00 sec)
17 
18 MariaDB [Prueba1]> SELECT MOD(234, 10);
19 +--------------+
20 | MOD(234, 10) |
21 +--------------+
22 |            4 |
23 +--------------+
24 1 row in set (0.00 sec)
25 
26 MariaDB [Prueba1]> SELECT 29 MOD 9;
27 +----------+
28 | 29 MOD 9 |
29 +----------+
30 |        2 |
31 +----------+
32 1 row in set (0.00 sec)

Operador de Multiplicación

 1 *
 2 
 3 MariaDB [Prueba1]> SELECT 7*6;
 4 +-----+
 5 | 7*6 |
 6 +-----+
 7 |  42 |
 8 +-----+
 9 1 row in set (0.00 sec)
10 
11 MariaDB [Prueba1]> select 32.55 * -3.55 ;
12 +---------------+
13 | 32.55 * -3.55 |
14 +---------------+
15 |     -115.5525 |
16 +---------------+
17 1 row in set (0.00 sec)
18 
19 MariaDB [Prueba1]> SELECT 1234567890*9876543210;
20 ERROR 1690 (22003): BIGINT value is out of range 
21                     in '(1234567890 * 9876543210)'

Operador de Sustracción

 1 -
 2 
 3 Operador de Sustracción también se utiliza  como el operador 
 4 unario menos para el cambio de signo.
 5 Si ambos operandos son enteros, el resultado se calcula 
 6 con precisión BIGINT. Si cualquier número entero sin signo, 
 7 el resultado también es un entero sin signo, a menos que el 
 8 modo de SQL de resta sin firmar NO está habilitado, en cuyo 
 9 caso el resultado siempre es firmado.
10 Para operandos reales o de cadena, operando con la máxima 
11 precisión determina la precisión del resultado.
12 
13 MariaDB [Prueba1]> SELECT 96-9;
14 +------+
15 | 96-9 |
16 +------+
17 |   87 |
18 +------+
19 1 row in set (0.00 sec)
20 
21 MariaDB [Prueba1]> SELECT 15-17;
22 +-------+
23 | 15-17 |
24 +-------+
25 |    -2 |
26 +-------+
27 1 row in set (0.00 sec)
28 
29 Usado como operador Unario
30 
31 MariaDB [Prueba1]>  SELECT - (3+5);
32 +---------+
33 | - (3+5) |
34 +---------+
35 |      -8 |
36 +---------+
37 1 row in set (0.01 sec)