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
中的方言