其他分享
首页 > 其他分享> > 数据完整性

数据完整性

作者:互联网

1.什么是数据完整性

作用:保证 用户的输入的数据 保存到数据库 是正确的。

   比如:

        年龄:应该是数字

        学号:应该是不重复的

        成绩:不能为空

           。。。

怎么去保证数据的完整性:添加约束。

完整性约束分类:

      实体(记录)完整性

      域完整性

      引用完整性

2.实体完整性(行)

实体(entity):就是表中一行的(记录)数据。

 实体完整性:标识 每一条数据不重复。 

约束类型(通过什么方式解决这个问题):  

主键约束(primary key)  

 不能为空,不重复

  唯一约束(unique)   

不重复,可以为空  

自增长列(auto_increment)   

序号自己会改变

2.1主键约束(primary key)

   特点:不能为空,不重复

2.2唯一约束(unique)

不重复,可以为空

2.3自增长列(auto_increment)

3.域完整性(单元格,字段,列)

域完整性:用来限制单元格的数据 的正确性。

   性别:只能填写 男/女

   名字:必须填写,非空 

域完整性包含:

   数据类型

 ------------  非空约束(not null)

##创建表,名字name字段非空

create table stu5(

  id int primary key,

  name varchar(50) not null,

  sex varchar(10)

 ) 

##成功

insert into stu5(id,name,sex) values(1,"zsf","男");

insert into stu5(id,name,sex) values(2,null,"男");

  ERROR 1048 (23000): Column 'name' cannot be null

insert into stu5(id,name,sex) values(2,"zz",null);

  -------------默认值约束(default)

create table stu6(

  id int primary key,

  name varchar(50) not null,

  sex varchar(10) Default "男"

 );

查看表结构

desc stu6;

insert into stu6(id,name,sex) values(1,"zsf","女");

insert into stu6(id,name) values(2,"zsf");

查询结构:

select * from stu6;

4.引用完整性

主外键的关系,2个表之间建立管理关系之后,他们删除、更新操作都是受影响的。

###引用完整性

学生表

       id

       名字

       性别

 

成绩表

       id

       学生ID

       成绩

 

create table stu7(

       id int primary key,

       name varchar(50)

)

create table score(

       id int primary key,

       sid int,

       score double,

       constraint aa foreign key (sid)  references stu7(id)

)

 

insert into stu7(id,name) values(1,"zsf");

insert into score(id,sid,score) values(1,1,90);

 

ERROR 1452 (23000): Cannot add or update a child

row: a foreign key constraint fails (`db_0402`.`score`,

 CONSTRAINT `aa` FOREIGN KEY (`sid`) REFERENCES `stu7` (`id`))

标签:数据完整性,insert,name,into,完整性,key,id
来源: https://www.cnblogs.com/dwdfjx/p/14654872.html