数据库

来源:互联网 发布:java邮件代发 编辑:程序博客网 时间:2024/05/17 04:15

保证数据完整性

★数据完整性概述

    •数据完整性的分类:1、实体完整性:保证一行数据是有效的
                       2、域完整性:保证一列数据是有效的
                       3、引用完整性:保证引用的编号是有效的
                       4、用户自定义完整性:保证自定义规则
★实体完整性
     •为什么要保证实体完整性?
         保证每行所代表的实体能互相区别。
     •什么是实体完整性?
          表中的一行数据如果与它所代表的实体完全一致,则具备实体完整性。
     •实现方法
          主键约束(Prinary Key):


CREATE DATABASE day03_30;

USE day03_30;


CREATE TABLE t_student(
   s_id INT PRIMARY KEY,
   s_name VARCHAR(20),
   s_age INT,
   s_phone BININT UNIQUE,
   PRIMARY KEY(s_id)
);
INSERT INTO t_student VALUES(1,'Tom',20,12345678901);
INSERT INTO t_student VALUES(2,'Mary',20,12345678901);
INSERT INTO t_student VALUES(1,'Tom',20,12345678901);

SELECT * FROM t_student;


★域完整性
    •为什么要域完整性?
         保证指定列的数据的有效性。
    •什么是域完整性?
         域完整性是指定列的输入有效性。
    •实现方法
       非空约束:NOT NULL    
       默认约束:Default
       检查约束:Check(MySQL不支持)
DROP TABLE t_stundent(
   s_id INT NOT NULL,
   s_name VARCHAR(20) NOT NULL,
   s_age INT NOT NULL,
   s_phone BININT DEFAULT 132,
   PRIMARY KEY(s_id)
);
INSERT INTO t_student(s_id,s_name,s_phone) VALUES(1,NULL,123);
INSERT INTO t_student(s_id,s_name,s_age) VALUES(2,NULL,28);
INSERT INTO t_student(s_id,s_name,s_phone) VALUES(3,NULL,123);
SELECT * FROM t_student;

★引用完整性
   •为什么要引用完整性约束?
        eg:在录入学生成绩时,所使用的学号必须是在学生表中作为主键存在的编号。
   •什么是引用完整性?
        参照完整性是指分别在两个表中的列所满足的具有主从性质的约束关系。
   •实现方法
       外键约束
★引用完整性——外键约束
   •外键与外键约束
      外键是指从表的某列与主表的某列存在依附关系。
      外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
      ❈注意:没有建立外键约束不等于没有外键。



0 0
原创粉丝点击