当前位置:Gxlcms > 数据库问题 > MySql的回顾二:排序/常用函数详细介绍

MySql的回顾二:排序/常用函数详细介绍

时间:2021-07-01 10:21:17 帮助过:38人阅读

  1. <span style="font-size: 14px;"><span style="color: #000000;">特点:
  2. </span>1<span style="color: #000000;">.ASC 代表升序,DESC代表降序
  3. </span>2<span style="color: #000000;">.如果不写默认就是升序
  4. </span>3<span style="color: #000000;">.ORDER BY 后面支持单个字段,多个字段,表达式,函数,别名
  5. </span>4<span style="color: #000000;">.ORDER BY 子句一般是放在查询语句的最后面,但LIMIT除外。
  6. <span style="color: #008080;">#案例1:查询员工信息,要求工资从高到低排序</span>
  7. SELECT </span>*<span style="color: #000000;">
  8. FROM employees
  9. ORDER BY salary ASC;</span></span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #008080;">#案例2.查询部门编号>=90的员工信息,按入职时间的先后排序。【添加筛选条件】</span><br></span>

  SELECT *

  FROM employees

  WHERE department_id >= 90

  ORDER BY hiredate ASC;

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #008080;">#案例3.按年薪的高低显示员工的信息。【按表达式排序】</span>
  2. SELECT </span>*,salary*12*(1+IFNULL(commission_pct,0<span style="color: #000000;">)) AS 年薪
  3. FROM employees
  4. ORDER BY salary</span>*12*(1+IFNULL(commission_pct,0<span style="color: #000000;">)) DESC;
  5. </span>=========================================<span style="color: #000000;">
  6. SELECT </span>*,salary*12*(1+IFNULL(commission_pct,0<span style="color: #000000;">)) AS 年薪
  7. FROM employees
  8. ORDER BY 年薪 DESC;</span></span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #008080;">#案例4.按姓名的长度显示员工的姓名和工作。【按函数排序】</span>
  2. SELECT LENGTH(</span>‘john‘<span style="color: #000000;">);<br>======================================
  3. SELECT LENGTH(last_name) AS 字节长度,last_name,salary
  4. FROM employees
  5. ORDER BY 字节长度 DESC;
  6. </span>=======================================<span style="color: #000000;">
  7. SELECT LENGTH(CONCAT(last_name,first_name)) AS 字节长度,
  8. CONCAT(last_name,first_name) AS 姓名,
  9. salary AS 工资
  10. FROM employees
  11. ORDER BY 字节长度 ASC;</span></span>

技术图片

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #008080;">#案例5.查询员工信息,要求先按工资排序,再按员工编号排序。</span>
  2. #【ORDER BY 按多个字段排序】
  3. SELECT </span>*<span style="color: #000000;">
  4. FROM employees
  5. ORDER BY salary ASC,employee_id DESC;</span></span>

技术图片

在日常的学习中,我们在Mysql数据库中的查询会用到一些函数,函数千千万,今天就来看一看。

  1. <span style="font-size: 14px;"><span style="color: #000000;">#进阶4.常见的函数
  2. 功能:类似于Java中的方法,
  3. <span style="background-color: #ccffff;">概念:是指将我们实现某个功能的这一组逻辑语句封装到了方法中,对外暴露了一个公开的名字。
  4. 然后回头再用这些逻辑语句,只需要调用方法名就行了。</span>
  5. 好处:
  6. </span>1<span style="color: #000000;">.隐藏了实现细节。
  7. </span>2<span style="color: #000000;">.提高代码的复用性。
  8. <span style="color: #ff0000;">调用: SELECT 函数名(实参列表) 【FROM 表】;
  9. 特点:
  10. ①叫什么(函数名)
  11. ②干什么(函数功能)</span>
  12. 分类:
  13. </span>1<span style="color: #000000;">.单行函数
  14. 如: CONCAT,LENGTH,IFNULL等
  15. </span>2<span style="color: #000000;">.分组函数
  16. 功能:做统计使用,又称为统计函数,聚合函数,简称组函数。
  17. 接下来会学习到:字符函数,数学函数,日期函数,其他函数,流程控制函数(下一篇在介绍)</span></span>
  1. <span style="font-size: 14px;"><span style="color: #000000;">#一.字符函数
  2. <span style="color: #ff0000;">#①length 获取参数数值的字节个数</span>
  3. SELECT LENGTH(</span>‘john‘);</span>

技术图片

  1. <span style="font-size: 14px;">SELECT LENGTH(‘张三丰haha‘)</span>

