mysql学习--mysql函数

一、数学函数
计算数字的二进制:select bin(7);
在这里插入图片描述
计算数字的十六进制:select hex(28);
在这里插入图片描述
对小数向下取整:select floor(3.23);
在这里插入图片描述
对小数向上取整:select ceiling(3.23);
在这里插入图片描述
随机函数:rand()返回0~1的随机数
返回5~15之间的随机整数:select floor(rand()*10+5);
在这里插入图片描述
拼接函数:concat(s1,s2…sn)字符串s1、s2…sn连接成一个字符串

group_concat()默认用逗号连接
把goods表第4个栏目下的goods_id连接起来:

select group_concat(goods_id) from goods where cat_id=4 group by cat_id;

在这里插入图片描述

二、字符串函数

计算字符的ASCII码:select ascIi('A');
在这里插入图片描述
计算字符串的个数(字节长度):select length('中华民国');
在这里插入图片描述

select tname,length(tname) from t;

在这里插入图片描述
从上面两张图可以发现:“中华民国”4个字的字符串长度是 8,而“国安”2个字的字符串长度是6。这是以为客户端默认编码是GBK,GBK1个字符占2个字节。t表的编码格式是UTF8,UTF8是1个字符占3个字节。

计算字符数:select char_length('中华民国');
在这里插入图片描述
位置函数:position(‘a’ in ‘abc’)

 select position('@' in  '[email protected]');

在这里插入图片描述
位置函数:right(s,n)返回字符串s后的n个字符(从右往左数的n个字符)

select right('[email protected]',8);

在这里插入图片描述
真实案例:某网站有email字段,存邮箱地址,想调查163,126,qq,gmail的比例
在这里插入图片描述

select *,right(email,length(email)-position('@' in email)) from t;

在这里插入图片描述

三、日期时间函数

datetime格式:select now();
在这里插入图片描述
date格式:select curdate();
在这里插入图片描述
time格式:select curtime();
在这里插入图片描述
查看某日是那一周的第几天:select dayofweek('2020-03-15');
在这里插入图片描述
计算今天是一年的第几周:select week(curdate());
在这里插入图片描述
按周统计加班时间

在这里插入图片描述

select week(dt),sum(num) from jiaban group by week(dt);

在这里插入图片描述
四、控制流程函数
在这里插入图片描述
如上图,性别是 用文字表示的,是否可以用数字0/1表示

select sname,
case gender
when '男' then 1
when '女' then 0
else 2 end
from  member;

在这里插入图片描述
表里面的代码我也不知道为什么会出现。

IF函数:
if(表达式,A,B)表达式为真,返回A,否则返回B
if null(‘表达式’,A)判断表达式是否为null,如果是返回A;如果不是,返回自身。

判断性别,女士优先

select sname,if(gender='女','优先','等待') as vip from member;

五、系统调试函数

返回用户及所在主机,判断自己身份:select user();
在这里插入图片描述
返回正在操作的库名:select database();
在这里插入图片描述
查询mysql版本:select version();
在这里插入图片描述

发布了20 篇原创文章 · 获赞 0 · 访问量 222

猜你喜欢

转载自blog.csdn.net/alyssa_yu/article/details/104878353
今日推荐