后台-插件-广告管理-内容页广告位一(手机)

您现在的位置是:首页 > 开发类 > 数据库数据库

数据的完整性

2021-04-18 18:35:21数据库人已围观

简介10.1什么是数据完整性
作用:保证用户的输入的数据保存到数据库是正确的
比如:
年龄:应该是数字,
学号:应该是不重复的
成绩:不能为空
。。。
怎么去保证数据的完整性:添加约束。

10.1什么是数据完整性

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

比如:

年龄:应该是数字,

学号:应该是不重复的

成绩:不能为空

。。。

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

完整性约束分类:

实体(记录)完整性

域完整性、

引用完整性

10.2实体完整性(行)

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

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

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

主键约束(primary key)

不能为空,不重复

唯一约束(unique)

不重复,可以为空

自增长列(auto_increment)

序号自己会改变

10.2.1主键约束(primary key)

特点:不能为空,不重复

##没有约束

create table stu0(

id int,

name varchar(50)

);

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

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

create table stu1(

id intprimary 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;

10.2.2唯一的约束(unique)

不重复,可以为空

##唯一约束(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,"张三");

10.2.3自增长列(auto_increment)

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

create table stu4(

id int primary key auto_increment,

name varchar(50)

)

##插入数据

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

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

10.3域完整性(单元格,字段)

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

性别:只能填写男/女

名字:必须填写,非空

域完整性包含:

数据类型

非空约束(not null)

默认值约束(default)

10.3.1数据类型

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

10.3.3默认值约束(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;

10.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,2,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`))

文章来源:查看

Tags:完整性   数据

很赞哦! ()

后台-插件-广告管理-内容页广告位二(手机)

相关文章

后台-插件-广告管理-内容页广告位三(手机)

随机图文

后台-插件-广告管理-内容页广告位四(手机)

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计13614篇文章
  • 浏览统计468次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们