2.数据完整性的实施方法:
实体完整性:一个表中的一行,如果与它所代表的实体完全一致,就说该表具有实体完整性
(保证一行数据是有效的)
实体完整性将行定义为特定表的唯一实体,实体完整性强制表的标识列或主键的完整性,可通过在表中设置主键约束、唯一约束或标识列属性来实现
(保证每行所代表的实体能相互区别)
域完整性:给定列的输入有效性(保证一列的数据是有效的)
强制域有效性的方法:限制类型(通过数据类型)、格式(通过检查约束)或可能值的范围(通过外键约束、检查约束、默认值定义、非空约束)。
引用完整性:必须在有关联关系的表中,确保一个表的外键的值来源于另一个表中额主键值(保证引用的编号是有效的)
用户自定义完整性:保证自定义规则。可通过触发器、储存过程等实现。3.外键与外键约束:
外键:从表的某列与主表的某列存在依附关系
外键约束:外键关联主键上强制加上一个约束
4.主键约束:主键是表中的一到多个列,主键列不能为空,也不能重复
唯一约束:可以为空
5.实体完整性保证表中的每一行都是不同的实体,域完整性保证输入到每一列数据的正确性和准确性,引用完整性保证表间关系的正确性和准确性
7.CREATE DATABASE day03_32;
USE day03_32;
CREATE TABLE t_student(
s_id INT,
s_name VARCHAR(20),
s_age INT,
s_phone BIGINT UNIQUE,
PRIMARY KEY (s_id)
);
INSERT INTO t_student VALUES(1,'xu',20,13890023451);
INSERT INTO t_student VALUES(2,'wang',20,13890023459);
INSERT INTO t_student VALUES(3,'wang',20,13890023450);
SELECT * FROM t_student;
/*域完整性*/
DROP TABLE t_student;
CREATE TABLE t_student(
s_id INT NOT NULL,
s_name VARCHAR(20) NOT NULL,
s_age INT NOT NULL UNIQUE,
s_phone BIGINT DEFAULT 132,
PRIMARY KEY (s_id)
);
INSERT t_student(s_id,s_name,s_phone)VALUES(3,NULL,123);
INSERT t_student(s_id,s_name,s_age)
VALUES(4,'wang',18);
INSERT t_student(s_id,s_name,s_age,s_phone)
VALUES(5,'wang',18,NULL);
/*外键*/
SELECT * FROM t_student;
CREATE TABLE t_student(
s_id INT NOT NULL,
s_name VARCHAR(20) NOT NULL,
s_age INT NOT NULL UNIQUE,
s_phone BIGINT DEFAULT 132,
s_t_id INT,
PRIMARY KEY (s_id),
CONSTRAINT teaKey FOREIGN KEY (s_t_id) REFERENCES t_tea(t_id)
);
CREATE TABLE t_tea(
t_id INT PRIMARY KEY,
t_name VARCHAR(20),
t_age INT
);
DROP TABLE t_student;