一,Mysql 常见的约束
1.主键约束(Primary Key)
主键约束要求主键列的数据唯一且不允许为空, 可分为单字段主键和多字段联合主键
2. 外键约束(Foreign Key)
外键用来在两个表之间建立链接,它可以是一列或多列,一个表可以有一个或多个外键.
3.非空约束(Not Null)
非空约束要求该列字段值不能为空,否则会报错.(可配合默认约束)
4. 唯一约束(Unique)
唯一约束要求改列字段值唯一,允许为null(多个null也可).
5.默认约束(Default)
指定某列的默认值.
二,主机表和外键表
1. 数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用于其他表的外键关联,以及本记录的修改与删除。
2.如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
1.创建主表test和从表test01
create table test (hobid int(4),hobname varchar(50));
create table test1 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));
2.为主表test添加一个主键约束。主键名建议以"PK_"开头。
alter table test add constraint PK_hobid primary key (hobid);
3.为从表test1表添加外键,并将test1表的hobid字段和test表的hobid字段建立外键关联。外健名建议以"FK"开头。
alter table test1 add constraint FK_hobid foreign key(hobid) references test(hobid);
4.可以使用查询表语句结构命令查看外键关联
show create table test1;
删除外键约束字段先删除外键约束再删除外键名
alter table test01drop foreign key FK_hob;
alter table test01 drop key Fk_hob ;
删除记录,先删除从表在删除关联表
drop tables test1;
drop tables test;
三,数据库用户管理
1.创建用户
reate user 'zhangsan'@'localhost' identified by 'abc123';
2.加密创建
select password('abc123');
3.查看用户信息
查询user,authentication_string,host user表
select user,authentication_string,host from mysql.user;
4.重命名指定
rename user ‘zhangsan’@‘localhost’ to ‘wangwu’@‘localhost’;
删除用户
drop user 'lisi'@'localhost';
修改当前登录用户的密码④
set password = password('1234567');
⑤修改其他用户密码
set password for 'wangwu'@'localhost' = password('123456');
忘记root密码如何解决
修改/etc/my.cnf 配置文件,免密登陆mysql
vim /etc/my .cnf
[mysqld]
skip-grant-tables //添加,登录mysql 不使用
systemctl restart mysqld //重启服务
四,数据库用户授权
1.实际操着;
授于权限
1.grant select on sch.* to 'zhangsan'@'%' identified by 'abc123';
2.flush privileges; #刷新权限
3.查看权限
show grants for 'zhangsan'@'%';
4.移除权限
revoke select on sch.* from 'zhangsan'@'%';