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 '用户名‘@’主机名‘ ;
结束啦,有什么需要补充或者写错的地方欢迎大家评论区告诉我哦,谢谢!
继续前进!