数据库MySQL(三):DML、DQL、DCL

数据操作语言(Data Manipulation Language,DML)
该语言主要对数据库表中的数据进行增删改

# 给指定字段添加数据
INSERT INTO 表名 (字段1, 字段2, ... ) VALUES (1,2, ...) ;    

# 给全部字段添加数据
INSERT INTO 表名 VALUES (1,2, ...) ;    

# 批量添加数据 
INSERT INTO 表名 VALUES (1,2, ...),  (1,2, ...),  (1,2, ...) ;   

# 修改某条件下的数据(无条件全部修改)
UPDATE 表名 SET 字段1=1 [ , 字段2=2, ... ]  [ WHERE 条件 ] ;    

# 删除某条件下的数据
DROP FROM 表名 [WHERE 条件] ;    

# 在对字符串和日期型数据操作时,应包含在引号中。


数据查询语言(Data Query Language,DQL)
该语言主要用于查询数据库表的记录

命令格式

SELECT [DISTINCT]
   字段1 [AS 字段别名], [字段2 [AS 字段别名]], …
FROM
   表名列表
WHERE
   条件查询语句
GROUP BY
   字段1 [ , 字段2, … ]
HAVING
   分组后过滤条件
ORDER BY
   字段1 ASC|DESC [ , 字段2** ASC|DESC** , … ]
LIMIT
   起始索引( = (查询页码-1) * 每页显示记录数 ), 查询记录数

条件查询

比较运算符 功能
<、<=、=、>、>= 常规比较
<>、!= 不等于
BETWEEN … AND … 在某个范围之内,含最小、最大值
IN(…) 在 IN 之后的列表中的值,多选一
LIKE 占位符 模糊匹配(_ 匹配单个字符;% 匹配任意个字符)
IS NULL 判断是否为NULL

逻辑运算符 功能
AND、&& 并且,多个条件同时成立
OR、
NOT、! 非,不是

比较运算符 功能
<、<=、=、>、>= 常规比较
<>、!= 不等于
BETWEEN … AND … 在某个范围之内,含最小、最大值
IN(…) 在 IN 之后的列表中的值,多选一
LIKE 占位符 模糊匹配(_ 匹配单个字符;% 匹配任意个字符)
IS NULL 判断是否为NULL

聚合函数 功能
COUNT 求组中项数,返int类型整数
MAX/MIN 求最大值/最小值
AVG 求组中值的平均值
SUM 返回表达式中所有值的和
VAR 返回给定表达式中所有值的统计方差
! NULL值不参与所有聚合函数的运算

WHERE 和 HAVING的区别
  • 执行时机不同:where是分组之前进行过滤,不满足where条件的记录不参与分组;而having是分组之后对结果进行过滤;
  • 判断条件不同:where不能对聚合函数进行判断;而having可以。
  • 执行顺序:where > 聚合函数 > having
DQL语句关键字执行顺序

FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY --> LIMIT


数据控制语言(Data Control Language,DCL)
该语言主要用于管理数据库用户、控制数据库的访问权限。

# 查询指定数据库的用户
select * from 数据库名.user;

# 创建用户
create user '用户名'@'主机名' identified by '密码';

# 修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
  
# 删除用户 
drop user '用户名'@'主机名';

# !注意事项:
# 在MySQL中需要通过 用户名@主机名的方式,来唯一标识一个用户;
# 主机名可以使用 % 通配符来表示任意主机;

# MySQL中常用的权限主要有:
allselectinsertupdatedeletealterdropcreate

# 查询指定用户的权限
show grants for '用户名'@'主机名';        
                              
# 授予指定用户相应的权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';    
      
# 撤销指定用户相应的权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';    

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