一、MySql中函数定义:
- 函数就是MySQL服务内置的命令
- 函数的格式:函数名()
- 通常使用的方法=>函数名(表头名)
二、常用函数:
分类 |
命令/符号/... |
说明 |
字符函数 |
LENGTH(str) |
返字符串长度,以字节为单位 |
|
CHAR_LENGTH(str) |
返回字符串长度,以字符为单位 |
|
LOWER(str)和LCASE(str) |
将str中的字母全部转换成小写 |
|
SUBSTR(s, start,end) |
从s的start位置开始取出到end长度的子串 |
|
INSTR(str,str1) |
返回str1参数,在str参数内的位置 |
|
TRIM(s) |
返回字符串s删除了两边空格之后的字符串 |
数学函数 |
ABS(x) |
返回x的绝对值 |
|
PI() |
返回圆周率π,默认显示6位小数 |
|
ABS(x) |
返回x被y除后的余数 |
|
MOD(x,y) |
返为单位 |
|
CEIL(x)、CEILING(x) |
返回不小于x的最小整数 (x 是小数) |
|
FLOOR(x) |
返回不大于x的最大整数 (x 是小数) |
|
ROUND(x) |
返回最接近于x的整数,即对x进行四舍五入 (x 是小数) |
|
ROUND(x,y) |
返回最接近x的数,其值保留到小数点后面y位,若y为负值,则将保留到x到小数点左边y位 (x 是小数) |
时间函数 |
curtime() |
获取时间:h:m:s |
|
curdate() |
获取日期:y-m-d |
|
now() |
获取日期时间:y-m-d h:m:s |
|
year(date) |
获取年份 |
|
month(date) |
获取月份 |
|
day(date) |
获取一个月的第几天 |
|
week(date) |
获取一年中的第几周 |
|
date(date) |
获取日期:y-m-d |
|
weekday(date) |
获取一周中的周几 |
|
time(date) |
获取时间:h:m:s |
|
hour(date) |
获取小时 |
|
minute(date) |
获取分钟 |
|
second(date) |
获取秒钟 |
|
quarter(date) |
获取一年中的第几个季度 |
|
monthname(date) |
获取月份名称(英文) |
|
dayname(date) |
获取星期几(英文) |
|
dayofyear(date) |
获取一年中的第几天 |
|
dayofmonth(date) |
获取一个月的第几天 |
聚集函数 |
avg(表头名) |
计算平均值 |
|
min(表头名) |
获取最小值 |
|
max(表头名) |
获取最大值 |
|
count(表头名) |
统计表头值个数 |
三、案例:
mysql> select name,length(name) from tarena.employees where employee_id = 8 ;
+--------+-------------------+
| name | char_length(name) |
+--------+-------------------+
| 汪云 | 6 |
+--------+-------------------+
1 row in set (0.00 sec)
# 输出偶数行 行号和用户名
mysql> select id , name from tarena.user where mod(id,2) = 0 ;
+----+-----------------+
| id | name |
+----+-----------------+
| 2 | bin |
| 4 | adm |
| 6 | sync |
| 8 | halt |
+----+-----------------+
4 rows in set (0.00 sec)
# 输出当前时间
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2021-10-12 09:27:39 |
+---------------------+
1 row in set (0.00 sec)
# 获取当前年份
mysql> select year(now());
+-------------+
| year(now()) |
+-------------+
| 2021 |
+-------------+
1 row in set (0.00 sec)
# 输出uid列的最小值和最大值
mysql> select min(uid),max(uid) from tarena.user;
+----------+----------+
| min(uid) | max(uid) |
+----------+----------+
| 0 | 65534 |
+----------+----------+
1 row in set (0.00 sec)
# 统计使用解释器/sbin/nologin 用户的个数
mysql> select count(name) from tarena.user where shell="/sbin/nologin";
+-------------+
| count(name) |
+-------------+
| 19 |
+-------------+
1 row in set (0.01 sec)
网友评论