字符串函数

1.select ASCII(ename) , ename from emp ;#获取字符串首字母对应的ASCII码.
image.png

2.select ASCII(‘zhufangfang’);#单独获取字符串首字母对应的ASCII码.
image.png

3.select CHAR_LENGTH(ename) , ename from emp ;#获取字符串长度
image.png

4.select LOWER(ename),ename from emp ;#将字母转化为小写
image.png

5.select REVERSE(ename),ename from emp ;#将字符串进行
image.png

数字函数

select PI();#圆周率
image.png
select floor(5.3);#向下取整
image.png
select round(3.6);#四色五人取整
select truncate(2.7777777,4);#保留前4位小数
image.png
select max(sal) from emp;#获取字段sal中的最大值

日期函数

SELECT ADDDATE(“2017-06-15”, INTERVAL 10 day);
SELECT ADDDATE(“2017-06-15”,10);#计算指定日期加上10天后的日期.
image.png
select CURDATE();#查询当前日期,
select now();#查询当前日期,精确到秒
image.png __image.png
SELECT DAY(hiredate),MONTH(hiredate),hiredate from emp ;#获取日期的日和月
image.png
SELECT TIMESTAMPDIFF(year,hiredate,CURDATE()),hiredate from emp;#计算后面日期与前面日期的差值,不足一年按0年算(同理可求月,日,CURDATE()表示当前日期)
image.png
select hiredate,last_day(hiredate) from emp;#获取指定日期的最后一天的日期
image.png

高级函数

SELECT
CASE
WHEN 1 > 1 THEN
‘第一个’
WHEN 2 > 0 THEN
‘第二个’
ELSE
‘都为假’
END 输出条件为真的值;
#上述整体为一句代码
image.png
SELECT ename,
CASE
WHEN deptno = 10 THEN
‘此人在部门10’
WHEN deptno = 20 THEN
‘此人在部门20’
ELSE
‘此人在其他部门’
END 所在部门
from emp;
image.png

  1. # -----------------------------<br />select coalesce(comm,'没有奖金') 奖金 from emp ;#comm不为空则输出数据,为空则输出'没有奖金'<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/29327754/1656421870737-2d1f16a0-a292-4591-a5d8-38255e034f08.png#clientId=u597767e8-7751-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=356&id=uf64a2386&margin=%5Bobject%20Object%5D&name=image.png&originHeight=356&originWidth=255&originalType=binary&ratio=1&rotation=0&showTitle=false&size=12974&status=done&style=none&taskId=ua1f8732e-b58f-4403-b073-9004c771682&title=&width=255)

SELECT CURRENT_USER();#返回当前用户
image.png

SELECT IF(sal > 2000,’高工资’,’低工资’) 工资高低, sal from emp ;#满足条件获取’高工资’,不满足获取’低工资’
image.png
select LAST_INSERT_ID();# 获取最后生成的主键id