MySql的回顾二:排序/常用函数详细介绍
2020-07-15 06:37
1011 查看
钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>
愉快的时光总是过得很快,月亮悠哉游哉爬上了半空遥望着太阳。上一篇中剩余排序还没回顾,本篇就暂时先来回顾一下排序吧!
特点: 1.ASC 代表升序,DESC代表降序 2.如果不写默认就是升序 3.ORDER BY 后面支持单个字段,多个字段,表达式,函数,别名 4.ORDER BY 子句一般是放在查询语句的最后面,但LIMIT除外。 #案例1:查询员工信息,要求工资从高到低排序 SELECT * FROM employees ORDER BY salary ASC;
#案例2.查询部门编号>=90的员工信息,按入职时间的先后排序。【添加筛选条件】
SELECT *
FROM employees
WHERE department_id >= 90
ORDER BY hiredate ASC;
#案例3.按年薪的高低显示员工的信息。【按表达式排序】 SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪 FROM employees ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC; ========================================= SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪 FROM employees ORDER BY 年薪 DESC;
#案例4.按姓名的长度显示员工的姓名和工作。【按函数排序】 SELECT LENGTH('john');
====================================== SELECT LENGTH(last_name) AS 字节长度,last_name,salary FROM employees ORDER BY 字节长度 DESC;
======================================= SELECT LENGTH(CONCAT(last_name,first_name)) AS 字节长度, CONCAT(last_name,first_name) AS 姓名, salary AS 工资 FROM employees ORDER BY 字节长度 ASC;
#案例5.查询员工信息,要求先按工资排序,再按员工编号排序。 #【ORDER BY 按多个字段排序】 SELECT * FROM employees ORDER BY salary ASC,employee_id DESC;
在日常的学习中,我们在Mysql数据库中的查询会用到一些函数,函数千千万,今天就来看一看。
#进阶4.常见的函数 功能:类似于Java中的方法, 概念:是指将我们实现某个功能的这一组逻辑语句封装到了方法中,对外暴露了一个公开的名字。 然后回头再用这些逻辑语句,只需要调用方法名就行了。 好处: 1.隐藏了实现细节。 2.提高代码的复用性。 调用: SELECT 函数名(实参列表) 【FROM 表】; 特点: ①叫什么(函数名) ②干什么(函数功能) 分类: 1.单行函数 如: CONCAT,LENGTH,IFNULL等 2.分组函数 功能:做统计使用,又称为统计函数,聚合函数,简称组函数。 接下来会学习到:字符函数,数学函数,日期函数,其他函数,流程控制函数(下一篇在介绍)
#一.字符函数 #①length 获取参数数值的字节个数 SELECT LENGTH('john');
SELECT LENGTH('张三丰haha')
SHOW VARIABLES LIKE '%char%';
#②CONCAT 拼接字符串 SELECT CONCAT(last_name,'_',first_name) FROM employees; #③UPPER 转大写 #④LOWER 转小写 SELECT UPPER('john'); SELECT LOWER('JOHN');
#示例:将姓变大写,名变小写,然后拼接。【结论:函数可以嵌套,一个函数的返回值可以做为另一个函数的参数】 SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name)) AS 姓名 FROM employees;
#⑤SUBSTR 字符串截取两个通用,重载有四种 #SUBSTRING #SQL语言中索引从1开始 SUBSTR(‘字符串’,开始位) ,一个参数截取后面全部 SELECT SUBSTR('仁爱为接物之本信义为立业之本',11) AS out_put;
#SUBSTR('字符串',开始位,截取数),从指定索引数,指定字符长度的字符 SELECT SUBSTR('仁爱为接物之本信义为立业之本',1,2) AS out_put;
#案例:姓名中首字母大写,其他字符小写,然后用_拼接,显示出来。 SELECT CONCAT( SUBSTR(UPPER(last_name),1,1), '_', SUBSTR(LOWER(CONCAT(last_name,first_name)),2) ) FROM employees;
#一.字符函数 #⑥INTSTR 查起始索引,返回子串第一次出现的索引,如果找不到就返回0 #INSTR(字符串,substr) SELECT INSTR('仁爱为接物之本信义为立业之本','仁爱') AS out_put;
SELECT INSTR('为接物之本信义为立业之本,尧立孝慈仁爱','仁爱') AS out_put;
SELECT INSTR('仁爱为接物之本信义为立业之本','亲爱精诚') AS out_put;
#⑦TRIM 去除空格 #去除指定的前后字符 SELECT LENGTH(' 亲爱精诚 ') AS out_put; SELECT LENGTH(TRIM(' 亲爱精诚 ')) AS out_put;
SELECT TRIM('a' FROM 'aaaaa亲aaa爱aaaa精诚aaaaaaaaa') AS out_put; =============================================================== SELECT TRIM('aa' FROM 'aaaaa亲aaa爱aaaa精诚aaaaaaaaa') AS out_put;
#⑧LAPD用指定的字符实现左填充指定的长度 SELECT LPAD('亲爱精诚','10','a') AS out_put; SELECT LPAD('亲爱精诚','2','a') AS out_put;
#⑨RAPD用指定的字符实现右填充指定的长度 SELECT RPAD('亲爱精诚',6,'c') AS tou_pus; SELECT RPAD('亲爱精诚',2,'c') AS tou_pus;
#⑩replaca 替换 SELECT REPLACE('太阳当空照,花儿对我笑','花儿','白云') AS out_put;
#二.数学函数 #①ROUND 四舍五入,保留小数 SELECT ROUND(1.45); SELECT ROUND(1.65); SELECT ROUND(1.578,2)
#②CAIL向上取整,返回大于等于该参数的最小整数 SELECT CEIL(1.003); SELECT CEIL(1.000); SELECT CEIL(-1.003);
#③FLOOR向下取整,返回<=该参数的最大整数 SELECT FLOOR(9.99); SELECT FLOOR(9.23); ELECT FLOOR(-9.99); SSELECT FLOOR(-9.23);
#④TRUNCATE 截断 (小数,位数) SELECT TRUNCATE(1.65,1); SELECT TRUNCATE(1.759,1);
#⑤MOD 取余 被除数如果是正,则结果为正,被除数如果为负,那结果为负 SELECT MOD(10,3); SELECT MOD(-10,3); SELECT MOD(7,-3); SELECT 10%3;
#三.日期函数 #NOW 返回当前系统日期+时间 SELECT NOW();
#CURDATE 返回当前系统日期,不包含时间 SELECT CURDATE();
#CURTIME 返回当前的时间,不包含日期 SELECT CURTIME();
#可以获取指定的部分,年,月,日,小时,分钟,秒 YEAR() SELECT YEAR(NOW()) AS 年; SELECT YEAR('1998-1-1') AS 年; SELECT YEAR(hiredate) 年 FROM employees;
SELECT MONTH(NOW()) 月; SELECT MONTHNAME(NOW()) 月英文;
STR_TO_DATE 将日期格式的字符转换成指定格式的日期 DATE_FORMAT 将日期转换成字符 SELECT STR_TO_DATE('07-12-2020','%m-%d-%Y'); SELECT DATE_FORMAT('2020/07/12','%Y年%m月%d日');
#查询入职日期为1992-4-3的员工信息。上面理想输入,下面为实际输入。 SELECT * FROM employees WHERE hiredate = '1992-4-3';
================================================== SELECT
* FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y');
#案例:查询有奖金的员工名和入职日期(XX月/XX日 XX年) SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %Y年') FROM employees WHERE commission_pct IS NOT NULL;
#四.其他函数 SELECT VERSION(); #查看版本号 SELECT DATABASE(); #查看当前的数据库 SELECT USER(); #查看当前的用户
日常学习中的函数就暂时介绍到这里,各位看官可能有疑问你的流程控制函数能?
这emmmm.........!!!精彩回顾且听下篇慢慢到来。
相关文章推荐
- (转)MySQL常用操作命令详细介绍
- C++ STL常用函数介绍之vector(含例题PAT A1047和详细注释)
- mysql 常用函数介绍
- Mysql字符串处理函数详细介绍、总结
- Oracle DML查询(Query)语句 单表查询(简单查询、条件查询、排序查询)& 常用函数【敲敲极详细!!】
- MySQL常用操作命令详细介绍
- Mysql字符串处理函数详细介绍、总结
- Mysql字符串处理函数详细介绍,demo案例
- Mysql字符串处理函数详细介绍、总结
- MySQL 常用函数介绍
- Mysql中的常用函数介绍
- MySQL常用的函数介绍
- MySQL 常用函数介绍
- 学习MySQL常用操作命令详细介绍
- 【小白福利—初级DBA入门必看】MySQL常用工具介绍(十 一)——实用程序innochecksum
- Vertica的这些事<六>—— SQL Server、Oracle、MySQL和Vertica数据库常用函数对比
- 数据库:深入浅出mysql学习笔记【超级详细(十)番外篇】--mysql的运算符介绍
- 第二十课:常用函数介绍--字符串操作函数
- OJ中常用的功能函数(排序)
- mysql常用函数汇总(分享)