MySql复习--(2)常见函数的运用
SELECT * FROM
employees ORDER BY salary ASC;
SELECT * FROM
employees WHERE department_id>=90 ORDER BY hiredate ;
SELECT ,salary12*(1+IFNULL(commission_pct,0))
FROM employees
ORDER BY salary12(1+IFNULL(commission_pct,0));
SELECT ,salary12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY 年薪;
SELECT LENGTH(last_name) AS 长度
FROM employees
ORDER BY 长度;
SELECT * FROM employees
ORDER BY salary ASC,employee_id DESC;
SELECT last_name,department_id,salary12(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY 年薪 DESC,last_name;
SELECT last_name,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC;
SELECT * FROM employees
WHERE email LIKE ‘%e%’ ORDER BY LENGTH(email) DESC,department_id;
#常见函数
#调用: select 函数名 () 用到表中字段则加 from 表名;
1.单行函数
concat、length、ifnull
1字符函数2 数学函数3 日期函数4 其他函数5 流程控制函数
#字符函数: length()获取长度,utf8中汉字三个字节 字节长度
concat 连接字符串
upper、lower改变大小写
substr、substring截取字符
#instr 返回子串在大串中的索引
#trim
SHOW VARIABLES LIKE ‘%char%’;
SELECT CONCAT(last_name,’’,first_name) FROM employees;
sql中的索引都是从1开始;
SELECT SUBSTR(‘李莫愁爱上了陆湛远’,1,3) out_put;
2.分组函数,又称为聚合函数、统计函数
做统计使用的,传入一组值
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),’=’
,LOWER(SUBSTR(last_name,2))) FROM employees;
SELECT INSTR(‘杨不悔爱上了殷姑娘’,‘殷姑娘’)AS out_put
;
SELECT TRIM(‘a’ FROM ‘aaaacaonimaaaaaa’) ;
SELECT LENGTH(TRIM(’ 张翠山 ')) AS out_put;
7.lpad 用指定字符来填充左边字符,达到指定长度;
若小于原来长度,则被自动截断
rpad则是右填充
8.replace;
SELECT REPLACE(‘张无忌爱上了周芷若周芷若’,‘周芷若’,‘赵敏’) ;
SELECT LPAD(‘殷苏苏’,10,’*’) AS out_put;
二、数学函数
round四舍五入,不论正负
;
SELECT ROUND(1.567,2);
ceil向上取整,返回>=该参数的最小整数
;
SELECT CEIL(1.02);
FLOOR 向下取整 返回<=该参数的最小整数
truncate截断
;
SELECT TRUNCATE(1.6999999,2);
mod取余; a-a/b*b;
SELECT MOD(-10,3);
三、日期函数
1.now 返回当前系统日期+时间;
SELECT NOW();
2.curdate 返回当前系统日期,不包括时间
3.curtime 返回时间,不包日期
4.获取指定部分,年、月、日、小时、分钟、秒
;SELECT YEAR(NOW()) 年;
SELECT YEAR(hiredate) 年 FROM employees;
SELECT MONTH(NOW()) 月;
SELECT MONTHNAME(NOW()) 月;# 显示月的英文
5.str_to_date:将日期格式的字符转换成指定格式
;SELECT STR_TO_DATE(‘1998-3-2’,’%Y-%c-%d’) AS 日期;
;SELECT *FROM employees WHERE hiredate =‘1992-4-3’;
6.date_format将日期转换成字符
;SELECT DATE_FORMAT(NOW(),’%y年%m月%d日’) AS 日期;
SELECT last_name,DATE_FORMAT(hiredate,’%m月/%d日 %y年’) FROM employees
WHERE commission_pct IS NOT NULL;
四、其他函数
SELECT VERSION()
SELECT DATABASE()
SELECT USE()
五、流程控制函数
if函数:if else的效果;
SELECT IF(10>5,‘大’,‘小’);
SELECT last_name,commission_pct,IF(commission_pct IS NULL,‘没奖金’,‘有奖金’) FROM employees;
case函数
1.类似switch case效果
case要判断的变量或表达式
WHEN 常量1 THEN 显示的值,若这里是语句,要加上;
WHEN 常量2 …
ELSE 用来表示默认情况
END