MySQL笔记2

这篇博客介绍了MySQL的排序查询`order by`以及常见函数的使用,包括单行函数如字符、数学、日期函数,以及分组函数如`sum`、`avg`、`max`、`min`和`count`。内容涵盖了各种函数的功能、使用示例和注意事项,如排序的升序和降序,函数的参数类型和忽略null值的情况。
摘要由CSDN通过智能技术生成

目录

进阶3:排序查询order by

3.1引入

测试题:

进阶4:常见函数

4.1概念

4.2分类:

        一、单行函数 字符concat length substr trim lpad、数学round ceil floor mod 日期now curdate str_to_date date_format 控制if case

        二、分组函数 (传进去一组值,最后返回一个值)

1、字符函数:

2、数学函数:

3、日期函数:

4、其他函数:

5、流程控制函数:

二、分组函数

分类: sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数

1、简单使用:

2、参数支持哪些类型

3、是否忽略null值

4、可以用来搭配distinct进行去重的运算

5、count函数的详细介绍

6、和分组函数一同查询的字段有限制

测试:


进阶3:排序查询order by

3.1引入

简单的select * from employees; 输出的是和表中顺序一样的

若想有按照工资等等排序

语法:

         select  查询列表

         from 表

        【where 筛选条件】

          order by 排序列表 【asc升序|desc降序】

特点:asc代表升序,desc代表降序;如果不写,默认代表升序

          order by子句中可以放单个字段、多个字段、表达式、函数、别名

          order by子句一般放在查询语句最后面,limit子句除外

案例1:查询员工信息,要求工资从高到低实现排序

SELECT * FROM employees
ORDER BY salary DESC;

             从低到高排序

SELECT * FROM employees
ORDER BY salary ASC;

或者

SELECT * FROM employees
ORDER BY salary;

案例2:查询部门编号大于等于90的员工信息,要求按入职时间先后进行排序【添加了筛选条件】

SELECT * FROM employees
WHERE department_id>=90
ORDER BY hiredate;

案例3: 按年薪高低排序,显示员工信息和年薪 【按表达式排序】

SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;

案例4: 按年薪高低排序,显示员工信息和年薪 【按别名排序】

SELECT *,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY 年薪 DESC;

案例5:根据姓名字节长度显示员工姓名、工资 【按函数排序】

SELECT LENGTH(last_name)字符长度,last_name,salary
FROM employees
ORDER BY LENGTH(last_name) DESC;

案例6:查询员工信息,先按工资升序排序,再按员工编号降序排序 【按多个字段排序】

SELECT * FROM employees
ORDER BY salary ASC,employee_id DESC;

也就是在工资升序排序的基础上,如果工资一样,则再按员工编号降序去排序

测试题:

1、查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序

SELECT `last_name` 姓名,`department_id`,salary*12*(1+IFNULL(`commission_pct`,0)) 年薪
FROM employees
ORDER BY 年薪 DESC,姓名 ASC;

2、选择工资不在8000到17000的员工的姓名和工资,按工资降序

SELECT `last_name`,salary
FROM employees
WHERE NOT(salary BETWEEN 8000 AND 17000)
ORDER BY salary DESC;

或者not放在between前也可

SELECT `last_name`,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC;

3、查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT *,LENGTH(email) 邮箱字节数 FROM employees 
WHERE `email` LIKE '%e%'
ORDER BY LENGTH(email) DESC,department_id ASC;

进阶4:常见函数

4.1概念

将一组逻辑语句封装在方法体中,对外暴露方法名

好处:隐藏了实现细节,提高了代码重用性

现成的函数调用:select 函数名(参数列表) 【from 表】    当函数中的参数用到了这个表中的字段

特点:叫什么(函数名);干什么(函数功能)

4.2分类:

        一、单行函数 字符concat length substr trim lpad、数学round ceil floor mod 日期now curdate str_to_date date_format 控制if case

比如concat、length、ifnull、isnull等

        二、分组函数 (传进去一组值,最后返回一个值)

功能:做统计使用,又称为统计函数、聚合函数、组函数

一、单行函数:字符函数

                         数学函数

                         日期函数

                         其他函数

                         流程控制函数

1、字符函数:

length 获取参数值的字节个数

select length('john');            输出为4 

select length('张三丰hahaha');            输出为15   

                                                          utf8下,一个英文字母占一个字节,一个汉字占3个字节

注意:字节与字符不同!   只有length函数获取的是字节个数

concat 拼接字符串

select concat(last_name,'_',first_name)  姓名 from employees;

upper、lower 改变大小写

select upper('john');    输出JOHN

select lower('joHn');    输出john

示例:将员工姓变大写,名变小写,然后拼接

SELECT CONCAT(UPPER(&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值