SQLServer2000学习笔记.doc

上传人:bao****ty 文档编号:159676199 上传时间:2021-01-07 格式:DOC 页数:6 大小:85KB
返回 下载 相关 举报
SQLServer2000学习笔记.doc_第1页
第1页 / 共6页
SQLServer2000学习笔记.doc_第2页
第2页 / 共6页
SQLServer2000学习笔记.doc_第3页
第3页 / 共6页
SQLServer2000学习笔记.doc_第4页
第4页 / 共6页
SQLServer2000学习笔记.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《SQLServer2000学习笔记.doc》由会员分享,可在线阅读,更多相关《SQLServer2000学习笔记.doc(6页珍藏版)》请在金锄头文库上搜索。

1、PRIMARY KEY 约束表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。当为表指定 PRIMARY KEY 约束时,Microsoft SQL Server 2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。如果 PRIMARY

2、 KEY 约束定义在不止一列上,则一列中的值可以重复,但 PRIMARY KEY 约束定义中的所有列的组合的值必须唯一。如下图所示,titleauthor 表中的 au_id 和 title_id 列组成该表的组合 PRIMARY KEY 约束,以确保 au_id 和 title_id 的组合唯一。当进行联接时,PRIMARY KEY 约束将一个表与另一个表相联。例如,若要确定作者与书名的对应关系,可以使用 authors 表、titles 表和 titleauthor 表的三向联接。因为 titleauthor 包含 au_id 和 title_id 两列,对 titles 表的访问可由 t

3、itleauthor 和 titles 之间的关联进行。创建聚集索引在 Microsoft SQL Server 数据库中可以创建聚集索引。在聚集索引中,表中各行的物理顺序与索引键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。聚集索引通常可加快 UPDATE 和 DELETE 操作的速度,因为这两个操作需要读取大量的数据。创建或修改聚集索引可能要花很长时间,因为执行这两个操作时要在磁盘上对表的行进行重组。可考虑将聚集索引用于: 包含数量有限的唯一值的列,如 state 列只包含 50 个唯一的州代码。 使用下列运算符返回一个范围值的查询:BETWEEN、=、 和 =。 返回大结果集的查询。

4、 聚集索引也叫簇索引。在文件组上放置索引默认情况下,索引创建在基表所在的文件组上,该索引即在该基表上创建。不过,可以在不同于包含基表的文件组的其它文件组上创建非聚集索引。通过在其它文件组上创建索引,可以在文件组通过自带的控制器使用不同的物理驱动器时实现性能提升。这样一来,数据和索引信息即可由多个磁头并行读取。例如,如果文件组 f1 上的 Table_A 和文件组 f2 上的 Index_A 都由同一个查询使用,就可无争夺地充分利用这两个文件组,因此可以实现性能提升。但是,如果 Table_A 由查询扫描而没有引用 Index_A,则只利用文件组 f1,因而未实现性能提升。然而,由于不能预测将要

5、发生的访问类型以及访问时间,因此更安全的决策可能是将表和索引在所有文件组中展开。这将保证能够访问所有磁盘,因为所有数据和索引在所有磁盘上均匀展开,不受访问数据的方式的限制。这对系统管理员来说也是更简单的方法。如果表上有聚集索引,数据和该聚集索引将始终驻留在相同的文件组内。因此,可以在基表上创建一个聚集索引,指定另外一个文件组,在该文件组上新建索引(然后可以除去该索引,而只在新文件组内保留基表),从而将表从一个文件组移动到另一个文件组。如果表的索引跨越多个文件组,则必须将所有包含该表及其索引的文件组一起备份,之后还必须创建事务日志备份。否则,只能备份索引的一部分,导致还原备份时无法恢复索引。有关

6、更多信息,请参见使用文件备份。说明单个表或索引只能属于一个文件组,而不能跨越多个文件组。UNIQUE 约束可使用 UNIQUE 约束确保在非主键列中不输入重复值。尽管 UNIQUE 约束和 PRIMARY KEY约束都强制唯一性,但在强制下面的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束: 非主键的一列或列组合。 一个表可以定义多个 UNIQUE 约束,而只能定义一个 PRIMARY KEY 约束。 允许空值的列。 允许空值的列上可以定义 UNIQUE 约束,而不能定义 PRIMARY KEY 约束。FOREIGN KEY 约束也可引用 UNIQUE 约束。FOREI

7、GN KEY 约束外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。例如,数据库 pubs 中的 titles 表与 publishers 表有链接,因为在书名和出版商之间存在逻辑联系。titles 表中的 pub_id 列与 publishers 表中的主键列相对应。titles 表中的 pub_id 列是到 publishers 表的外键。FOREIGN KEY 约束并不仅仅只可以与另一表的 PRIMARY

8、 KEY 约束相链接,它还可以定义为引用另一表的 UNIQUE 约束。FOREIGN KEY 约束不允许空值,但是,如果任何组合 FOREIGN KEY 约束的列包含空值,则将跳过 FOREIGN KEY 约束的校验。说明FOREIGN KEY 约束可引用同一数据库中的表或同一表(自引用表)内的列,例如,一个包含下面三列的雇员表:employee_number、employee_name 和 manager_ employee_number。由于经理本身也是雇员,所以从 manager_employee_number 列到 employee_number 列存在外键关系。尽管 FOREIGN

9、KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。级联删除相关的字段无论何时删除主表的被引用行,都指示 DBMS 自动删除外键表的行。

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

当前位置:首页 > 高等教育 > 其它相关文档

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