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...):返回集合中最小的值
聚合函数
对表中数据记录进行集中概括而设计的一类函数
常用的聚合函数
avg() :返回指定列的平均值
count() :返回指定列中非NULL值的个数
添加NULL进行验证
min():返回指定列的最小值
max():返回指定列的最大值
sum():返回指定列的所有值之和
字符串函数
常用的字符串函数
length(x):返回字符串x的长度
mysql> select length('as db') as len; //空格代表一个字符
+-----+
| len |
+-----+
| 5 |
+-----+
1 row in set (0.00 sec)
trim():返回去除指定格式的值
mysql> select trim('a db'); //只显示中间空格,前后端不显示
+------------------+
| trim('a db') |
+------------------+
| a db |
+------------------+
1 row in set (0.00 sec)
concat(x,y):将提供的参数x和y拼接成一个字符串
mysql> select concat('aas','dds');
+---------------------+
| concat('aas','dds') |
+---------------------+
| aasdds |
+---------------------+
1 row in set (0.00 sec)
)
upper(x):将字符串x的所有字母变成大写字母
mysql> select upper(trim(' s d '));
+-----------------------+
| upper(trim(' s d ')) |
+-----------------------+
| S D |
+-----------------------+
1 row in set (0.00 sec)
lower(x):将字符串x的所有字母变成小写字母
mysql> select lower ('SCD');
+---------------+
| lower ('SCD') |
+---------------+
| scd |
+---------------+
1 row in set (0.00 sec)
left(x,y):返回字符串x的前y个字符
mysql> select left('saddsfe',2)
-> ;
+-------------------+
| left('saddsfe',2) |
+-------------------+
| sa |
+-------------------+
1 row in set (0.00 sec)
right(x,y):返回字符串x的后y个字符
repeat(x,y):将字符串x重复y次
mysql> select repeat('csd',4)
-> ;
+-----------------+
| repeat('csd',4) |
+-----------------+
| csdcsdcsdcsd |
+-----------------+
1 row in set (0.00 sec)
space(x):返回x个空格
mysql> select concat(‘si’,space(3),‘saq’); //返回两个空格,结合concat使用
±----------------------------+
| concat(‘si’,space(3),‘saq’) |
±----------------------------+
| si saq |
±----------------------------+
1 row in set (0.00 sec)
replace(x,y,z):将字符串z替代字符串x中的字符串y
mysql> select replace('abcds','s','e');
+--------------------------+
| replace('abcds','s','e') |
+--------------------------+
| abcde |
+--------------------------+
1 row in set (0.00 sec)
strcmp(x,y):比较x和y,返回的值可以为-1 <,0 =,1 >
mysql> select strcmp(37,4); //比较最前面数的大小
+--------------+
| strcmp(37,4) |
+--------------+
| -1 |
+--------------+
1 row in set (0.00 sec)
substring(x,y,z):获取从字符串x中的第y个位置开始长度为z的字符串
格式:substring(完整字符串,起始位置,长度); ##起始位置从1开始
mysql> select substring('abcde',2,3); //从第二个开始,长度为3
+------------------------+
| substring('abcde',2,3) |
+------------------------+
| bcd |
+------------------------+
1 row in set (0.00 sec)
reverse(x):将字符串x反转
mysql> select upper(reverse('hello')); //先反转在大写
+-------------------------+
| upper(reverse('hello')) |
+-------------------------+
| OLLEH |
+-------------------------+
1 row in set (0.00 sec)
日期时间函数
常用的日期时间函数
curdate():返回当前时间的年月日
curtime():返回当前时间的时分秒
now():返回当前时间的日期和时间
month(x):返回日期x中的月份值
hour(x):返回x中的小时值
minute(x):返回x中的分钟值
second(x):返回x中的秒钟值
dayofweek(x):返回x是星期几,1星期日,2星期一,3星期二…
dayofmonth(x):计算日期x是本月的第几天
dayofyear(x):计算日期x是本年的第几天