upper mysql_MySQL函数

MySQL函数

Lower

转换小写

upper

转换大写

substr

取子串(substr(被截取的字符串,起始下标,截取的长度))

length

取长度

trim

去空格

str_to_date

将字符串转换成日期

date_format

格式化日期

format

设置千分位

round

四舍五入

rand()

生成随机数

Ifnull

可以将null转换成一个具体值

lower

查询员工,将员工姓名全部转换成小写

select lower(ename) from emp;

2953fd8ebb0b65ebdff6390e4b35919b.png

upper

查询job为manager的员工

select * from emp where job=upper('manager');

021a7b1d71e7228eb08051c7dc8b7ae6.png

substr

查询姓名以M开头所有的员工

select * from emp where substr(ename, 1, 1)=upper('m');

66680916cc10a9166a2fe8c4ebf31000.png

length

取得员工姓名长度为5的

select length(ename), ename from emp where length(ename)=5;

1d6d10a568dbbdbee70c5e9db6f265e8.png

trim

trim会去首尾空格,不会去除中间的空格。

取得工作岗位为manager的所有员工

select * from emp where job=trim(upper('manager  '));

17542d5eb1bd2778473f587cb0b46a92.png

str_to_date (必须严格按照标准输出)

● 查询1981-02-20入职的员工(第一种方法,与数据库的格式匹配上)

select * from emp where HIREDATE='1981-02-20';

17fb32757d3b30e7d937c59781cc5b45.png

● 查询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');

248815687a6c5b3754261395d305edb1.png

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;

2eb7feee34c40e4fc5c23acdb4dae973.png

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;

a852105a3ae6bb5c0710308b5bb2002b.png

● 查询员工薪水加入千分位和保留两位小数

select empno, ename, Format(sal, 2) from emp;

d1d0ede1b8e3979f0a2e54075b109936.png

round

四舍五入

select round(123.56);

5eda1628218042588399b5485b20d9f8.png

rand()

生成随机数

select rand();

14c14495bcee619292b3d0720e62cd0e.png

随机抽取记录数

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;

dcb449af12a9c4afff2ec603190bb88b.png

其他的工资不动,需要添加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

447150378cbf67426cad74614b815c90.png

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;

6edcbb663d1f4018c26511f47fa50fa1.png

数据处理函数又被称为单行处理函数,特点:输入一行输出一行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值