MySQL函数

数据库函数

常用的函数分类

  • 数学函数
  • 聚合函数
  • 字符串函数
  • 日期时间函数

常用的数学函数

abs(x):返回x的绝对值
rand():返回0到1的随机数
mod(x,y):返回x除以y以后的余数
power(x,y):返回x的y次方
round(x):返回离x最近的整数
round(x,y):保留x的y位小数四舍五入后的值
sqrt(x):返回x的平方根
truncate(x,y):返回数字x截断为y位小数的值
ceil(x):返回大于或等于x的最小整数
floor(x):返回小于或等于x的最大整数
greatest(x1,x2…):返回集合中最大的值
least(x1,x2…):返回集合中最小的值
mysql> select abs(1),abs(-1);
+--------+---------+
| abs(1) | abs(-1) |
+--------+---------+
|      1 |       1 |
+--------+---------+
1 row in set (0.00 sec)

mysql> select rand();
+----------------------+
| rand()               |
+----------------------+
| 0.033044188314158646 |
+----------------------+
1 row in set (0.00 sec)

mysql> select mod(3,2);
+----------+
| mod(3,2) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> select power(2,4);
+------------+
| power(2,4) |
+------------+
|         16 |
+------------+
1 row in set (0.01 sec)

mysql> select round(1.7),round(3.3);
+------------+------------+
| round(1.7) | round(3.3) |
+------------+------------+
|          2 |          3 |
+------------+------------+
1 row in set (0.01 sec)

mysql> select round(1.162,2),round(1.268,2);
+----------------+----------------+
| round(1.162,2) | round(1.268,2) |
+----------------+----------------+
|           1.16 |           1.27 |
+----------------+----------------+
1 row in set (0.00 sec)

mysql> select sqrt(2),sqrt(5);
+--------------------+------------------+
| sqrt(2)            | sqrt(5)          |
+--------------------+------------------+
| 1.4142135623730951 | 2.23606797749979 |
+--------------------+------------------+
1 row in set (0.00 sec)

mysql> select truncate(1.1111,3),truncate(1.3367,3);
+--------------------+--------------------+
| truncate(1.1111,3) | truncate(1.3367,3) |
+--------------------+--------------------+
|              1.111 |              1.336 |
+--------------------+--------------------+
1 row in set (0.00 sec)

mysql> select ceil(1.1),ceil(1.8);
+-----------+-----------+
| ceil(1.1) | ceil(1.8) |
+-----------+-----------+
|         2 |         2 |
+-----------+-----------+
1 row in set (0.00 sec)

mysql> select floor(1.4),floor(1.9);
+------------+------------+
| floor(1.4) | floor(1.9) |
+------------+------------+
|          1 |          1 |
+------------+------------+
1 row in set (0.00 sec)

mysql> select greatest(1,3,5);
+-----------------+
| greatest(1,3,5) |
+-----------------+
|               5 |
+-----------------+
1 row in set (0.00 sec)

mysql> select least(1,3,5);
+--------------+
| least(1,3,5) |
+--------------+
|            1 |
+--------------+
1 row in set (0.01 sec)

聚合函数

对表中数据记录进行集中概括而设计的一类函数
常用的聚合函数(只会产生一个值)

mysql> select * from cj;
+------+------+-------+
| id   | name | score |
+------+------+-------+
|    1 | aa   |    11 |
|    2 | bb   |    11 |
|    3 | cc   |    22 |
|    4 | dd   |    33 |
|    5 | ee   |    44 |
+------+------+-------+
5 rows in set (0.00 sec)

mysql> select avg(score) from cj;  #avg(字段名) 返回指定字段的平均值
+------------+
| avg(score) |
+------------+
|    24.2000 |
+------------+
1 row in set (0.00 sec)

mysql> select count(score) from cj;  #count(字段名) 返回指定字段中非NULL值的个数
+--------------+
| count(score) |
+--------------+
|            5 |
+--------------+
1 row in set (0.00 sec)

mysql> select max(score) from cj;  #max(字段名) 返回指定字段的最大值
+------------+
| max(score) |
+------------+
|         44 |
+------------+
1 row in set (0.00 sec)

mysql> select min(score) from cj;  #min(字段名) 返回指定字段的最小值
+------------+
| min(score) |
+------------+
|         11 |
+------------+
1 row in set (0.00 sec)

mysql> select sum(score) from cj;  #sum(字段名) 返回指定字段的所有值之和
+------------+
| sum(score) |
+------------+
|        121 |
+------------+
1 row in set (0.00 sec)

字符串函数

常用的字符串函数

