MySQL 保姆级教程(九):使用数据处理函数

第 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()         返回一个角度的正切
​
使用不多,仅简要说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suc2es2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值