MYSQL(基础命令4)

1.排序

SELECT 字段名 FROM 表名 [ WHERE 字段 = ] ORDER BY 字段名 [ ASC / DESC ]
                                                     
ASC 表示升序排序 ( 默认 ) DESC 表示降序排序
1.单列排序
-- 默认升序排序 ASC
SELECT * FROM emp ORDER BY salary;
-- 降序排序
SELECT * FROM emp ORDER BY salary DESC ;
2.组合排序
-- 组合排序
SELECT * FROM emp ORDER BY salary DESC , eid DESC ;
2.聚合函数
 
聚合函数作用
count( 字段 )
统计指定列不为 NULL 的记录行数
sum( 字段 )
计算指定列的数值和
max( 字段 )
计算指定列的最大值
min( 字段 )
计算指定列的最小值
avg( 字段 )
计算指定列的平均值
#1 查询员工的总数
-- 统计表中的记录条数 使用 count()
SELECT COUNT (eid) FROM emp; -- 使用某一个字段
SELECT COUNT (*) FROM emp; -- 使用 *
SELECT COUNT ( 1 ) FROM emp; -- 使用 1, * 效果一样
-- 下面这条 SQL 得到的总条数不准确 , 因为 count 函数忽略了空值
-- 所以使用时注意不要使用带有 null 的列进行统计
SELECT COUNT (dept_name) FROM emp;
#2 查看员工总薪水、最高薪水、最小薪水、薪水的平均值
-- sum 函数求和 , max 函数求最大 , min 函数求最小 , avg 函数求平均值
SELECT
SUM (salary) AS ' 总薪水 ' ,
MAX (salary) AS ' 最高薪水 ' ,
MIN (salary) AS ' 最低薪水 ' ,
AVG (salary) AS ' 平均薪水 '
FROM emp;
#3 查询薪水大于 4000 员工的个数
SELECT COUNT (*) FROM emp WHERE salary > 4000 ;
#4 查询部门为 ' 教学部 ' 的所有员工的个数
SELECT COUNT (*) FROM emp WHERE dept_name = ' 教学部 ' ;
#5 查询部门为 ' 市场部 ' 所有员工的平均薪水
SELECT
AVG (salary) AS ' 市场部平均薪资 '
FROM emp
WHERE dept_name = ' 市场部 ' ;
3.分组
#1. 查询有几个部门
SELECT dept_name AS ' 部门名称 ' FROM emp GROUP BY dept_name;
#2. 查询每个部门的平均薪资
SELECT
dept_name AS ' 部门名称 ' ,
AVG (salary) AS ' 平均薪资 '
FROM emp GROUP BY dept_name;
#3. 查询每个部门的平均薪资 , 部门名称不能为 null
SELECT
dept_name AS ' 部门名称 ' ,
AVG (salary) AS ' 平均薪资 '
FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name;
#4. 查询平均薪资大于 6000 的部门
-- 需要在分组后再次进行过滤 , 使用 having
SELECT
dept_name ,
AVG (salary)
FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name HAVING AVG (salary) >
6000 ;
1. where having 的区别
过滤方式
特点
where
where 进行分组前的过滤
where 后面不能写 聚合函数
having
having 是分组后的过滤
having 后面可以写 聚合函数

4.limit关键字

# 查询 emp 表中的前 5 条数据
-- 参数 1 起始值 , 默认是 0 , 参数 2 要查询的条数
SELECT * FROM emp LIMIT 5 ;
SELECT * FROM emp LIMIT 0 , 5 ;
# 查询 emp 表中 从第 4 条开始 , 查询 6
-- 起始值默认是从 0 开始的 .
SELECT * FROM emp LIMIT 3 , 6 ;
-- 分页操作 每页显示 3 条数据
SELECT * FROM emp LIMIT 0 , 3 ; -- 1
SELECT * FROM emp LIMIT 3 , 3 ; -- 2 2-1=1 1*3=3
SELECT * FROM emp LIMIT 6 , 3 ; -- 第三页
-- 分页公式 起始索引 = ( 当前页 - 1) * 每页条数
-- limit MySql 中的方言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值