第 11 章 使用数据处理函数
11.1 函数
与其他大多数计算机语言一样,SQL 支持利用函数来处理数据
11.2 使用函数
大多数 SQL 支持文本函数、数值函数、日期和时间函数、系统函数
11.2.1 文本处理函数
函数 说明
LEFT() 返回串左边的字符
LENGTH() 返回串的长度
LOCATE() 找出串的一个小串
LOWER() 将串转换为小写
LTRIM() 去掉串左边的空格
RIGHT() 返回串右边的字符
RTRIM() 去掉串右边的空格
SOUNDEX() 返回串的 SOUNDEX 值
SUBSTRING() 返回子串的字符
UPPER() 将串转换为大写
输入: SELECT vend_name,UPPER(VEND_NAME) AS new_name FROM vendors ORDER BY vend_name;
输出:
+----------------+----------------+
| vend_name | new_name |
+----------------+----------------+
| ACME | ACME |
| Anvils R Us | ANVILS R US |
| Furball Inc. | FURBALL INC. |
| Jet Set | JET SET |
| Jouets Et Ours | JOUETS ET OURS |
| LT Supplies | LT SUPPLIES |
+----------------+----------------+
输入: SELECT cust_name,cust_contact FROM customers WHERE SOUNDEX(cust_contact) = SOUNDEX('Y\\.Lie');
输出:
+-------------+--------------+
| cust_name | cust_contact |
+-------------+--------------+
| Coyote Inc. | Y Lee |
+-------------+--------------+
分析: SOUNDEX() 函数转换值和搜索串为它们的 SOUNDEX 值,因为 Y.LEE 和 Y.Lie 相似,所以它们的 SOUNDEX 值相匹配
11.2.2 日期和时间处理函数
函 数 说 明
AddDate() 增加一个日期(天、周等)
AddTime() 增加一个时间(时、分等)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期运算函数
Date_Format() 返回一个格式化的日期或时间串
Day() 返回一个日期的天数部分
DayOfWeek() 对于一个日期,返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个日期的月份部分
Now() 返回当前日期和时间
Second() 返回一个时间的秒部分
Time() 返回一个日期时间的时间部分
Year() 返回一个日期的年份部分
输入: SELECT database_name,last_update FROM innodb_index_stats WHERE DATE(last_update) = '2024-01-03';
输出:
+---------------+---------------------+
| database_name | last_update |
+---------------+---------------------+
| mysql | 2024-01-03 15:22:15 |
| mysql | 2024-01-03 15:22:15 |
| mysql | 2024-01-03 15:22:15 |
| sys | 2024-01-03 15:22:18 |
| sys | 2024-01-03 15:22:18 |
| sys | 2024-01-03 15:22:18 |
+---------------+---------------------+
分析: DATE() 指示 MySQL 仅提取列的日期部分如 2024-01-03,不管后面的具体时间,还可以用下面方法实现
输入: SELECT database_name,last_update FROM innodb_index_stats WHERE YEAR(last_update) = 2024 AND MONTH(last_update) = 01 AND DAY(last_update) = 03;
输出:
+---------------+---------------------+
| database_name | last_update |
+---------------+---------------------+
| mysql | 2024-01-03 15:22:15 |
| mysql | 2024-01-03 15:22:15 |
| mysql | 2024-01-03 15:22:15 |
| sys | 2024-01-03 15:22:18 |
| sys | 2024-01-03 15:22:18 |
| sys | 2024-01-03 15:22:18 |
+---------------+---------------------+
分析: 更复杂些而已
11.2.3 数值处理函数
函 数 说 明
Abs() 返回一个数的绝对值
Cos() 返回一个角度的余弦
Exp() 返回一个数的指数值
Mod() 返回除操作的余数
Pi() 返回圆周率
Rand() 返回一个随机数
Sin() 返回一个角度的正弦
Sqrt() 返回一个数的平方根
Tan() 返回一个角度的正切
使用不多,仅简要说明