MySql的回顾二排序/常用函数详细介绍
愉快的时光总是过得很快,月亮悠哉游哉爬上了半空遥望着太阳。上一篇中剩余排序还没回顾,本篇就暂时先来回顾一下排序吧!
特点: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的回顾二排序/常用函数详细介绍 的全部内容, 来源链接: utcz.com/z/534541.html