MySQL proporciona muchas funciones integradas para realizar diversas operaciones y cálculos al consultar y procesar datos. Las siguientes son algunas funciones MySQL de uso común con explicaciones detalladas y ejemplos de código:
1. Función de agregación
-
COUNT(expr) : Devuelve el número de valores no NULL de la expresión dada.
SELECT COUNT(*) FROM 表名; -- 返回表中的记录总数
-
SUMA(expr) : Devuelve la suma de la expresión dada.
SELECT SUM(价格) FROM 表名; -- 返回价格列的总和
-
AVG(expr) : Devuelve el valor promedio de la expresión dada.
SELECT AVG(分数) FROM 表名; -- 返回分数列的平均值
-
MAX(expr) : Devuelve el valor máximo de la expresión dada.
SELECT MAX(年龄) FROM 表名; -- 返回年龄列的最大值
-
MIN(expr) : Devuelve el valor mínimo de la expresión dada.
SELECT MIN(年龄) FROM 表名; -- 返回年龄列的最小值
2. Funciones de fecha y hora
-
AHORA() : Devuelve la fecha y hora actuales.
SELECT NOW(); -- 返回当前日期和时间,例如:'2023-09-09 02:26:28'
-
AÑO(fecha) : Devuelve el año de la fecha.
SELECT YEAR('2023-09-09'); -- 返回2023
-
MES(fecha) : Devuelve el mes de la fecha.
SELECT MONTH('2023-09-09'); -- 返回9
-
DÍA(fecha) : Devuelve el día de la fecha.
SELECT DAY('2023-09-09'); -- 返回9
-
DATE_FORMAT(fecha, formato) : Formatear la fecha según el formato especificado.
SELECT DATE_FORMAT('2023-09-09', '%Y年%m月%d日'); -- 返回'2023年09月09日'
3. Funciones de cadena
-
CONCAT(str1, str2,…) : concatena varias cadenas juntas.
SELECT CONCAT('Hello', ' ', 'World'); -- 返回'Hello World'
-
LENGTH(str) : Devuelve la longitud de str.
SELECT LENGTH('Hello'); -- 返回5
-
SUBSTRING(str, pos, len) : Devuelve una subcadena de str comenzando desde la posición pos con una longitud de len.
SELECT SUBSTRING('Hello World', 7, 5); -- 返回'World'
-
SUPERIOR (cadena) : convierte cadena a mayúsculas.
SELECT UPPER('hello'); -- 返回'HELLO'
-
INFERIOR(cadena) : convierte cadena a minúsculas.
SELECT LOWER('Hello'); -- 返回'hello'
4. Función condicional
-
IF(condición, true_expr, false_expr) : si la condición es verdadera, devuelve true_expr; en caso contrario, devuelve false_expr.
SELECT IF(成绩 >= 60, '及格', '不及格') FROM 表名; -- 根据成绩判断及格与否
-
CASO CUANDO condición1 ENTONCES resultado1 CUANDO condición2 ENTONCES resultado2 ELSE resultado FINAL: Juicio condicional y retorno de resultado basado en las condiciones.
SELECT CASE WHEN 分数 >= 90 THEN '优秀' WHEN 分数 >= 80 THEN '良好' ELSE '及格' END FROM 表名; -- 根据分数判断等级
5. Función de conversión de tipo
-
CAST(expr tipo AS) : convierte la expresión al tipo especificado.
SELECT CAST('123' AS UNSIGNED); -- 将字符串转换为无符号整数
-
CONVERT(expr, tipo) : convierte la expresión al tipo especificado.
SELECT CONVERT('2023-09-09', DATE); -- 将字符串转换为日期类型
6. Funciones matemáticas
-
ABS(x) : Devuelve el valor absoluto de x.
SELECT ABS(-10); -- 返回10
-
ROUND(x) : Redondea x al entero más cercano.
SELECT ROUND(3.7); -- 返回4
-
TECHO(x) : Devuelve el número entero más pequeño mayor o igual a x.
SELECT CEILING(3.2); -- 返回4
-
FLOOR(x) : Devuelve el mayor entero menor o igual a x.
SELECT FLOOR(3.8); -- 返回3
7. Función de número aleatorio
-
RAND() : La función devuelve un número de punto flotante aleatorio entre 0 y 1.
SELECT RAND(); -- 返回一个随机浮点数
-
RAND(N) : la función devuelve un número de punto flotante aleatorio entre 0 y N.
SELECT RAND(10); -- 返回一个位于0和10之间的随机浮点数
-
RAND(SEED) : la función puede aceptar un valor inicial SEED como parámetro para generar una secuencia repetida de números aleatorios.
SELECT RAND(100); -- 返回一个基于种子值100的随机浮点数
-
FLOOR(RAND() * (max - min + 1) + min) : este es un método común para generar números enteros aleatorios dentro de un rango específico. Utilice la función RAND() combinada con la función FLOOR() para generar números enteros aleatorios y especifique el rango estableciendo máximo y mínimo.
SELECT FLOOR(RAND() * (100 - 1 + 1) + 1); -- 返回1到100之间的随机整数