Java 保证数据的完整性

第三章  保证数据的完整性

 

一、数据完整性的分类

1、实体完整性

         ------ 保证一行数据是有效的

         表中的一行数据如果与它所代表的实体完全一致,则具备实体完整性。

 

实体完整性的主键约束

1)设置主键约束

2)设置唯一约束

        

 

3)给创建的表添加唯一约束

         Alter Table 表名 add Unique (属性名);

4)查看表详细结构语句

         Show Crbate Table 表名;

2、域完整性

         ------ 保证一列数据是有效的

         含义:域完整性是指定列的输入有效性

1)实现方法:

2)设置非空约束

        

3)设置默认约束

 

4)设置受检查约束

3、引用完整性

         ------ 保证引用的编号是有效的

         1、外键与外键约束

        1)外键:

                   Foreign key;一个表中的Foreign key指向另一个表中的Foreign key

                  

        2)外键约束:

                   Foreign key约束:用于预防破坏表之间连接的动作,也用于防止非数据插入外键属性中,因为它必须是其指向的那个表中的值之一。

                   MySQL有两种常用的引擎类型MyisamInnodb.目前只有Innodb引擎类型支持外键约束。

                  

                   查看数据库储存引擎

                   SHOW VARIABLES LIKE'%engine%';

 

-- 查看数据库储存引擎

SHOWVARIABLES LIKE '%engine%';

-- 设置默认约束可以在创建表时指定,例如:

CREATEtable s_class(

                   c_id int PRIMARY KEY,

                 c_nameVARCHAR(50) UNIQUE not null

)engine =innodb;

-- 在创建从表(外键所在的表)

createtable s_student(

                   s_id int primary key ,

                   s_c_id int,

                   s_name varchar(50)unique notnull,

                   s_age int ,

                   s_gendar char(2) default'',

                   constraint foreignkey(s_c_id) references s_class(c_id)

)engine =innodb;

删除第一张表是不行的,而先把第二张表删除后就可以删第一张表。

-- 删除第二张表

drop tables_student;

 

-- 删除第一张表

Drop tables_class;

3)使用自动编号

        

        

 

4)修改数据完整性

 

 

 

4、用户自定义完整型

         ------- 保证自定义规则

为什么要保证实体完整性

保证每一行所代表的实体能互相区别,不能存在两条一模一样的记录。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值