链接: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