lower 转换小写
select lower(__) as __ from table_name;
upper 转换大写
select upper(__) as __ from table_name;
substr 取子串(substr 被截取的字符串,起始下标,截取的长度)
select substr(__,1,1) as __ from table_name;
注意:起始下标从1开始,没有0
找出员工名字第一个字母是A的员工信息
第一种方法:模糊查询
select __ from table_name where __ like 'A%';
第二种方法
select __ from table_name where substr(__,1,1) = 'A';
首字母大写
select concat(upper(substr(__,1,1)),substr(__,2,length(__)-1)) from table_name;
concat 拼接字符串
length 取长度
select length() as __ from table_name;
trim 去空格
select * from table_name where = trim(' __');
str_to date 将字符串转换成日期
date_format 格式化日期
format 设置千分位
case..when..then..when..then..else..end
当员工的工作岗位是MANAGER的时候,工资上调10%,当工作岗位是SALESMAN的时候,工资上调50%,其他正常
select ename , job , sal as oldsal , (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal from emp;
round 四舍五入
select 字段 from 表名;
select ename from emp;
select 'abc' from emp; // select 后面直接跟"字面量/字面值"
select 1000 as num from emp; // 1000 也是被当做一个字面量/字面值
结论:select 后面可以跟某个表的字段名(可以等同看做变量名),也可以跟字面量/字面值(数据)。
select 21000 as num from dept;
select round(1236.567, 0) as result from emp;
//(1236.567,1)表示保留一位小数 1236.5
//(1236.567,0)表示保留到整数位 1237
//(1236.567,-1)表示保留到十位 1240
//(1236.567,-2)表示保留到百位 1200
rand 生成随机数
select round(rand()*100,0) from emp; // 100以内的随机数,保留整数位
Ifnull 可以将null转换成一个具体值
Ifnull是空处理函数,专门处理空的
在所有数据库中,只要有NULL存在的数学运算,最后结果都是NULL
Ifnull函数用法:(数据,被当做哪个值)
补助为NULL的时候,将补助当做0
select ename, (sal + Ifnull(comn,0)) * 12 as yearsal from emp;