二、数据完整性(完整性约束)
数据完整性是指数据库中的数据要能够正确的反应实际情况,规定输入的数据不能是无效值,错误值或者乱码;
一.非空约束
非空约束关键字:not null;
1.非空约束的创建:
create table student( s_id int not null, -- 为学号增加非空约束; s_name varchar(20) );
2.非空约束的添加
以修改表的形式添加非空约束:alter table student modify column s_id int not null;
3.查看表约束
基本格式:desc <表名>;
4.非空约束的删除
alter table student modify column s_id int;
二.唯一约束
唯一约束的关键字:unique
1.创建唯一约束
create table student( s_id int not null, s_name varchar(20) uniqueue, s_sid float )
2.唯一约束的添加
以修改表格的方式添加非空约束:alter table student add constraint uni_tid unique;(s_id);-- constraint 关键字给约束unique(s_id)取一个别名uni_tid
若表中没有规定主键,那么表中第一个非空且唯一的属性自动添加主键约束;
3.给约束起别名
通过constraint关键字给约束起别名:alter table student add constraint uni_id unique(s_id);
4.删除唯一约束
基本格式:
①。根据约束名删除唯一约束:alter table student drop index unii_id;
②.根据属性名称删除唯一约束:alter table teacher drop index s_name;
5.复合唯一约束
①.创建复合唯一约束
create table teacher( t_id int not null, -- 为教师编制添加非空约束(行级约束); t_name varchar(20), );
②.修改表添加复合唯一约束
alter table teacher add constraint unit_tidname unique(t_id,t_name);
唯一约束是表级约束,非空约束是行级约束,所以在记忆的时候也可以根据他们不同的属性来记忆;
主键约束
主键约束的关键字:primary key
1.创建表时添加主键约束
create table teacher( t_id int primary key, -- 添加主键约束 t_name varchar(20), t_age int, );
2.修改表格的方式添加主键约束
alter table teacher add primary key(t_id);
由于表中第一个非空且唯一的属性会默认成为主键,于是创建主键前先删除这个属性的唯一约束;
3.删除主键约束
alter table teacher drop primary key(t_id);
4.创建联合主键
alter table teacher add primar key(t_id,t_name);
自增列(行级约束)
自增列关键字:auto_increment
1.创建自增列
创建表的时候创建自增列约束:
create table teacher( t_id int primary key auto_increment, -- 自增列约束,从100开始; t_name varchar(20), t_age int )auto_increment=100; -- 设置自增列的初始值;
2.添加自增列
修改表的格式:
alter table teacher modify column t_id auto_increment;
3.删除自增列
alter table teacher modify column t_id;
五.检查约束
检查约束关键字:check
检查约束在MySQL中不支持,所以不做要求,他是在创建表的时候创建检查约束;
六.默认值约束(行级约束)
关键字:default
1.创建表添加默认值约束:
create table teacher( t_id primary key auto_increment, t_name varchar(20), t_age int default 20 )auto_increment=100;
2.修改表添加默认值约束
alter table teacher modify column t_age int default 20;
3.删除默认值约束
alter table teacher modify column t_id int ;
七.外键约束
外键约束关键字:foreign key
1.创建表的时候创建外键约束
create table teacher( t_id primary key auto_increment, t_name varchar(20), t_age int constraint for_ctid foreign key(t_id) references student(s_id) )auto_increment=100;
2.级联更新
级联更新/删除时指父表中的元组更新或删除等操作对子表的处理方法,其中有三种方法:(on update/on delete)
-- ①.cascade 父表中中的元组更新,删除,在子表中跟着更新和删除
-- ②.no action 无动作,若子表中由匹配的记录,则不允许更新和删除
-- ③.set null 设置为空,若子表中有匹配的记录,更新/删除父表中的数据,子表中的对应的数据设置为空;
create table student( s_id int primary key, s_name varchar(20) not null, s_cid int not null, s_age int, s_sex varchar(4) default '男', constraint for_scid foreign key(s_cid) references class(class_id)on update cascade on delete cascade no action-- 级联更新或删除; );
总结
本节我们初步认识了一下数据库中的定义和操作语言,以及相关的数据完整性,类容比较简单,不需要过多的去记忆,只需要简单的过一下,能够创建数据表,会在创建表的时候添加相关约束即可。下一节学习数据表的查询