PostHeaderIcon Funciones MySQL

Las funciones son usadas en varios comandos y se usan dentro de sus expresiones, actuando con los valores de las columnas ofreciendo diferentes resultados. También podemos encontrarnos que algunas de ellas se pueden anidar, de tal manera que usamos más de una.

Las más comunes son:

 

 

FUNCIONES ARITMÉTICAS

•ABS (n)Retorna el valor absoluto de X.

mysql> SELECT ABS(2);       

-> 2

mysql> SELECT ABS(-32);        -> 32

CEIL (n) Retorna el entero más pequeño no menor a X.

mysql> SELECT CEILING(1.23);       

-> 2

mysql> SELECT CEIL(-1.23);       

-> -1

FLOOR (n)

Retorna el valor entero más grande pero no mayor a X.

mysql> SELECT FLOOR(1.23);       

-> 1mysql> SELECT FLOOR(-1.23);       

-> -2


MOD (m, n)

Operación de módulo. Retorna el resto de N dividido por M.

mysql> SELECT MOD(234, 10);       

-> 4

mysql> SELECT 253 % 7;       

-> 1

mysql> SELECT MOD(29,9);       

-> 2

mysql> SELECT 29 MOD 9;       

-> 2

MOD () también funciona con valores con una parte fraccional y retorna el resto exacto tras la división:

mysql> SELECT MOD (34.5,3);       

-> 1.5

POWER
Retorna el valor de X a la potencia de Y. Por ejemplo: 

mysql> SELECT POW(2,2);       

-> 4

mysql> SELECT POW(2,-2);       

-> 0.25

ROUND (número [,m])

Nos devuelve el argumento X , redondeado al número entero más cercano. Hay dos argumentos: 

1. Devuelve X redondeando a decimales.

2. Puede ser negativo para redondear dígitos a la izquierda del punto decimal del valor X

Un ejemplo de ROUND:

Mysql> SELECT ROUND (-1.23);

-1

Mysql> SELECT ROUND (-1.58);

-2

Mysql> SELECT ROUND (1.58);

2

Mysql> SELECT ROUND (1.298,1);

1.3

Mysql> SELECT ROUND (23.298,-1);

20

El tipo de número que te devuelve es el mismo que el del primer argumento. Si necesita un tipo de redondeo, debe usar una función bien definida como TRUNCATE () o FLOOR () en su lugar.Desde MYSQL 5.0.3 ROUND () usa la biblioteca de matemática precisa para valores exactos cuando el primer argumento es un valor con decimales:o Para números exactos, ROUND () usa la regla de “redondea la mitad hacia arriba”. Es decir se redondea en dirección contraria al cero. Se redondea hacia abajo al siguiente entero si es positivo o hacia arriba si el siguiente entero es negativo.o Para números aproximados, ROUND () usa la regla de “redondeo al número par más cercano”: Un valor con una parte fraccional se redondea al entero más cercano.

SIGN (VALOR)Nos devuelve el signo del argumento como -1, 0 o 1, en función de si X es negativo, cero o positivo.Ejemplo de SIGN:

Mysql> SELECT SIGN (-32):

-1 

Mysql> SELECT SIGN (0);

0

Mysql> SELECT SIGN (234);

1

SQRTDevuelve la raíz cuadrada de la expresión numérica especificada. Ejemplo:

mysql> SQRT(4)  

-> 2.00

 mysql> SQRT(2*SQRT(2))  

-> 1.68

TRUNC(número[,m ])
Trunca un número a un entero, suprimiendo la parte fraccionaria de dicho número.
Ejemplo:
A                        B 1                 Fórmula             Descripción resultado
2            =TRUNCAR(8,9)     Parte entera de 8,9 (8)
3            =TRUNCAR(8,9)     Parte entera de -8,9 (-8)
4            =TRUNCAR(PI())   Parte entera de pi (3)

AVGRetorna el valor medio de expr. La opción DISTINCT puede usarse para retornar la media de los valores distintos de expr. Ejemplo: 

mysql> SELECT student_name, AVG (test_score)            FROM student              GROUP BY student_name;

COUNT (*) Se utiliza para contar registros. Se puede usar tanto con el FROM como también con el GROUP BY.

Ejemplo con el FROM: SELECT COUNT (*) FROM animales;

El resultado del COUNT (*) es que te devuelve la cantidad de animales que hay en total en la tabla animales.

Ejemplo con GROUP BY: SELECT especies, COUNT (*) FROM animales  GROUP BY especies;

El resultado del COUNT (*) junto con el GROUP BY en este caso te devuelve el resultado de la cantidad de animales que hay por especies.

MAX. Esta función se clasifica en funciones de agrupamiento, y se utiliza para averiguar el valor máximo de cada campo usando como función “max()”. Por ejemplo, queremos saber cuál es el precio mayor de todos los libros:SELECT MAX (PRECIO) FROM LIBROS; 

MINEsta función se clasifica en funciones de agrupamiento, y se utiliza para averigua el valor mínimo de cada campo usando como función “min()”. Por ejemplo, queremos saber cuál es el precio más bajo de todos los libros;:SELECT MIN (PRECIO) FROM LIBROS;

SUM (CAMPO)Esta función retorna la suma de los valores que contiene el campo especificado. Se utiliza en el SELECT, ya que seleccionas los campos que quieres sumar.Por ejemplo, para saber la cantidad de libros que hay en la venta, se suman la cantidad de libros que hay. SELECT SUM (cantidad) FROM LIBROS;
También podremos encontrárnoslo con alguna condición:
SELECT SUM (cantidad) FROM LIBROS WHERE tema=ficción;

— LOWER (cad) 

Retorna la cadena str con todos los caracteres cambiados a minúsculas según el mapeo del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).

mysql> SELECT LOWER('QUADRATICALLY');

-> 'quadratically'

Esta función funciona con múltiples bytes.

 

— UPPER 

Retorna la cadena str con todos los caracteres cambiados a mayúsculas según el mapeo del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).

Esta función trabaja con múltiples bytes.

Por ejemplo:

mysql> SELECT UPPER('Hej');

-> 'HEJ'

— REPLACE (str, from_str, to_str) 

Retorna la cadena str con todas las ocurrencias de la cadena from_str reemplazadas con la cadena to_str. 

Ejemplo

SELECT REPLACE ( ‘www.mysql.com’, ‘w’, ‘Ww’);

ð ‘WwWwWw.mysql.com’

— CURDATE () 

Devuelve la fecha actual como un valor en el formato 'AAAA-MM-DD' o AAAAMMDD, dependiendo de si la función se usa en un contexto de cadena o numérico:

mysql> SELECT CURDATE();

CURDATE()

2003-12-16

mysql> SELECT CURDATE() + 0;

CURDATE() + 0

20031216

— PERIOD DIFF

Esta función devuelve el número de meses entre periodos P1 y P2. P1 y P2 deben estar en el formato YYMM o YYYYMM. Tenga en cuenta que el periodo P1 y P2 argumentos no son valores de fecha.

Ejemplo de PERIOD DIFF ():

Mysql> SELECT PERIOD_DIFF (200802,200703);

-> 11

Actualizado (Lunes, 12 de Agosto de 2013 10:56)