跟着黑马学mysql(5)

17.DQL-聚合函数

DQL-聚合函数

  1. 介绍

    将一列数据作为一个整体,进行纵向计算。

  2. 常见聚合函数

    函数 功能
    count 统计数量
    max 最大值
    min 最小值
    avg 平均值
    sum 求和
  3. 语法

    SELECT 聚合函数(字段列表) FROM 表名;
    
  4. 注意:所有的null值不参与聚合函数的运算

18.DQL-分组查询

  1. 语法

    SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后的过滤条件];
    
  2. wherehaving 区别

    执行时机不同:where是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。

    判断条件不同:where 不能对聚合函数进行判断,而 having 可以。

19.DQL-排序查询

  1. 语法

    SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
    
  2. 排序方式

    • ASC:升序(默认值)
    • DESC:降序

20.DQL-分页查询

  1. 语法

    SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
    
  2. 注意

    • 起始索引从 0 开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
    • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL 中是 LIMIT
    • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10

21.DQL-案例联系

按照需求完成如下DQL语句编写

  1. 查询年龄为20,21,22,23岁的员工信息。

    select * from emp where gender='女' and age in(20, 21, 22, 23);
    
  2. 查询性别为男,并且年龄在 20 ~ 40 岁(含)以内的姓名为三个字的员工

    select * from emp where gender='男' and age between 20 and 40 and name like '___';
    
  3. 统计员工表中,年龄小于 60 岁的,男性员工和女性员工的人数。

    select gender, count(*) from emp where age < 60 group by gender;
    
  4. 查询所有年龄小于等于 35 岁的员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。

    select name, age from emp where age <= 35 order by age, entrydate desc;
    
  5. 查询性别为男,且年龄在 20 ~ 40岁(含)以内的前五个员工信息,对查询的结果按照年龄升序排序,年龄相同按入职时间升序排序。

    select * from emp where gender='男' and age between 20 and 40 order by age, entrydate limit 0, 5;
    

22.DQL-执行顺序

FROM
	表名
WHERE
	条件列表
GROUP BY
	分组字段列表
HAVING
	分组后条件列表
SELECT
	字段列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

23.DQL小结

24.DCL-用户管理

DCL-介绍

DCL英文全称是 Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

DCL-管理用户

  1. 查询用户

    USE mysql;
    SELECT * FROM user;
    
  2. 创建用户

    CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
    
  3. 修改用户密码

    ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
    
  4. 删除用户

    DROP USER '用户名'@'主机名';
    

25.DCL-权限控制

MySQL中定义了很多种权限,但是常用的就以下几种:

权限 说明
ALL,ALL PRIVILEGES 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表
  1. 查询权限

    SHOW GRANTS FOR '用户名'@'主机名';
    
  2. 授予权限

    GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
    
  3. 撤销权限

    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
    

26.DCL-小结

你可能感兴趣的:(mysql,数据库)