Mysql(2)

目录

一.外键约束属性

创建主键表:

​编辑

创建外键表:

插入数据,先插入主表在插入外表:

删数数据记录时,要先从表再主表:

删除外键属性:

二.数据库的用户权限管理

看数据库中的用户:

新建用户:

查看当前登录用户:

重命名用户:

删除用户:

修改当前登录用户密码:

修改其他用户密码:

如何找回 root 密码?

权限管理:

添加权限:

查看用户的权限:

撤销权限:


目录

一.外键约束属性

创建主键表:

​编辑

创建外键表:

插入数据,先插入主表在插入外表:

删数数据记录时,要先从表再主表:

删除外键属性:

二.数据库的用户权限管理

看数据库中的用户:

新建用户:

查看当前登录用户:

重命名用户:

删除用户:

修改当前登录用户密码:

修改其他用户密码:

如何找回 root 密码?

权限管理:

添加权限:

​编辑

​编辑

​编辑

​编辑

​编辑

查看用户的权限:

撤销权限:


一.外键约束属性

创建外键约束,保证数据的完整性和一致性。 与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

主键表和外键表的理解:

(1)以公共关键字作主键的表为主键表(父表、主表)

(2)以公共关键字作外键的表为外键表(从表、外表)

创建主键表:

Mysql(2)_第1张图片

创建外键表:

创建表:

Mysql(2)_第2张图片

字段一样可以创建外键:

查看外键信息:

Mysql(2)_第3张图片

插入数据,先插入主表在插入外表:

给外键添加内容,会失败:

给主键添加内容:

Mysql(2)_第4张图片

Mysql(2)_第5张图片

在给外键添加内容:

Mysql(2)_第6张图片

删数数据记录时,要先从表再主表:

先删除外表:

在删除主表:

Mysql(2)_第7张图片

删除外键属性:

查看外键别名,并删除:

Mysql(2)_第8张图片

     alter table 表名 drop foreign key “外键别名”;

Mysql(2)_第9张图片

Mysql(2)_第10张图片

 alter table 表名 drop key '键名';

Mysql(2)_第11张图片

Mysql(2)_第12张图片

二.数据库的用户权限管理

看数据库中的用户:

select user,host,authentication_string from mysql.user;Mysql(2)_第13张图片

新建用户:

create user '用户名'@'源地址' identified by '密码';

源地址可以是localhost/IP/网段/主机名/%。

Mysql(2)_第14张图片

查看当前登录用户:

select user();

Mysql(2)_第15张图片

重命名用户:

rename user '用户名'@'源地址' to '新用户名'@'源地址';

Mysql(2)_第16张图片

删除用户:

drop user '用户名'@'源地址';

Mysql(2)_第17张图片

修改当前登录用户密码:

1.set password = password('密码');

当前用户为root:

Mysql(2)_第18张图片

Mysql(2)_第19张图片

Mysql(2)_第20张图片

第二种方法:2.alter user '用户名'@'源地址' identified by '密码';

Mysql(2)_第21张图片

Mysql(2)_第22张图片

修改其他用户密码:

.set password for '用户名'@'源地址' = password('密码');

Mysql(2)_第23张图片

Mysql(2)_第24张图片

如何找回 root 密码?

修改MySQL配置文件,在 [mysqld] 配置项下面添加 skip-grant-tables 配置参数

Mysql(2)_第25张图片

Mysql(2)_第26张图片

登录进去修改 root 用户密码:

update mysql.user set authentication_string=password('密码') where user='root';

还原MySQL配置,重启mysqld服务:

Mysql(2)_第27张图片

使用 mysql -u用户名 -p密码 [-h mysql地址 -P mysql端口] 命令登录数据库验证:

Mysql(2)_第28张图片

或者再开一台服务器,远程登陆:

Mysql(2)_第29张图片

权限管理:

5.7或之前版本支持创建新用户和授予权限,8.0版本只能用于授予权限。

当指定的用户名不存在时,grant语句将会创建新的用户;当指定的用户名存在时, GRANT 语句用于修改用户信息。

创建表:

给prod表添加内容:

Mysql(2)_第30张图片

Mysql(2)_第31张图片

给tab表添加内容:

Mysql(2)_第32张图片

Mysql(2)_第33张图片

Mysql(2)_第34张图片

添加权限:

grant 权限1,权限2,.... (all:所有权限) on 库名.表名 to '用户名'@'源地址' [identified by '密码'];  

刷新权限:

Mysql(2)_第35张图片
Mysql(2)_第36张图片

再开一个会话,试试权限:

Mysql(2)_第37张图片

Mysql(2)_第38张图片

可以查看数据:

Mysql(2)_第39张图片

修改不了数据:

删除不了表:

查看用户的权限:

show grants for '用户名'@'源地址';

Mysql(2)_第40张图片

登录权限,不可撤销,除非删除用户:

Mysql(2)_第41张图片

撤销权限:

revoke 权限1,权限2,.... (所有权限)on 库名.表名 from  '用户名'@'源地址';

Mysql(2)_第42张图片

登录lisi用户是否能查看表内容:

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