MySQL中的内置函数

目录

【字符串函数】

【数值函数】

【日期函数】

【流程控制函数】

【其它函数】


SELECT * FROM `users`

【字符串函数】

1、CONCAT(S1,S2....SN): 把传入的参数连接成一个字符串

select 1+1;

SELECT concat("abc","好好生活!");

SELECT concat(name,"的年龄是:",age) as 查询结果 from users;

2. INSERT(str, x, y, str2): 将字符串str从X位置开始,y个字符串长度替换为字符串str2

select insert("该去吃饭了吃什么呢!",2,3,"to be best") as 查询结果;

select insert(name,2,2,"替换内容") from users;

3. LOWER(str)、 UPPER(str): 将字符串转为小或或大写(当区分大小写的时候)

select lower('I Love YOU'),upper('How about You');

select* from users where lower(name)="LILY";

4. LEFT(str, x)、 RIGHT(str, x): 分别返回最左边的X字符,和最右边的X个字符,如果第二个参数为NULL则什么也不返回。

select left('该去吃饭了吃什么呢',4),right('该去吃饭了吃什么呢',3);

5. LPAD(str, n, str2)、 RPAD(str,n, str2): 用字符串str2对str最左边和最右边进行填充,直到长度为n个字符长度

select name,lpad(name,10,'#'),rpad(name,10,'*') from users;

6. TRIM(str)、 LTRIM(str) 、 Rtrim(str): 去掉字符串两边,左边和右边字符串的空格

select concat('x',trim(' 民兵葛二蛋 '),'y'),concat('x',ltrim(' 民兵葛二蛋 '),'y'),concat('x',rtrim(' 民兵葛二蛋 '),'y');

7. replace(str, a,b):用字符串b替换字符串str中的所有出现的字符串a

select replace('你好啊,你在干什么','你','*');

8. strcmp(s1, s2):如果S1<S2小,返回-1;如果S1>S2则返回1;如果S1==S2则返回 0.

select strcmp("a","b"),strcmp("b","a"),strcmp("a","a");

9. substring(str, x, y): 返回字符串中的第x位置起y个字符串长度的字符。

select substring("该去吃饭了吃什么呢",3,5);

select name,substring(name,1,2) from users;

【数值函数】

ABS(x):返回X的绝对值

select abs(10),abs(-10);

ceil(x): 返回大于X的最小整数

select ceil(2.1),ceil(2.5),ceil(2.9);

floor(x): 返回小于X的最大整数

select floor(2.1),floor(2.5),floor(2.9);

mod(x, y): 返回x/y的模(取余)

select mod(10,4);

rand() 结果为 0-1之间的浮点随机数

select rand();

select ceil(rand()*100);

round(x,y): 返回参数X的四舍五入的有y位小数的值

select round(6.32015,4);

truncate(x,y):返回数字x截断为y位小数的结果

select truncate(1.234,2),round(1.235,2);

【日期函数】

curdate():返回当前日期

select curdate();

curtime():返回当前时间

select curtime();

now():返回当前日期和时间

select now();

unix_timestamp(now()):返回unix时间戳时间(1970年1月1日 08:00:00 到现在的秒数)

select unix_timestamp(now());

from_unixtime():上面的反操作:将unix时间戳返回成当前日期和时间数据

select from_unixtime(1357872458);

year() :当前年份

month():当前月份

week() :这一年的第几周

hour():当前小时

minute():当前分钟

second():当前秒

select year(now()) 年,month(now()) 月,day(now()) 日,week(now()) 周,hour(now()) 时,minute(now()) 分,second(now()) 秒;

select date_format(now(),"%Y-%m-%d %H:%i:%s");

【流程控制函数】

(创建新表和添加数据)

insert into salary values('',1000);
insert into salary values('',2000);
insert into salary values('',3000);
insert into salary values('',4000);
insert into salary values('',5000);
insert into salary values('',null);

案例一:薪资低于3000为低薪,否则为高薪:

select id,salary,if(salary>3000,'高薪','低薪') 档次 from salary;

案例二:不为空返回前者,为空返回后者:

select id,salary,ifnull(salary,'未知') from salary;

案例三:case when ...then

select id,salary,case when salary<=3000 then '属于低工资' else '属于高工资' end 判断标准 from salary;

select id,salary,case when salary<=3000 then '属于低工资' when salary>3000 then '属于高工资' else '其他' end 判断标准 from salary;

【其它函数】

database():当前数据库名

select database();

version():当前MySQL版本

select version();

user():当前登录用户

select user();

inet_aton(ip):当前ip地址的网络字节顺序

select inet_aton('192.168.1.1');

inet_ntoa(ip字节顺序):当前ip地址的网络字节顺序所代表的ip,即上面的反操作。

select inet_ntoa(3232235777);

password():对字符串加密,MySQL系统本身的加密,成为41位的字符串。

select password('123456');

md5():md5加密

select md5('123456');

备注:此文最早记录于2013年,10年后重新找出来并发表于CSDN,部分内容可能已过时,仅作参考。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮尘笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值