单行函数
数值函数
- ABS(x):返回x的绝对值。
- CEIL(x) 或者 CEILING(x):返回大于或等于x的最小整数值。
- FLOOR(x):返回小于或等于x的最大整数值。
- ROUND(x, d):将x四舍五入到d位小数。
- TRUNCATE(x, d):截断x,保留d位小数。
- MOD(x, y):返回x除以y的余数。
- SQRT(x):返回x的平方根。
- POW(x, y) 或者 POWER(x, y):返回x的y次幂。
- EXP(x):返回e的x次幂。
- LOG(x) 或者 LN(x):返回x的自然对数。
- LOG10(x):返回x的以10为底的对数。
- SIN(x)、COS(x)、TAN(x):分别返回x的正弦、余弦、正切值。
- ASIN(x)、ACOS(x)、ATAN(x):分别返回x的反正弦、反余弦、反正切值。
字符串函数
- CONCAT(str1, str2, …):将多个字符串连接在一起。
- LENGTH(str):返回字符串的长度。
- UPPER(str):将字符串转换为大写。
- LOWER(str):将字符串转换为小写。
- SUBSTRING(str, start, length):返回字符串的子串,从start位置开始,长度为length。
- REPLACE(str, from_str, to_str):将字符串中的from_str替换为to_str。
- TRIM([BOTH | LEADING | TRAILING] [removal_chars FROM] str):去除字符串两端或指定字符集合的空格。
- LEFT(str, length):返回字符串左边的指定长度的子串。
- RIGHT(str, length):返回字符串右边的指定长度的子串。
- LOCATE(substr, str):返回子字符串在字符串中第一次出现的位置。
- REVERSE(str):反转字符串。
- CHAR_LENGTH(str):返回字符串的字符数。
日期时间函数
- NOW():返回当前日期和时间。
- CURDATE():返回当前日期。
- CURTIME():返回当前时间。
- DATE_FORMAT(date, format):将日期按照指定的格式进行格式化。
- DATE_ADD(date, INTERVAL expr type):将日期加上一个指定的时间间隔。
- DATE_SUB(date, INTERVAL expr type):将日期减去一个指定的时间间隔。
- DATEDIFF(date1, date2):返回两个日期之间的天数差。
- DATE():提取日期或日期时间表达式的日期部分。
- TIME():提取日期或日期时间表达式的时间部分。
流程控制函数
- IF() 函数:
- IF() 函数接受三个参数,如果第一个参数为真,则返回第二个参数的值,否则返回第三个参数的值。
SELECT IF(1 > 2, 'true', 'false'); -- 返回 'false'
- CASE 语句:
- CASE 语句用于在查询中执行条件逻辑,类似于编程语言中的 switch 语句。
SELECT
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
FROM table_name;
-- 搜索 CASE 表达式:
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END
FROM table_name;
- IFNULL() 函数:
- IFNULL() 函数用于检查表达式是否为 NULL,如果为 NULL 则返回指定的替代值。
SELECT IFNULL(column_name, 'N/A') FROM table_name;
- NULLIF() 函数:
- NULLIF() 函数用于比较两个表达式,如果这两个表达式相等,则返回 NULL,否则返回第一个表达式的值。
SELECT NULLIF(expression1, expression2) FROM table_name;