MySQL:DQL操作单表

1 创建数据库,复制表 

1) 创建一个新的数据库 db2

CREATE DATABASE db2 CHARACTER SET utf8;

 

2) 将db1数据库中的 emp表 复制到当前 db2数据库

MySQL:DQL操作单表

 

 

 MySQL:DQL操作单表

 

 

 

2 排序 

通过 ORDER BY 子句,可以将查询出的结果进行排序(排序只是显示效果,不会影响真实数据)

语法结构

SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC]

ASC 表示升序排序(默认)

DESC 表示降序排序

 

排序方式 

1) 单列排序

  只按照某一个字段进行排序, 就是单列排序 

需求1:
使用 salary 字段,对emp 表数据进行排序 (升序/降序)

-- 默认升序排序 ASC 
SELECT * FROM emp ORDER BY salary; -- 降序排序 SELECT * FROM emp ORDER BY salary DESC;

 

2) 组合排序

  同时对多个字段进行排序, 如果第一个字段相同 就按照第二个字段进行排序,以此类推

需求2:

在薪水排序的基础上,再使用id进行排序, 如果薪水相同就以id 做降序排序

-- 组合排序 
SELECT * FROM emp ORDER BY salary DESC, eid DESC;

 

3 聚合函数 

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,

而使用聚合函数查询:是纵向 查询,它是对某一列的值进行计算,然后返回一个单一的值(另外,聚合函数会忽略null空值。);

语法结构

SELECT 聚合函数(字段名) FROM 表名;

我们来学习5个聚合函数

聚合函数 

作用

count(字段)

统计指定列不为NULL的记录行数

sum(字段)  计算指定列的数值和
max(字段) 

计算指定列的最大值

min(字段)

计算指定列的最小值

avg(字段)

计算指定列的平均值

需求1:

#1 查询员工的总数 
#2 查看员工总薪水、最高薪水、最小薪水、薪水的平均值 
#3 查询薪水大于4000员工的个数 
#4 查询部门为教学部的所有员工的个数 
#5 查询部门为市场部所有员工的平均薪水

SQL实现

#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 = 市场部;

 

MySQL:DQL操作单表

上一篇:Linux 标准目录结构


下一篇:Linux + jmeter + grafana + influxdb 监控环境