Day03 学习MySQL的数据控制语言(DCL),同时是SQL语言大总结

DCL:数据控制语言,用来管理数据库用户,控制数据库访问权限

1.查询权限

语法: show grants for ‘用户名’ @‘主机名’;

2.授予权限

语法:grant 权限列表 on 数据库名.表名 to ‘用户名’ @‘主机名’;

3.撤销权限

语法:revoke 权限列表 on 数据库名.表名 from ‘用户名’ @‘主机名’;

注意:多个权限间使用逗号分隔,授权时,数据库名和表名可使用通配符*,代表所有的

4.查询数据库的用户

语法:use mysql;

select *from user;

5.创建用户

语法:create user  ‘用户名’ @‘主机名’ identified by ‘密码’;

6.修改用户密码

语法:alter user ‘用户名’ @‘主机名’ identified with  mysql_native_password by '新密码';

#创建用户itcast
create user itcast@'localhost' identified  by '123456';
#修改用户密码
alter user 'itcast'@'localhost' identified  with mysql_native_password by'1234';
#查询用户itcast的权限
show grants for 'itcast'@'localhost';
#授予用户itcast权限
grant all on mysql.* to 'itcast'@'localhost';
#撤销用户itcast权限
revoke all on  mysql.* from 'itcast'@'localhost';

SQL总结:

DDL:

1.数据库

创建数据库:create database 数据库名;

展示所有数据库:show databases;

展示当前数据库:select database();

使用数据库:use 数据库名;

删除数据库:drop database 数据库名;

2.表

创建表: create table(字段名 字段类型[comment],字段名 字段类型[comment]....)comment ’表名‘;

展示表结构:desc 表名;

添加字段:alter table 表名 add  字段名 字段类型 [comment];

修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型 [comment][约束] ;

修改字段类型:alter table 表名 modify 字段名 新数据类型(长度);

修改表名:alter table 表名 rename to 新表名;

删除字段:alter table 表名 drop 字段名;

删除表:drop table [if exists] 表名;

删除表并重新创建该表:truncate table 表名;

DML:

1.添加

给指定字段添加数据: insert into 表名 (字段名)values(值);

给所有字段添加数据: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,....);

2.修改

修改表中符合条件的对应字段:update 表名 set 字段名1=值1,字段名2=值2....  [where 条件];

3.删除

删除表中符合条件的数据:delete from 表名  [where 条件];

DQL:

1.基本查询

查询多个字段: select 字段1,字段2,字段3....from 表名;

设置别名:select 字段1[as 别名1] 字段2[as 别名2] ....from 表名;

去除重复记录:select distinct 字段名/字段列表 from 表名; 

2.条件查询

查询符合条件的字段:select 字段列表 from 表名 where 条件列表;

查询符合条件的所有字段:select *from 表名 where 条件列表;

3.聚合函数

统计表格基本单元数量(一个企业=一个表格,统计企业员工数量):count()

统计某字段名的平均数(一个企业所有员工平均年龄):avg()

统计表格某字段名的最大值/最小值(企业员工年龄的最大值/最小值):max()/min()

统计某字段总和(企业所有员工年龄的总和):sum()

4.分组查询

根据字段名分组:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

5.排序查询

根据字段名正序排列:select  字段列表 from 表名 order by 字段1 [asc],字段2,[asc];//不指定排序顺序则默认正序排序

根据字段名倒序排列:select  字段列表 from 表名 order by 字段1 desc,字段2,desc;

6.分页查询

select 字段列表 from 表名 limit  起始索引,查询记录条数;

注意:起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数;不同数据库软件的分页查询不同,datagrip用的是limit

执行顺序:from->where->group by->select->having->order by->limit

DCL:

1.用户管理

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

修改用户密码:alter user '用户名‘@’主机名‘ identified with mysql_natve_password by '新密码';

删除用户(注销?):drop user user '用户名‘@’主机名‘ ;

2.控制用户权限

查询权限:show grants for '用户名‘@’主机名‘ ;

授予权限:grant 权限列表 on 数据库名.表名 to  '用户名‘@’主机名‘ ;

撤销权限(账号违规限权?):revoke 权限列表 on 数据库名.表名 from '用户名‘@’主机名‘ ;

结束啦,有什么需要补充或者写错的地方欢迎大家评论区告诉我哦,谢谢!

继续前进!

猜你喜欢

转载自blog.csdn.net/m0_67042480/article/details/128877693