Mysql(2)
目录
目录
一.外键约束属性
创建外键约束,保证数据的完整性和一致性。 与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。
主键表和外键表的理解:
(1)以公共关键字作主键的表为主键表(父表、主表)
(2)以公共关键字作外键的表为外键表(从表、外表)
创建主键表:
创建外键表:
创建表:
字段一样可以创建外键:
查看外键信息:
插入数据,先插入主表在插入外表:
给外键添加内容,会失败:
给主键添加内容:
在给外键添加内容:
删数数据记录时,要先从表再主表:
先删除外表:
在删除主表:
删除外键属性:
查看外键别名,并删除:
?? ? alter table 表名 drop foreign key “外键别名”;
?alter table 表名 drop key '键名';
二.数据库的用户权限管理
看数据库中的用户:
select user,host,authentication_string from mysql.user;
新建用户:
create user '用户名'@'源地址' identified by '密码';
源地址可以是localhost/IP/网段/主机名/%。
查看当前登录用户:
select user();
重命名用户:
rename user '用户名'@'源地址' to '新用户名'@'源地址';
删除用户:
drop user '用户名'@'源地址';
修改当前登录用户密码:
1.set password = password('密码');
当前用户为root:
第二种方法:2.alter user '用户名'@'源地址' identified by '密码';
修改其他用户密码:
.set password for '用户名'@'源地址' = password('密码');
如何找回 root 密码?
修改MySQL配置文件,在 [mysqld] 配置项下面添加 skip-grant-tables 配置参数
登录进去修改 root 用户密码:
update mysql.user set authentication_string=password('密码') where user='root';
还原MySQL配置,重启mysqld服务:
使用 mysql -u用户名 -p密码 [-h mysql地址 -P mysql端口] 命令登录数据库验证:
或者再开一台服务器,远程登陆:
权限管理:
5.7或之前版本支持创建新用户和授予权限,8.0版本只能用于授予权限。
当指定的用户名不存在时,grant语句将会创建新的用户;当指定的用户名存在时, GRANT 语句用于修改用户信息。
创建表:
给prod表添加内容:
给tab表添加内容:
添加权限:
grant 权限1,权限2,.... (all:所有权限) on 库名.表名 to '用户名'@'源地址' [identified by '密码']; ?
刷新权限:
再开一个会话,试试权限:
可以查看数据:
修改不了数据:
删除不了表:
查看用户的权限:
show grants for '用户名'@'源地址';
登录权限,不可撤销,除非删除用户:
撤销权限:
revoke 权限1,权限2,.... (所有权限)on 库名.表名 from ?'用户名'@'源地址';
登录lisi用户是否能查看表内容:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!