MySQL命令大全——完整性约束
一、主键
主键是数据库中用来唯一确定每条记录的标识。
特点:主键列的值不能为NULL,也不能重复
关键字:primary key
语法:
1、在创建表时直接在某字段后面定义
create table student (s_id int primary key , s_name varchar(20), a_age int, a_gender varchar(10));
2、在创建表时,先定义完字段,再在最后单独设置主键
create table student (s_id int, s_name varchar(20), a_age int, a_gender varchar(10), primary key(s_id));
3、在创建表完成后,更新表结构时指定主键
alter table student add primary key(s_id);
4、删除主键(只删除主键约束,不会删除主键列)
alter table student drop primary key;
二、主键自增长
当主键设置为自增长后,在没有给出主键值时,主键的值会自动添加,而且是已有的主键最大值+1,很好的避免人工输入而出现重复
关键字:auto_increment
语法:
1、在创建表时直接定义
create table student (s_id int primary key auto_increment , s_name varchar(20), a_age int, a_gender varchar(10));
2、修改表结构时设置主键自增长
alter table student change s_id s_id int auto_increment;
3、删除主键自增长约束
alter table student change s_id s_id int;
三、非空
指定非空约束的字段不能没有值,也就说在插入记录时,对添加了非空约束的字段一定要含有值,在修改记录时,不能把非空字段的值设置为NULL
关键字:not null
语法:
create table student (s_id int primary key auto_increment , s_name varchar(20) not null, a_age int, a_gender varchar(10));
四、唯一
用唯一约束的字段,在添加值时不能添加相同的元素
关键字:unique
create table student (s_id int primary key auto_increment , s_name varchar(20) unique, a_age int not null, a_gender varchar(10));
五、外键
主外键关联是构成表与表之间的关联的唯一途径
外键是另一张表的主键
外键是用来约束该字段的值必须在另一张表的主键值中取得
关键字:foreign key
语法:
例:建一张班级表
create table class (c_id int primary key, c_name);
再建一张学生信息表,其中包含班级字段grade,并且设置grade字段是class表的外键
create table student (s_id int primary key,
s_name varchar(30),
s_grade int,
constraint fk_class foreign key (s_grade) references class(c_id));
说明:constraint: 定义主键名称,fk_class,不写时会给默认名;
六、表与表直接的关联
一对一,一对多,多对一,多对多
七、数据库备份
备份
Mysqldump -u用户名 –p密码 要备份的数据库>SQL保存的路径
Mysqldump –uroot –p123 mydb1>c:\mydb1.sql
还原
mysql –u用户名 –p密码 数据库<要执行脚本文件路径
Mysql –uroot –p123 mydb1<c:\mydb1.sql