MySQL函数
Lower
转换小写
upper
转换大写
substr
取子串(substr(被截取的字符串,起始下标,截取的长度))
length
取长度
trim
去空格
str_to_date
将字符串转换成日期
date_format
格式化日期
format
设置千分位
round
四舍五入
rand()
生成随机数
Ifnull
可以将null转换成一个具体值
lower
查询员工,将员工姓名全部转换成小写
select lower(ename) from emp;

upper
查询job为manager的员工
select * from emp where job=upper('manager');

substr
查询姓名以M开头所有的员工
select * from emp where substr(ename, 1, 1)=upper('m');

length
取得员工姓名长度为5的
select length(ename), ename from emp where length(ename)=5;

trim
trim会去首尾空格,不会去除中间的空格。
取得工作岗位为manager的所有员工
select * from emp where job=trim(upper('manager '));

str_to_date (必须严格按照标准输出)
● 查询1981-02-20入职的员工(第一种方法,与数据库的格式匹配上)
select * from emp where HIREDATE='1981-02-20';

● 查询1981-02-20入职的员工(第二种方法,将字符串转换成date类型)
select * from emp where HIREDATE=str_to_date('1981-02-20','%Y-%m-%d');
select * from emp where HIREDATE=str_to_date('02-20-1981','%m-%d-%Y');

str_to_date可以将字符串转换成日期,具体格式str_to_date (字符串,匹配格式)
date_format
查询1981-02-20以后入职的员工,将入职日期格式化成yyyy-mm-dd hh:mm:ss
select empno, ename, date_format(hiredate, '%Y-%m-%d %H:%i:%s') as hiredate from emp;

select date_format(now(),'%Y-%m-%d %H %i %s');
now() 获得当前时间
日期格式的说明
%Y:代表4位的年份
%y:代表2位的年份
%m:代表月, 格式为(01……12)
%c:代表月, 格式为(1……12)
%H:代表小时,格式为(00……23)
%h:代表小时,格式为(01……12)
%i:代表分钟, 格式为(00……59)
%r:代表时间,格式为12 小时(hh:mm:ss [AP]M)
%T:代表时间,格式为24 小时(hh:mm:ss)
%S:代表秒,格式为(00……59)
%s:代表秒,格式为(00……59)
format
● 查询员工薪水加入千分位
select empno, ename, Format(sal, 0) from emp;

● 查询员工薪水加入千分位和保留两位小数
select empno, ename, Format(sal, 2) from emp;

round
四舍五入
select round(123.56);

rand()
生成随机数
select rand();

随机抽取记录数
select * from emp order by rand() limit 2;
order by 必须写上。
case … when … then …..else …end
如果job为MANAGERG薪水上涨10%,如果job为SALESMAN工资上涨50%
select empno, ename, job, sal, case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 end as newsal from emp;

其他的工资不动,需要添加else
select e.*,sal ,case job when 'salesman' then sal*1.1 when 'clerk' then sal*1.2 else sal end as new_sal from emp e;
e.*:取emp表所有的字段 , emp as e 是表的别名可以省略as emp e

ifnull
select ifnull(comm,0) from emp;
如果comm为null 就替换为 0
在SQL语句当中若有NULL值参与数学运算,计算结果一定是NULL
为了防止计算结果出现NULL,建议先使用ifnull空值处理函数预先处理。
以下SQL是计算年薪的:
select empno,ename,sal,(sal+ifnull(comm,0))*12 as yearsal from emp;

数据处理函数又被称为单行处理函数,特点:输入一行输出一行
这篇博客详细介绍了MySQL中的一些常用数据处理函数,包括Lower和Upper进行大小写转换,substr用于子串提取,length测量字符串长度,trim去除空格,str_to_date将字符串转换为日期,date_format格式化日期,format设置数字的千分位,round进行四舍五入,rand()生成随机数,以及Ifnull处理NULL值。通过实例展示了这些函数的用法,帮助读者更好地理解和应用MySQL中的数据处理功能。
856

被折叠的 条评论
为什么被折叠?