技术图片

  1. <span style="font-size: 14px;">SHOW VARIABLES LIKE ‘%char%‘;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#②CONCAT 拼接字符串</span>
  2. SELECT CONCAT(last_name,</span>‘_‘<span style="color: #000000;">,first_name)
  3. FROM employees;
  4. <span style="color: #ff0000;">#③UPPER 转大写
  5. #④LOWER 转小写</span>
  6. SELECT UPPER(</span>‘john‘<span style="color: #000000;">);
  7. SELECT LOWER(</span>‘JOHN‘);</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;">#示例:将姓变大写,名变小写,然后拼接。<span style="color: #ff0000;">【结论:函数可以嵌套,一个函数的返回值可以做为另一个函数的参数】</span>
  2. SELECT CONCAT(UPPER(last_name),</span>‘_‘<span style="color: #000000;">,LOWER(first_name)) AS 姓名
  3. FROM employees;</span></span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑤SUBSTR 字符串截取两个通用,重载有四种</span>
  2. #SUBSTRING
  3. #SQL语言中索引从1开始
  4. SUBSTR(‘字符串’,开始位) ,一个参数截取后面全部
  5. SELECT SUBSTR(</span>‘仁爱为接物之本信义为立业之本‘,11) AS out_put;</span>

技术图片

  1. <span style="color: #ff0000;">#SUBSTR(‘字符串‘</span><span style="color: #000000;"><span style="color: #ff0000;">,开始位,截取数),从指定索引数,指定字符长度的字符</span>
  2. SELECT SUBSTR(</span>‘仁爱为接物之本信义为立业之本‘,1,2) AS out_put;

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #008080;">#案例:姓名中首字母大写,其他字符小写,然后用_拼接,显示出来。</span>
  2. SELECT CONCAT(
  3. SUBSTR(UPPER(last_name),</span>1,1<span style="color: #000000;">),
  4. </span>‘_‘<span style="color: #000000;">,
  5. SUBSTR(LOWER(CONCAT(last_name,first_name)),</span>2<span style="color: #000000;">)
  6. )
  7. FROM employees;</span></span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;">#一.字符函数
  2. #<span style="color: #ff0000;">⑥INTSTR 查起始索引,返回子串第一次出现的索引,如果找不到就返回0</span>
  3. #INSTR(字符串,substr)
  4. SELECT INSTR(</span>‘仁爱为接物之本信义为立业之本‘,‘仁爱‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;">SELECT INSTR(‘为接物之本信义为立业之本,尧立孝慈仁爱‘,‘仁爱‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;">SELECT INSTR(‘仁爱为接物之本信义为立业之本‘,‘亲爱精诚‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑦TRIM 去除空格</span>
  2. #去除指定的前后字符
  3. SELECT LENGTH(</span>‘ 亲爱精诚 ‘<span style="color: #000000;">) AS out_put;
  4. SELECT LENGTH(TRIM(</span>‘ 亲爱精诚 ‘)) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;">SELECT TRIM(‘a‘ FROM ‘aaaaa亲aaa爱aaaa精诚aaaaaaaaa‘<span style="color: #000000;">) AS out_put;
  2. </span>===============================================================<span style="color: #000000;">
  3. SELECT TRIM(</span>‘aa‘ FROM ‘aaaaa亲aaa爱aaaa精诚aaaaaaaaa‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑧LAPD用指定的字符实现左填充指定的长度</span>
  2. SELECT LPAD(</span>‘亲爱精诚‘,‘10‘,‘a‘<span style="color: #000000;">) AS out_put;
  3. SELECT LPAD(</span>‘亲爱精诚‘,‘2‘,‘a‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑨RAPD用指定的字符实现右填充指定的长度</span>
  2. SELECT RPAD(</span>‘亲爱精诚‘,6,‘c‘<span style="color: #000000;">) AS tou_pus;
  3. SELECT RPAD(</span>‘亲爱精诚‘,2,‘c‘) AS tou_pus;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑩replaca 替换</span>
  2. SELECT REPLACE(</span>‘太阳当空照,花儿对我笑‘,‘花儿‘,‘白云‘) AS out_put;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#二.数学函数
  2. #①ROUND 四舍五入,保留小数</span>
  3. SELECT ROUND(</span>1.45<span style="color: #000000;">);
  4. SELECT ROUND(</span>1.65<span style="color: #000000;">);
  5. SELECT ROUND(</span>1.578,2)</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#②CAIL向上取整,返回大于等于该参数的最小整数</span>
  2. SELECT CEIL(</span>1.003<span style="color: #000000;">);
  3. SELECT CEIL(</span>1.000<span style="color: #000000;">);
  4. SELECT CEIL(</span>-1.003);</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #ff0000;">#③FLOOR向下取整,返回<=</span><span style="color: #000000;"><span style="color: #ff0000;">该参数的最大整数</span>
  2. SELECT FLOOR(</span>9.99<span style="color: #000000;">);
  3. SELECT FLOOR(</span>9.23<span style="color: #000000;">);
  4. ELECT FLOOR(</span>-9.99<span style="color: #000000;">);
  5. SSELECT FLOOR(</span>-9.23);</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#④TRUNCATE 截断 (小数,位数)</span>
  2. SELECT TRUNCATE(</span>1.65,1<span style="color: #000000;">);
  3. SELECT TRUNCATE(</span>1.759,1);</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">#⑤MOD 取余</span>
  2. 被除数如果是正,则结果为正,被除数如果为负,那结果为负</span><span style="color: #000000;">
  3. SELECT MOD(</span>10,3<span style="color: #000000;">);
  4. SELECT MOD(</span>-10,3<span style="color: #000000;">);
  5. SELECT MOD(</span>7,-3<span style="color: #000000;">);
  6. SELECT </span>10%3;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;">#三.日期函数
  2. <span style="color: #ff0000;">#NOW 返回当前系统日期</span></span><span style="color: #ff0000;">+</span><span style="color: #000000;"><span style="color: #ff0000;">时间</span>
  3. SELECT NOW();</span></span>

技术图片

  1. <span style="color: #000000; font-size: 14px;"><span style="color: #ff0000;">#CURDATE 返回当前系统日期,不包含时间</span>
  2. SELECT CURDATE();</span>

技术图片

  1. <span style="color: #000000; font-size: 14px;"><span style="color: #ff0000;">#CURTIME 返回当前的时间,不包含日期</span>
  2. SELECT CURTIME();</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;">#可以获取指定的部分,年,月,日,小时,分钟,秒
  2. <span style="color: #ff0000;">YEAR()</span>
  3. SELECT YEAR(NOW()) AS 年;
  4. SELECT YEAR(</span>‘1998-1-1‘<span style="color: #000000;">) AS 年;
  5. SELECT YEAR(hiredate) 年 FROM employees;</span></span>

技术图片

  1. <span style="color: #000000; font-size: 14px;">SELECT <span style="color: #ff0000;">MONTH</span>(<span style="color: #ff0000;">NOW()</span>) 月;
  2. SELECT <span style="color: #ff0000;">MONTHNAME</span>(<span style="color: #ff0000;">NOW()</span>) 月英文;</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #000000;"><span style="color: #ff0000;">STR_TO_DATE 将日期格式的字符转换成指定格式的日期
  2. DATE_FORMAT 将日期转换成字符</span>
  3. SELECT STR_TO_DATE(</span>‘07-12-2020‘,‘%m-%d-%Y‘<span style="color: #000000;">);
  4. SELECT DATE_FORMAT(</span>‘2020/07/12‘,‘%Y年%m月%d日‘);</span>

技术图片

技术图片

  1. <span style="font-size: 14px;"><span style="color: #008080;">#查询入职日期为1992-4-</span><span style="color: #000000;"><span style="color: #008080;">3的员工信息。上面理想输入,下面为实际输入。</span>
  2. SELECT </span>*<span style="color: #000000;">
  3. FROM employees
  4. WHERE hiredate </span>= ‘1992-4-3‘<span style="color: #000000;">;<br>==================================================
  5. SELECT </span>*<span style="color: #000000;">
  6. FROM employees
  7. WHERE hiredate </span>= STR_TO_DATE(‘4-3 1992‘,‘%c-%d %Y‘);</span>

技术图片

  1. <span style="font-size: 14px;"><span style="color: #008080;">#案例:查询有奖金的员工名和入职日期(XX月/</span><span style="color: #000000;"><span style="color: #008080;">XX日 XX年)</span>
  2. SELECT last_name,DATE_FORMAT(hiredate,</span>‘%m月/%d日 %Y年‘<span style="color: #000000;">)
  3. FROM employees
  4. WHERE commission_pct IS NOT NULL;</span></span>

技术图片

  1. <span style="color: #000000; font-size: 14px;">#四.其他函数
  2. SELECT <span style="color: #ff0000;">VERSION()</span>; #查看版本号
  3. SELECT <span style="color: #ff0000;">DATABASE()</span>; #查看当前的数据库
  4. SELECT <span style="color: #ff0000;">USER()</span>; #查看当前的用户</span>

         日常学习中的函数就暂时介绍到这里,各位看官可能有疑问你的流程控制函数能?

这emmmm.........!!!精彩回顾且听下篇慢慢到来。

MySql的回顾二:排序/常用函数详细介绍

标签:sele   英文   dep   截取   rap   查询语句   获取参数   replace   字段   

人气教程排行