十二、MySQL基础系列笔记之常用函数-字符串与数值函数

作者: 温新

分类: 【MySql】

阅读: 2596

时间: 2020-10-15 15:22:49

在MySQL数据库中,函数可以用在SELECT语句及其子句(如where、order by、having等)中,也可以用在update、delete语句及其子句中。

字符串函数

字符串函数是最常用的一种函数,如下:

函数 说明
concat(s1,s2...,sn) 连接s1,s2,...sn为一个字符串
insert(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr
lower(str) 将字符串str中所有字符串变为小写
upper(str) 将字符串str中所有字符串变为大写
left(str,x) 返回字符串str最左边的x个字符
right(str,x) 返回字符串str最右边的x个字符
lpad(str,n,pad) 用字符串pad对str最左边进行填充,直到长度为n个字符长度
rpad(str,n,pad) 用字符串pad对str最右边进行填充,直到长度为n个字符长度
ltrim(str) 去掉字符串str左侧的空格
rtrim(str) 去掉字符串str右侧的空格
repeat(str,a,b) 返回str重复x次的结果
replace(str,a,b) 用字符串b替换字符串str中所有出现的字符串a
strcmp(s1,s2) 比较字符串s1和s2
trim(str) 去掉字符串行尾和行头的空格
substring(str,x,y) 返回从字符串str x位置起y个字符长度的空格

concat(s1,s2...)-拼接字符串

注意:任何字符串与NULL进行连接的结果都为NULL。

insert(str,x,y,instr)-字符串替换-将字符串str中所有字符串变为小写

mysql> select insert('ziruchu.com',9,3,'自如初');
+---------------------------------------+
| insert('ziruchu.com',9,3,'自如初')    |
+---------------------------------------+
| ziruchu.自如初                        |
+---------------------------------------+
1 row in set (0.00 sec)

数值函数

函数 说明
abs(x) 返回x的绝对值
ceil(x) 返回大于x的最小整数值。如1.2,1.6返回2
floor(x) 返回小于x的最大整数值。如1.2,1.6返回1
mod(x,y) 返回x/y的模
rand() 返回0~1内的随机值
round(x,y) 返回参数x的四舍五入的有y位的小数值
truncate(x,y) 返回数字x截断为y位的小数结果

ceil与floor

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

truncate与round的区别在于truncate是截断,而round进行了四舍五入

mysql> select round(1.244,2),round(1.245,2),truncate(1.245,2);
+----------------+----------------+-------------------+
| round(1.244,2) | round(1.245,2) | truncate(1.245,2) |
+----------------+----------------+-------------------+
|           1.24 |           1.25 |              1.24 |
+----------------+----------------+-------------------+
1 row in set (0.00 sec)
请登录后再评论