mysql常用的函数及使用
mysql常用的函数
函数名字 | 含义 |
---|---|
concat(S1,S2,…Sn) | 不用分隔符就能连接字符串 |
concat_ws() | 含有分隔符的连接字符串,第一个参数是分隔符 |
group_concat() | 连接一组字符串,使用逗号隔开 |
lower(str) | 将字符串str 中所有字符变为小写 |
upper(str) | 将字符串str 中所有字符变为大写 |
left(str,x) | 返回字符串str 最左边的x 个字符 |
right(str,x) | 返回字符串str 最右边的x 个字符 |
substring(str,x,y) substr(str,x,y) | 返回从字符串str x 位置起y 个字符长度的字符串 |
length(str) | 返回字符串长度 |
DATABASE() | 返回当前数据库名 |
VERSION() | 返回当前数据库版本 |
USER() | 返回当前登录用户名 |
MD5(str) | 返回字符串str 的MD5 值 |
sleep(x) | 让数据库沉睡x 秒钟的时间。 |
ABS(x) | 返回x的绝对值 |
FLOOR(x) | 返回小于x 的最大整数值 |
RAND() | 返回(0,1)内的随机值 |
ROUND(x,y) | 返回参数x 的四舍五入,保留y 位小数 |
ascii(x) ord(x) | 返回字母x 的ascii 码值 |
char(x) | 返回数字x 对应的字母 |
hex(x) | 计算数字x 的十六进制 |
IF(value,t,f) | 如果value 是真,返回t,否则返回f |
使用方法
concat() 拼接字符串无分隔符
查询xl_bbs库里的user表中的username和password列并拼接
select concat(username,password) from xl_bbs.user;
concat_ws() 拼接字符串有分隔符
第一给逗号前面为分割符可以自定义
查询xl_bbs库里的user表中的username和password字段并拼接以 : 作为分隔符
select concat_ws(':',username,password) from user;
group_concat() 横向拼接一组字符串以逗号作为分割
查询xl_bbs库里的user表中的username字段内容进行横向拼接以,作为分隔符
select group_concat(username) from user;
lower(str) 将所有字符串变为小写字符
将ABCDEF变为小写
select lower('ABCDEF');
upper(str) 将所有字符串变为大写字符
将abcdef变为大写
select lower('abcdef');
left(str,x) 从左边开始计数返回x个字符
查询xl_bbs库里的user表中的username字段id为1的记录的前两位字符
select left(username,2) from user where id='1';
right(str,x) 从右边开始计数返回x个字符
查询xl_bbs库里的user表中的username字段id为1的记录的后两位字符
select right(username,2) from user where id='1';
substring(str,x,y) substr(str,x,y) 从x开始计数返回y个字符
x为标记点 y为返回的字符个数
查询xl_bbs库里的user表中的username字段id为1的记录的中间两位字符
select substr(username,2,2) from user where id='1';
length(str) 返回字符串长度
查询xl_bbs库里的user表中的username字段id为1的记录有几个字符
select length(username) from user where id='1';
DATABASE() 返回当前所在的数据库库名
不区分大小写
select database();
VERSION() 返回数据库当前版本
select version();
USER() 返回当前登录所使用的用户
select user();
MD5(str) 将字符串进行md5加密
将xl_bbs库里的user表中的jack用户的密码进行加密
select username,md5(password)from user where id='1';
sleep(x) 让命令延迟x秒后执行
在xl_bbs库中的user表里id为1的用户并延迟两秒执行
select username,sleep(2) from user where id='1';
ABS(x) 返回x的绝对值
返回-1的绝对值
select abs(-1);
FLOOR(x) 返回一个整数值
返回一个小于x的整数值
返回一个小于5.95的整数值
select floor(5.93);
RAND() 返回一个0到1之间的随机数
不包括0和1
select rand();
返回一个0到5的随机数不包括5
select rand()*5;
ROUND(x,y) 返回一个将x保留y位小数后四舍五入的值
输入3.141592653返回一个保留2位小时后四舍五入的值
select round(3.141592653,2);
ascii(x) ord(x) 返回x字符的askⅡ码值
返回字符b的askⅡ值
select ascii('b');
select ord('b');
char(x) 返回在askⅡ码表中数字x序号所对应的字符
select char(20);
hex(x) 返回数字x的16进制
select hex(15);
IF(value,t,f) 如果value 为真返回t,为假返回f
类似于三目运算符
select if(1=2,1,2);