0308_sql2005数据完整性

上传人:M****1 文档编号:559621122 上传时间:2022-12-03 格式:DOC 页数:26 大小:1.01MB
返回 下载 相关 举报
0308_sql2005数据完整性_第1页
第1页 / 共26页
0308_sql2005数据完整性_第2页
第2页 / 共26页
0308_sql2005数据完整性_第3页
第3页 / 共26页
0308_sql2005数据完整性_第4页
第4页 / 共26页
0308_sql2005数据完整性_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《0308_sql2005数据完整性》由会员分享,可在线阅读,更多相关《0308_sql2005数据完整性(26页珍藏版)》请在金锄头文库上搜索。

1、数据完整性一:数据完整性:在SQL Server 2005中,根据数据完整措施所作用的数据库对象和范围不同,可以将数据完整性分为以下几种: 1、实体完整性(主键、唯一性约束) 2、参照完整性(外键约束) 3、域完整性(check、默认值约束) 4、用户定义的完整性二:数据库规则:规则也是一种数据库对象,规格可以绑定到表的一列或多列上,也可以绑定到用户定义的数据类型上。它的作用与check的部分功能相同,为insert和update限制输入数据。1) 规则的操作:use jxau1201;go-1.创建规则create rule deptid_rule as deptid like 1-90-9

2、;create table t_dept(deptid int primary key,deptname varchar(30) not null,deptloc varchar(120);insert into t_dept values(01,软件,昌北);insert into t_dept values(02,计算机,昌北);-2.绑定规则sp_bindrule deptid_rule,t_dept.deptid;insert into t_dept values(03,外语,东湖);insert into t_dept values(10,农林,昌北);-3.解除绑定sp_unbin

3、drule t_dept.deptid;insert into t_dept values(03,外语,东湖);-4.删除规则drop rule deptid_rule;三:主键(PRIMARY KEY)约束:主键约束使用数据表中的一列数据或者多列数据来唯一的标识一行数据。也就是说,在数据表中不能存在主键相同的两行数据,而且主键约束下的列不能为空(NULL),在创建表时,最好每个数据表都拥有自己唯一的主键,主键也可以由几个列组合成。每个表只能有一个主键。注:不能定义TEXT或IMAGE数据类型的字段列为主键。1. SSMS创建主键 在创建表结构的时候,选定列名或列名组合(shift键),在所选

4、列上右击弹出相应菜单,如右图所示。 单击有钥匙图标的菜单项。 创建成功后该列名前出现一个小钥匙形状的图标如右图所示2. Sql语句创建主键2) 创建列级约束:use jxau1201;gocreate table t_class(classid char(8) primary key,classname varchar(30) not null,classaddr varchar(120),deptid int not null);3) 创建表级约束,多个字段组合成为主键:drop table t_class;create table t_class(classid char(8),class

5、name varchar(30) not null,classaddr varchar(120),deptid int not null,constraint pk_classid primary key(classid,classname);4) 修改主键约束:注:要更改主键约束,必须先删除原来的主键约束,再添加新的主键约束-查看表主键信息sp_pkeys t_class-删除主键alter table t_class drop constraint pk_classid-增加主键alter table t_class add constraint pk_classid primary ke

6、y(classid,classname)四:外键(FOREIGN KEY)约束:外键约束定义了表之间的关系,主要用来维护两个表之间的一致性。出于某种关联的需要,当一个表需要引用另一个表的主键作为自己的一个字段时,我们称这个引用来的字段为外键。这样,当主键更新或删除时,其它所有表中与这个主键关联的外键也将被相应的更新或删除。当向外键所在的表插入或更新数据(外键字段)时,如果与外键表相关联的主键表的主键中无与插入或更新的外键有相同的值时,系统会报错并拒绝插入或更新数据。注:不能定义TEXT或IMAGE数据类型的字段列为外键。1. SSMS设置外键 在创建表结构的时候,选定列名,在所选列上右击弹出相

7、应菜单,如右图所示。 点击“表和列规范”。修改外键关联内容2. Sql语句创建外键1) 创建列级约束:use jxau1201;godrop table t_class;drop table t_dept;create table t_dept(deptid int primary key,dname varchar(30) not null,daddress varchar(120),);create table t_class(classid char(8) primary key,cname varchar(30) not null,deptid int references t_dep

8、t);2) 创建表级约束:use jxau1201;godrop table t_class;drop table t_dept;create table t_dept(deptid int primary key,dname varchar(30) not null,daddress varchar(120),);create table t_class(classid char(8) primary key,cname varchar(30) not null,deptid int,constraint fk_deptid foreign key(deptid) references t_

9、dept(deptid);3) 修改外键约束:级联更新、删除:-方式一drop table t_class;create table t_class(classid char(8) primary key,cname varchar(30) not null,deptid int references t_dept on update cascade on delete cascade);-方式二drop table t_class;create table t_class(classid char(8) primary key,cname varchar(30) not null,depti

10、d int,constraint fk_deptid foreign key(deptid) references t_dept(deptid) on update cascade on delete cascade);添加删除外键约束:drop table t_class;create table t_class(classid char(8) primary key,cname varchar(30) not null,deptid int);-增加约束alter table t_class add constraint fk_deptid foreign key(deptid) refe

11、rences t_dept(deptid);-删除约束alter table t_class drop constraint fk_deptid;五:唯一性(UNIQUE)约束: 可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。 可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束。 而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMARY KEY 约束不同。

12、不过,当与参与 UNIQUE 约束的任何值一起使用时,每列只允许一个空值。 FOREIGN KEY 约束可以引用 UNIQUE 约束。 创建表时,可以创建 UNIQUE 约束作为表定义的一部分。如果表已经存在,可以添加 UNIQUE 约束(假设组成 UNIQUE 约束的列或列组合仅包含唯一的值)。一个表可含有多个 UNIQUE 约束。 若要修改 UNIQUE 约束,必须首先删除现有的 UNIQUE 约束,然后用新定义重新创建。 默认情况下,向表中的现有列添加 UNIQUE 约束后,SQL Server 2005 Database Engine将检查列中的现有数据,以确保所有值都是唯一的。如果向

13、含有重复值的列添加 UNIQUE 约束,数据库引擎将返回错误消息,并且不添加约束。 除非显式指定了聚集索引,否则,默认情况下将创建唯一的非聚集索引以强制执行 UNIQUE 约束。1. SSMS设置唯一 右击表名称,选择快捷菜单中的“设计”,进入表结构修改状态。单击工具栏处“管理索引和键”按钮,进入惟一约束设置界面,单击添加按钮,定义类型为“唯一键”选定惟一约束的列,为惟一约束定义标识名,完成后关闭窗体。2. Sql语句创建唯一1) 创建列级约束:use jxau1201;godrop table t_student;create table t_student(studentid varcha

14、r(12) primary key,sname varchar(30) not null,ssex char(2),scard varchar(18) unique,saddress varchar(120);2) 创建表级约束:drop table t_student;create table t_student(studentid varchar(12) primary key,sname varchar(30) not null,ssex char(2),scard varchar(18),saddress varchar(120),constraint uk_scard unique(

15、scard);3) 修改主键约束:添加删除约束:drop table t_student;create table t_student(studentid varchar(12) primary key,sname varchar(30) not null,ssex char(2),scard varchar(18),saddress varchar(120),);-增加约束alter table t_student add constraint uk_scard unique(scard);-删除约束alter table t_student drop uk_scard;六:默认(DEFAULT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号