首页 > 其他 > 详细

数据完整性

时间:2021-04-14 15:52:00      阅读:22      评论:0      收藏:0      [点我收藏+]

十、数据完整性

10.1什么是数据完整性 

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

比如:

年龄:应该是数字,

 学号:应该是不重复的。

 成绩:不能为空

 。。。

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

完整性约束分类:

 实体(记录)完整性

 域完整性

引用完整性

 

 

 

10.2实体完整性(行)

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

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

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

主键约束(primary key

不能为空,不重复

唯一约束(unique

不重复,可以为空

自增长列(auto_increment

序号自己会改变

主键约束(primary key

特点:不能为空,不重复

 

没有约束

create table stu0(

id int,

 name varchar(50)

 ) ;

insert into stu0(name) value("张三丰");

##方式一:创建表,并且添加主键约束

 create table stu1(

 id int primary key,

name varchar(50)

 );

 ##方式二:

 create table stu2(

 id int ,

name varchar(50),

 primary key(id,name)

 ) ;

成功:insert into stu1(id,name) value(2,"张三丰"); #成功

 测试一:insert into stu1(id,name) value(null,"张三丰"); #失败。提示不能为空

 ERROR 1048 (23000): Column ‘id‘ cannot be null

测试二:

插入重复值:报错

 Duplicate entry ‘2‘ for key ‘PRIMARY‘

 select *from stu1;

 

 

唯一约束(unique

不重复,可以为空

##给名字 添加 唯一的 约束

 create table stu3(

 id int primary key,

name varchar(50) unique

) ;

insert into stu3(id,name) value(1,"张三丰");

 

insert into stu3(id,name) value(2,"张三丰");

 

 ERROR 1062 (23000): Duplicate entry ‘张三丰‘ for key ‘name‘

 

insert into stu3(id,name) value(2,"张三");

 

 

自增长列(auto_increment

##实现,用户的学号,自动增长,

 create table stu4

id int primary key auto_increment,

name varchar(50)

 )

 

##插入数据

 insert into stu4(name) values("zsf");

insert into stu4(name) values("ls");

数据类型(自己查)

 

 

非空约束(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;

 

 

数据完整性

原文:https://www.cnblogs.com/M78-u-p/p/14656272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!