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)

 

Perfíl de la información

Application afterLoad: 0.000 seconds, 0.41 MB
Application afterInitialise: 0.026 seconds, 2.41 MB
Application afterRoute: 0.033 seconds, 3.23 MB
Application afterDispatch: 0.087 seconds, 6.40 MB
Application afterRender: 0.089 seconds, 6.51 MB

Memoria usada

6887560

12 queries identificadas

  1. SELECT *
      FROM dvc_session
      WHERE session_id = 'i1bs6ub7g97qirofdcit6rh9b1'
  2. DELETE
      FROM dvc_session
      WHERE ( time < '1539638661' )
  3. SELECT *
      FROM dvc_session
      WHERE session_id = 'i1bs6ub7g97qirofdcit6rh9b1'
  4. INSERT INTO `dvc_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( 'i1bs6ub7g97qirofdcit6rh9b1','1539639561','','0','1','0' )
  5. SELECT *
      FROM dvc_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM dvc_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT MAX(time) 
      FROM dvc_vvcounter_logs
  8. SELECT m.*, c.`option` AS component
      FROM dvc_menu AS m
      LEFT JOIN dvc_components AS c
      ON m.componentid = c.id
      WHERE m.published = 1
      ORDER BY m.sublevel, m.parent, m.ordering
  9. SELECT *
      FROM dvc_jcomments_settings
  10. SELECT template
      FROM dvc_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 1)
      ORDER BY menuid DESC
      LIMIT 0, 1
  11. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM dvc_content AS a
      LEFT JOIN dvc_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN dvc_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN dvc_users AS u
      ON u.id = a.created_by
      LEFT JOIN dvc_groups AS g
      ON a.access = g.id
      WHERE a.id = 107
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2018-10-15 21:39:21' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2018-10-15 21:39:21' )   )    OR  ( a.state = -1 )  )
  12. UPDATE dvc_content
      SET hits = ( hits + 1 )
      WHERE id='107'

Archivos de idioma cargados

Sin traducir las cadenas de diagnóstico

Ninguno

Sin traducir las cadenas de diseñador

Ninguno