数据库完整性

数据库完整性

  作用:保证用户输入的数据保存到数据库中的是正确的;确保数据的完整性其实就是在创建表时给表中添加约束

  完整性的分类:

    1、实体完整性: 实体:数据库中的一行记录。

      实体完整性的作用:保证每行数据不重复。

      约束类型:主键约束(primary key),唯一约束(unique),自动增长约束(auto_increment)

      1.1、主键约束:

        方式一:create table stu(id int primary key,name varchar(200));

        方式二:create table stu(id int,name varchar(100),primary key(id));

        方式三:create table stu(id int,name varchar(100)); alter table stu add primary key(id);

        额外拓展:联合主键(多个主键) create table stu(id int,name varchar(100),primary key(id,name));

 

 

      1.2、唯一约束,数据不重复:

        create table stu(id int,name varchar(100) unique);

 

 

      1.3、自动增长约束:

        create table stu(id int primary key auto_increment,name varchar(100) unique);

    

    2、域完整性: 域:代表当前单元格;

      域完整性:当前单元格数据正确,不对比其它单元格。

      约束完整性:not null(值不能为空)|| default(默认值);

        check(mysql不支持) check(sex='男' or sex=‘女')

      2.1、非空约束:

        create table stu(id int primary key auto_increment,name varchar(100) not null); insert into stu (name) values (null);

      2.2、默认约束:

        create table stu(id int primary key auto_increment,name varchar(100) default ‘aa’); insert into stu (name) values (default);

 

    3、引用完整性(参照完整性):外键约束

      主键与外键对比来看:

        3.1、定义: 主键:唯一标识一条记录,不能重复,不能为空 外键:是另一个表的键,外键可以重复,可以是空值;

           作用: 主键:用来保证数据完整性 外键:用来和其他表建立关系用的;

           个数: 主键:只有一个----外键:可以有多个;

      创建外键:

        方式一: create table stu(id int primary key,name varchar(100) default 'aa'); create table score(sid int,score int);

             alter table score add constraint fk_score foreign key (sid) references stu (id);

        方式二: create table course ( courseId int primary key , courseName varchar(100), scoreId int, constraint foreign key (scoreId) references score(sid) );

posted @ 2017-05-28 12:19  Java_皮卡丘漏电  阅读(351)  评论(0编辑  收藏  举报