第6章---数据完整性优秀PPT.ppt
本章内容本章内容6.1 数据完整性概述数据完整性概述6.2 运用规则实施数据完整性运用规则实施数据完整性6.3 运用默认值实施数据完整性运用默认值实施数据完整性6.4 运用约束实施数据完整性运用约束实施数据完整性6.1 数据完整性概述数据完整性概述数据完整性有数据完整性有4种类型:种类型:实体完整性实体完整性(Entity Integrity)、域完整性域完整性(Domain Integrity)、参照完整性参照完整性(Referential Integrity)、用户定义的完整性用户定义的完整性(User-defined Integrity)。n在在SQL Server中可以通过规则中可以通过规则(Rule)、默认、默认(Default)、约束、约束(Constraint)和触发器和触发器(Trigger)等等数据库对象来保证数据的完整性。数据库对象来保证数据的完整性。6.2 运用规则实施数据完整性运用规则实施数据完整性6.2.1 创建规则创建规则6.2.2 查看和修改规则查看和修改规则6.2.3 规则的绑定与松绑规则的绑定与松绑6.2.4 删除规则删除规则8.2.1 8.2.1 创建规则创建规则例例6-1 创建雇佣日期规则创建雇佣日期规则 hire_date_rule。CREATE RULE hire_date_ruleAS hire_date=1980-01-01 and hire_date18)8.4.4 8.4.4 检查约束检查约束例例6-25 创建一个订货表创建一个订货表orders,保证各订单,保证各订单的订货量必需不小于的订货量必需不小于10。CREATE TABLE orders(order_id char(8),p_id char(8),p_name char(10),quantity smallint CONSTRAINT chk_quantity CHECK(quantity=10),CONSTRAINT pk_orders_id PRIMARY KEY(order_id)8.4.4 8.4.4 检查约束检查约束CREATE TABLE transporters(transporter_id char(4)NOT NULL,transport_name varchar(50),linkman_name char(8),address varchar(50),telephone char(12)NOT NULL CHECK(telephone LIKE 01-90-90-9-1-90-90-90-90-90-90-9 OR telephone LIKE 01-90-9-1-90-90-90-90-90-90-90-9)例例6-26 创建创建transporters表并定义检查约束表并定义检查约束8.4 8.4 运用约束实施数据完整性运用约束实施数据完整性8.4.5 8.4.5 默认约束默认约束定义默认约束的语法格式定义默认约束的语法格式CONSTRAINT constraint_nameDEFAULT constant_expression FOR column_name6.4.5 默认约束默认约束8.4.5 8.4.5 默认约束默认约束例例6-27 在在Sales数据库中,为员工表数据库中,为员工表employee的的sex列添加默认约束,默认值是列添加默认约束,默认值是“男男”。ALTER TABLE employeeADD CONSTRAINT sex_default DEFAULT 男男 FOR sexn例例6-28 更改表更改表employee为为hire_date列定义列定义默认约束。默认约束。ALTER TABLE employeeADD CONSTRAINT hire_date_df DEFAULT(getdate()FOR hire_date8.4.5 8.4.5 默认约束默认约束例例6-29 添加具有默认值的可为空的列添加具有默认值的可为空的列ALTER TABLE employeeADD hire_date datetime DEFAULT(getdate()WITH VALUES8.4.5 8.4.5 默认约束默认约束例例6-31 为表为表purchase_orders定义多个约束定义多个约束CREATE TABLE purchase_orders(order_id2 char(6)NOT NULL,goods_id char(6)NOT NULL,order_num float NOT NULL,discount float CHECK(discount=0 AND discount order_date),CHECK(arrival_date send_date)