MySQL重要函数

本文详细介绍了MySQL中的一些重要函数,包括字符串函数如concat()、lower()、upper()等,数值函数如ceil()、floor()、mod(),日期函数如curdate()、now(),以及流程控制函数if()、ifnull()和case语句。这些函数在日常的数据处理和查询中非常实用。
摘要由CSDN通过智能技术生成

字符串函数(重点)

1.concat(s1,s2,s3) --拼接

SELECT CONCAT('hello','world','hh');

--1.拼接employees表中的名字

SELECT employee_id,CONCAT(first_name,' ',last_name) FROM employees;

2.lower(str)或lcase(str) ---将str转成小写

3.upper(str)或者ucase(str) --将str转成大写

--1.把employees 表中的last_name转为大小,first_name转小写

SELECT UPPER(last_name),LOWER(first_name) FROM employees;

4.Lpad(str,n ,pad),RPAD(str,n,pad)---用pad 对str进行填充,达到n字符串的长度

SELECT * FROM employees;

--实例:将员工编号填充为6位,不满6位的在左边补0

SELECT LPAD(employee_id,6,0) ,first_name FROM employees;

5.trim(str) ----去掉字符串的前面和后面的空格

SELECT TRIM(' j im ') ,' uuuu ' ;

6.substring(str,START,len) ----获子字符串

SELECT SUBSTRING('hello world ',1,5) ,SUBSTRING('hello world',7,5);

巩固练习:

由于业务发展,企业中员工编号升级为6位数,目前不足6位的,在前面补0.

要求SELECT * FROM employees;看到的员工编号都是6位。

update employees set employee_id=Lpad(employee_id,6,0);

7.length(str)--字符串长度

8.reserver(str)

数值函数(重要)

1.ceil(X)----向上取整

2.floor(X)----向下取整

3.mod(x,Y) ---返回是x/y余数

4.rand() ---返回是0---1之间的随机数

5.round(x,Y)----将x四舍五入,保留y位小数

SELECT CEIL(12.6785),FLOOR(12.678),MOD(3,7),ROUND(12.678,2);

SELECT RAND();

--1.通过MYSQL的函数,生成一个六位数的随机验证码

SELECT rpad(floor(RAND()*100000),6,0);

7.least(num1,num2,num3)求最小

8.greatest(num1,num2,num3)求最大

日期函数(重要)

1.CURDATE() ---返回当前日期

2.curtime() ----返回前时间

3.NOW()----返回是当前的日期和时间

4.YEAR(DATE),MONTH(DATE),DAY(DATE)

SELECT CURDATE(),CURTIME(),NOW(),YEAR(CURDATE()),month(CURDATE()),day(CURDATE());

5.DATE_ADD(DATE,INTErvAL EXPR TYPE) ---返回一个日期、时间加上一个时间间隔expr的时间值

SELECT DATE_ADD(CURDATE(),interval 2 YEAR),DATE_ADD(CURDATE(),interval 2 MONTH),DATE_ADD(CURDATE(),interval 2 DAY);

6.datediff(DATE1,DATE2)-----返回的是date1和date2之间相隔的天数。

eg:

--1.查询每个员工入职了多少天?

SELECT employee_id,DATEDIFF(CURDATE(),hire_date) FROM employees;

流程控制函数

1.if(VALUE,t,f) ----如果value为真,取t的值,如果为假取f

--实例

SELECT if(false,1,0);

--实例:计算出所有员工的年薪

salay*12+salary*12*commission_pct

DESC employees;

SELECT employee_id,first_name,salary,salary*12+salary*12*if(commission_pct IS NULL,0,commission_pct) sumsalary

FROM employees;

2.ifnull(v1,v2) ---判断v1是否为null ,为空的时候返回的是v2,不为空的时候返回是v1.

SELECT employee_id,first_name,salary,salary*12+salary*12*ifnull(commission_pct,0) sumsalary

FROM employees;

3.第一种case 语句:

case when [val] then [res]

when [val] then [res]

。。。

else

[res]

end

第二种case 语句:

case 表达式 when [val] then [res]

when [val] then [res]

。。。

else

[res]

end

--- 实例1: salary>=20000 高级工程师

salary>=15000 salary<20000 中级工程师

salary <15000 初级工程

SELECT employee_id,first_name,salary,case when salary>=20000 then '高级工程师'

when salary>=15000 then '中级工程师'

ELSE '初级工程师'

END grade

FROM employees;

SELECT * FROM employees;

-- 实例2: job_id flag

AD_PRES A

AD_VP B

IT_PROG C

D

常用的函数:

1.字符串函数:concat(),lower(),upper(),lpad(),rpad(),trim(),substring()

2.数值函数:ceil(),floor(),mod(),rand(),round()

3.日期函数:curdate(),curtime(),now(),year(date),month(),day(),date_add(),datediff()

4.流程空号:if() ,ifnull(), 两种case

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叫我团子吧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值