MySql(10)函数

Mysql专栏入口

链接:https://pan.baidu.com/s/1zAhDUNv-yuJiWmaFLvTk4w
提取码:ttst
提取码:ttst
专栏中有mysql的导入导出,里面有教如何导入


函数大致分为:数值,字符串,时间,流程控制函数,信息函数。我这边强调的讲一下流程控制函数,其他函数用到直接百度,无需记忆。

一、流程控制函数:

IF

小案例:查询员工工资,大于等于6000的为高工资,低于为低工资

SELECT
	last_name,
	salary,
IF
	( salary >= 6000, "高工资", "低工资" ) "工资水平"
FROM
	employees

其实在生活中收入由 固定工资 + 奖金组成,那么如何计算。

SELECT
	last_name,
	salary,
IF
	( commission_pct IS NOT NULL, commission_pct, 0 ) "奖金占比",
	salary * 12 * (1 + IF	( commission_pct IS NOT NULL, commission_pct, 0 )) "年收入"
FROM
	employees

CASE WHEN

小案例:想将工资分为1.5w+高,1w+中,6k+低,6k-超低

SELECT
	last_name,
	salary,
	CASE
		WHEN salary >= 15000 THEN "高"
		WHEN salary >= 10000 THEN "中"
		WHEN salary >= 6000	 THEN "低"
	ELSE "超低" END "工资水平"
FROM
	employees

小练习: 查询所有员工部门信息,如果部门为10,打印工资的1.1倍,20,1.2、30,1.3、其他1.4

SELECT
	last_name,
	salary,
	department_id,
	CASE department_id
		WHEN 10 THEN salary * 1.1
		WHEN 20 THEN salary * 1.2
		WHEN 30	 THEN salary * 1.3
	ELSE salary * 1.4  END "print_salary"
FROM
	employees

二、加密函数MD5

给密码加密

SELECT MD5("sql")

三、字符串函数

字符长度:char_length()
字节长度:length()

SELECT CHAR_LENGTH("厉害"),LENGTH("厉害")

concat()连接字符

SELECT
	CONCAT( emp.last_name,' worked for ', mgr.last_name ) "details" 
FROM
	employees emp
	JOIN employees mgr 
on
	emp.manager_id = mgr.employee_id

insert()
replace()

SELECT INSERT('helloworld',2,3,'aaaa'),REPLACE('hello','ll','123')

变大写:upper()
变小写:lower()

SELECT UPPER('Hello'),LOWER('Hello')

LEFT()
RIGHT()

SELECT LEFT('hello',2),RIGHT('hello',2),LEFT('hello',13)

右对齐:LPAD()
左对齐:RPAD()

SELECT employee_id,last_name,LPAD(salary,10,'*') FROM employees

去掉首尾空格或指定字符:TRIM()

SELECT CONCAT('---',TRIM('     H e l l o      '),'***'),TRIM('oo' FROM 'oohellooo')

四、时间函数

获取当前时间:NOW()
获取当前时间时间戳:UNIX_TIMESTAMP()
将时间戳转换成时间格式:FROM_UNIXTIME()

SELECT NOW()
SELECT UNIX_TIMESTAMP(),FROM_UNIXTIME(UNIX_TIMESTAMP())

时间格式获取年、月、日、时、分、秒

SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW()) FROM DUAL

五、小练习

1.显示系统时间,分别取出年月日时分秒。
2.查询员工工号、姓名、工资以及提高20%后的结果(new salary)。
3.将员工的姓名首字母排序,并写出姓名长度。
4.查询员工id、last_name、salary、做为一个列输出,别名为out_put。
5.查询公司各员工工作的年数、工作的天数、并按照工作年数的降序排序。
6.查询员工姓名,hird_date,department_id,满足下列条件:
雇佣时间在1977年后的department_id为80或者90或者110,commission_pct不为空
7.使用case-when,按照下面的条件:
job grade
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值