DML & DQL & DCL

目录

DML—数据库操作语言

 添加数据

给指定的字段添加数据

给全部字段添加数据 

批量添加数据

注意 

修改数据

删除数据

 DQL数据查询语言

基础查询

查询多个字段

查询所有字段

设置别名

去除重复记录

条件查询 (WHERE)

 聚合函数

分组查询 (GROUP BY )

WHERE 与HAVING区别

注意

排序查询(ORDER BY)

分页查询(LIMIT)

DCL—数据控制语言

用户管理

查询用户

创建用户

修改用户密码

删除用户

权限控制

常见权限

查询权限

授予权限

撤销权限

DML—数据库操作语言

用来对数据库中表的数据记录进行增删改操作
添加数据(INSERT)
修改数据 (UPDATE)
删除数据 (DELETE) 

 添加数据

给指定的字段添加数据

INSERT INTO 表名(字段1,字段2,……)VALUES (值1,值2,……);

给全部字段添加数据 

INSERT INTO 表名 VALUES (值1,值2,……);

批量添加数据

INSERT INTO 表名(字段1,字段2,……)VALUES (值1,值2,……),(值1,值2,……),(值1,值2,……);

INSERT INTO 表名 VALUES (值1,值2,……),(值1,值2,……),(值1,值2,……);

注意 

  • 插入数据时,指定的字段顺序要与值得顺序时一一对应的。
  • 字符串和日期型数据应该包含在引号中
  • 插入的数据大小,应该在字段的规定范围内

修改数据

UPDATE 表名 SET 字段1=值,字段2=值2,……WHERE 条件;

注意; 修改语句的条件可以有,也可以没有,如果条件没有,则会修改整张表的所有数据。 

删除数据

DELETE FROM 表名 WHERE条件;

注意:

DELETE语句的条件可以有,也可以没有,如果条件没有,则会删除整张表的所有数据。

DELETE语句不能删除某一个字段的值(可以使用UPDATE把字段设置为NULL)

 DQL数据查询语言

用来查询数据库中表的记录 

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

 

 

基础查询


查询多个字段

SELECT 字段1,字段2,字段3…… FROM 表名;

查询所有字段

SELECT * FROM 表名;

设置别名

SELECT 字段1[AS 别名1],字段2[AS 别名2]…FROM 表名;

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

条件查询 (WHERE)

SELECT 字段列表 FROM 表名 WHERE 条件列表;

 

 

 聚合函数

定义:将一列数据作为一个整体,进行纵向计算
常见聚合函数----作用于某一列(null值不参与聚合运算)

 

 

  语法: SELECT 聚合函数(字段列表)FROM 表名

 

分组查询 (GROUP BY )

语法:SELECT 字段列表 FROM     WHERE 条件 GROUP BY 分组字段名 HAVING 分组后过滤条件;

WHERE 与HAVING区别

  • 执行时机不同: WHERE 是分组之前进行过滤,不满足WHERE 条件,不参与分组;而HAVING 是分组之后对结果进行过滤。
  • 判断条件不同: WHERE 不能对聚合函数进行判断,而HAVING 可以。

注意

执行顺序:where >聚合函数>having
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

 

排序查询(ORDER BY)

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

 排序方式
ASC:升序
DESC:降序

如果是多个字段排序,当第一个字段的值相同时,才会根据第二个字段进行排序

分页查询(LIMIT)

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录;
第一页可以省略0

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

DCL—数据控制语言

用来管理数据库用户,控制数据库访问权限

 

用户管理


查询用户

USE mysql;

SELECT * FROM user;

创建用户

CREATE USER '用户名@主机名' IDENTIFIED BY '密码';

修改用户密码

ALTER USER '用户名@主机名' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';

删除用户

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

权限控制

常见权限

 

查询权限

SHOW GRANTS FOR  '用户名@主机名';

授予权限

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

撤销权限

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

注意: 多个权限之间使用逗号分隔

授权时,数据库名和表名可以使用*进行通配,代表所有