数据完整性

什么是数据完整性

         保证用户输入的数据保存到数据库当中是正确的

如何添加数据完整性

         在创建表时给表中添加约束

完整性分类

         实体完整性

         域完整性

         参照完整性

实体完整性

         什么是实体:表中的一行(一条记录)代表一个实体(entity)

         实体完整性的作用:标识每一行数据不重复,行级约束

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

         主键约束:特点:每个表中要有一个主键,数据唯一且不能为空     

                           添加方式:CREATE TABLE 表名 (字段名1 数据类型 primary key,字段2 数据类型....)

                                             CREATE TABLE 表名(字段1 数据类型,字段2 数据类型,primary key(字段1));

                                             CREATE TABLE 表名(字段1, 数据类型,字段2 数据类型,primary key(字段1,字段2))  

                                             联合主键:两个字段完全相同时,才违反联合主键约束。

 

                           添加方式2:先创建表,在去修改表,添加主键

                                             ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY(id);

唯一约束

        特点:指定列的数据不能重复,但可以为空值

        格式:CREATE TABLE 表名(字段1 数据类型,字段2 数据类型 unique)

自动增长列

         特点:指定列的数据自动增长,即使删除数据,还是从删除的序号继续往下

         格式:CREATE TABLE 表名 (字段1 数据类型,字段2, 数据类型 primary key auto_increment);

 

域完整性

什么是域完整性:限制此单元格的数据正确,不对照此列的其他单元格比较

域:代表单元格

域完整性约束:数据类型:数值型,日期类型,字符串类型

                         非空约束(not null)

                           CREATE TABLE 表名(字段1 数据类型,字段2 数据类型 unique not null);

                         默认值约束(default) 

                         CREATE TALBE 表名(字段1 数据类型,字段2 数据类型 unique not null default '男');

                         插入的时候,values当中的值直接给default

参照完整性

         什么是参照完整性:是指表与表之间的一种关系,通常情况下可以通过设置两表之间的主键,外键关系,或者编写两表的触发器来实现。有对应参照关系的两张表,在对他们进行数据插入,更新,删除的过程中,系统都会将被修改的表与另一张表进行对照,从而阻止一些不正确的数据的操作

         数据库的主键和外键类型一定要一致;

         两个表必须要是INNODB类型

         设置参照完整性后,外键当中的内值必须得是主键当中的内容

         一个表设置当中的字段为主键,设置主键的表为主表,创建表时,设置外键,设置外键的为子表

         使用:CREATE TABLE student(ID INT PRIMARY KEY AUTO_INCREMENT,name varchar(20) not null,sex varchar(10) default '男');

                  CREATE TABLE score(sid int,score DOUBLE,CONSTRAINT fk_stu_score_sid foreign(sid) references student(sid));

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值