length(x)     返回字符串x的长度
trim()        返回去除指定格式的值
concat(x,y)   将提供的参数x和y拼接成一个字符串
upper(x)      将字符串x的所有字母变成大写字母
lower(x)      将字符串x的所有字母变成小写字母
left(x,y))   返回字符串x的前y个字符
right(x,y)    返回字符串x的后y个字符
repeat(x,y)   将字符串x重复y次
space(x)      返回x个空格
replace(x,y,z)将字符串z替代字符串x中的字符串y
strcmp(x,y)   比较x和y,返回的值可以为-1,0,1
substring(x,y,z)获取从字符串x中的第y个位置开始长度为z的字符串
reverse(x)    将字符串x反转
mysql> select length('1 2 3');
+-----------------+
| length('1 2 3') |
+-----------------+
|               5 |
+-----------------+
1 row in set (0.00 sec)

mysql> select trim(' 1 2 3 ');
+-----------------+
| trim(' 1 2 3 ') |
+-----------------+
| 1 2 3           |
+-----------------+
1 row in set (0.01 sec)

mysql> select concat('12','ab');
+-------------------+
| concat('12','ab') |
+-------------------+
| 12ab              |
+-------------------+
1 row in set (0.00 sec)

mysql> select upper('abc');
+--------------+
| upper('abc') |
+--------------+
| ABC          |
+--------------+
1 row in set (0.00 sec)

mysql> select lower('ABC');
+--------------+
| lower('ABC') |
+--------------+
| abc          |
+--------------+
1 row in set (0.01 sec)

mysql> select left('123456',3);
+------------------+
| left('123456',3) |
+------------------+
| 123              |
+------------------+
1 row in set (0.00 sec)

mysql> select right('123456',3);
+-------------------+
| right('123456',3) |
+-------------------+
| 456               |
+-------------------+
1 row in set (0.00 sec)

mysql> select repeat('123',2);
+-----------------+
| repeat('123',2) |
+-----------------+
| 123123          |
+-----------------+
1 row in set (0.01 sec)

mysql> select concat('abc',space(2),'123');
+------------------------------+
| concat('abc',space(2),'123') |
+------------------------------+
| abc  123                     |
+------------------------------+
1 row in set (0.00 sec)

mysql> select replace('123456','1','8');
+---------------------------+
| replace('123456','1','8') |
+---------------------------+
| 823456                    |
+---------------------------+
1 row in set (0.00 sec)

mysql> select strcmp(1,1),strcmp(1,2),strcmp(2,1);
+-------------+-------------+-------------+
| strcmp(1,1) | strcmp(1,2) | strcmp(2,1) |
+-------------+-------------+-------------+
|           0 |          -1 |           1 |
+-------------+-------------+-------------+
1 row in set (0.01 sec)

mysql> select substring('12345678',3,3);
+---------------------------+
| substring('12345678',3,3) |
+---------------------------+
| 345                       |
+---------------------------+
1 row in set (0.00 sec)

mysql> select reverse('123');
+----------------+
| reverse('123') |
+----------------+
| 321            |
+----------------+
1 row in set (0.00 sec)

日期时间函数

常用的日期时间函数

curdate()      返回当前时间的年月日
curtime()      返回当前时间的时分秒
now()          返回当前时间的日期和时间
month(x)       返回日期x中的月份值
week(x)        返回日期x是年度第几个星期
hour(x)        返回x中的小时值
minute(x)      返回x中的分钟值
second(x)     返回x中的秒钟值
dayofweek(x)   返回x是星期几,1星期日,2星期一
dayofmonth(x)  计算日期x是本月的第几天
dayofyear(x)   计算日期x是本年的第几天
mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2020-12-31 |
+------------+
1 row in set (0.00 sec)

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 14:39:47  |
+-----------+
1 row in set (0.00 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-12-31 14:39:56 |
+---------------------+
1 row in set (0.00 sec)

mysql> select month(curdate());
+------------------+
| month(curdate()) |
+------------------+
|               12 |
+------------------+
1 row in set (0.00 sec)

mysql> select hour(now());
+-------------+
| hour(now()) |
+-------------+
|          14 |
+-------------+
1 row in set (0.01 sec)

mysql> select minute(now());
+---------------+
| minute(now()) |
+---------------+
|            41 |
+---------------+
1 row in set (0.00 sec)

mysql> select second(now());
+---------------+
| second(now()) |
+---------------+
|            20 |
+---------------+
1 row in set (0.00 sec)

mysql> select dayofweek(curdate());
+----------------------+
| dayofweek(curdate()) |
+----------------------+
|                    5 |
+----------------------+
1 row in set (0.00 sec)

mysql> select dayofmonth(curdate());
+-----------------------+
| dayofmonth(curdate()) |
+-----------------------+
|                    31 |
+-----------------------+
1 row in set (0.00 sec)

mysql> select dayofyear(curdate());
+----------------------+
| dayofyear(curdate()) |
+----------------------+
|                  366 |
+----------------------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值