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 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;
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`))
原文转载:http://www.shaoqun.com/a/684764.html
杨帆:https://www.ikjzd.com/w/1648
zappos:https://www.ikjzd.com/w/330
10.1什么是数据完整性作用:保证用户的输入的数据保存到数据库是正确的比如:年龄:应该是数字,学号:应该是不重复的成绩:不能为空。。。怎么去保证数据的完整性:添加约束。完整性约束分类:实体(记录)完整性域完整性、引用完整性10.2实体完整性(行)实体(entity):就是表中一行的(记录)数据实体完整性:标识每一条数据不重复约束类型(通过什么方式解决这个问题)主键约束(primarykey)不能为
雨果网:https://www.ikjzd.com/w/1307
agora:https://www.ikjzd.com/w/2176
insider:https://www.ikjzd.com/w/1786
Sunrate:https://www.ikjzd.com/w/2685
亚马逊三大全新功能上线,为你轻松点亮产品Spotlight!:https://www.ikjzd.com/home/119471
实体店卖家转战亚马逊,抓住商机实现销量翻倍...:https://www.ikjzd.com/home/134526
没有评论:
发表评论