1、MySQL中六种常见的约束/规则
主键约束:primary key
外键约束:foreign key
非空约束:not null
唯一性约束:unique [key | index]
默认值约束:default
自增约束:auto_increment
外键的定义:如果同一个属性字段x再表一中是主键,而在表二中不是主键,则字段x称为表二的外键
创建外键的约束作用(误删,修改),保证数据的完整性和一致性
主键表和外键表的理解
以公共关键字作主键的表为主键表(父表、主表)
以巩固关键字做外键的表为外键表(从表、外表)
注意点:与外键管理的主表的字段必须设置为主键。要求从表不能是临时表,主表外键字段和从表的字段具备相同的数据类型、字符长度和约束。
创建主表txt1
create table txt1 (id int(4),name varchar(50));
创建从表
create table txt2 (uid int(4) primary key auto_increment,uname varchar(20),age int(3),id int(4));
为主表添加一个主键约束
为从表添加外键,并将从表的id和主表的id字段建立外键关联
建立的外键约束后,插入新数据需要从主表开始,再插入从表
删除数据则是先删除从表数据,再删除主表
删除外键约束字段需要先删除外键约束,再删除外键名
alter table txt2 drop foreign key FK_id;
alter table txt2 drop key FK_id;
2、数据库用户管理(库、表)
新建一个用户并设置密码
给xuyang用户更换加密信息
更改用户名
删除用户
更改root用户密码
set passwor = password('zxc789');
flush privileges;
用update方法修改root用户密码
此处我直接修改为空
flush privileges; ##刷新
忘记root密码时,我们可以这样操作
进入 /etc/my.cnf文件配置
保存退出,重启mysql服务
然后即可无密码登录
3、mysql数据库授权(远程登陆并操作添加库和表)
授予权限
grant :提权
grant 权限列表 on 数据库名.表ming to '用户名'@'来源地址' [identified by '密码'];
权限列表:用于列出授权使用的各种数据库操作,以逗号分隔,all代表所用权限
数据库名,表名:允许操作哪个数据库的哪个表,*.*表示所有库所有表
此处含义,给来源地址是%的xuyang用户在kgc库内的所有权限
flush privileges; ##刷新权限
xuyang用户无法切换到kgc以外的库
但是xuyang用户可以在kgc库内任意操作,权限允许。