SQL_Server_2008基础教程_(6)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016年9月9日
第12页
6.2 表的基本特点和类型
到底什么是表呢?数据库中有多少种表呢? 为何需要回答这些问题,本节将讲述两方 面的内容,首先分析和描述表的基本特点, 然后讨论表的分类方式和表的类型。
2016年9月9日
第13页
表的基本特点
表是关系模型中表示实体的方式,是用来 组织和存储数据、使之具有行列结构的数 据库对象。一般而言,表具有下列一些基 本特点:代表实体、由行和列组成、行和 列的顺序是不重要的等等。 下面,详细讲述这些特点。
2016年9月9日
第14页
表名必须唯一
在Microsoft SQL Server 2008系统的数据库中,对指定 的架构来说,表名必须是唯一的,这是由系统强制性实现 的。但是,如果为表指定了不同的架构,那么可以创建多 个具有相同名称的表。 例如,在一个数据库中,可以创建两个表employees, 其中一个employees表的架构所有者是Peter,另外一个 employees表的架构所有者是Hillary。当引用这些表时, 区分的方法是在表名前面加上架构所有者,即 Peter.employees 和Hillary.employees。
2016年9月9日
第36页
删除表
删除表就是将表中数据和表的结构从数据 库中永久性去除。表被删除之后,就不能 再恢复该表的定义。删除表可以使用DROP TABLE语句来完成,该语句的语法形式如 下: DROP TABLE table_name
2016年9月9日
第37页
使用图形工具执行有关表的操作
2016年9月9日
第2页
本章要点
设计表时应该考虑的因素 表的基本特点和类型 使用CREATE TABLE语句创建表 修改表的结构 标识符列的作用和特点 已分区表的作用和管理方式
2016年9月9日
第3页
本章内容
6.1 6.2 6.3 6.4 6.5 设计表时应该考虑的因素 表的基本特点和类型 创建和修改表 已分区表 本章小结
创建表
在Microsoft SQL Server 2008系统中,可 以使用CREATE TABLE语句或可视化的 SQL Server Management Studio图形工 具来创建表。下面主要研究如何使用 CREATE TABLE语句创建表。 CREATE TABLE语句是一种经常使用的创 建表的方法,也是一种最灵活、最强大的 创建表的方式。
第24页
2016年9月9日
在表中新增列
2016年9月9日
第25页
新增列不允许空值时产生的错误 消息
2016年9月9日
第26页
删除表中的列
2016年9月9日
第27页
更改该列的数据类型
使用ALTER TABLE语句除了可以增加新 列和删除列之外,还可以对列的属性进行 更改。本节主要讲述如何更改列的数据类 型。使用ALTER TABLE语句更该列的数 据类型的基本语法形式如下所示: ALTER TABLE table_name ALTER COLUMN column_name new_type_name
2016年9月9日
第15页
表的类型
在Microsoft SQL Server 2008系统中,按照表的作用, 可以把表分为4种类型,即普通表、已分区表、临时表和 系统表。每一种类型的表都有自己的作用和特点。 普通表,又称标准表,就是通常提到的作为数据库中存储 数据的表,是最经常使用的表的对象,也是最重要、最基 本的表。普通表经常简称为表。其他类型的表都是有特殊 用途的表,它们往往是在特殊应用环境下,为了提高系统 的使用效率,派生出来的表。
约束、默认值、规则等都是数据完整性对 象,用来确保表中的数据质量。对表中数 据的查询操作,只能在满足定义的约束、 默认值、规则等条件下,才能执行成功。 这些因素的考虑往往与表中数据的商业特 性相关。
2016年9月9日
第10页
6. 因素六:考虑是否使用外键,在何处 使用外键
在ER图中,需要绘制出实体之间的关系。 在表的设计时,实体之间的关系需要借助 主键——外键对来实现。因此,该因素也 是确保ER图完整实施的一个重要内容。只 有通过这种关系,才能确保表和表之间强 制的商业性关系。
2016年9月9日 第18页
创建students表
2016年9月9日
第19页
创建orders表
2016年9月9日
第20页
在创建表中使用计算列
2016年9月9日
第21页
使计算列中的数据物理化
2016年9月9日
第22页
创建全局临时表
2016年9月9日
第23页
增加或删除列
表创建之后,用户可以根据需要使用ALTER TABLE语句修改表的结构。在表中增加新列、删 除已有的列是修改表结构时常见的操作。 当用户向表中增加一个新列时,Microsoft SQL Server为表中该列在已有数据的每一行中的相应 位置插入一个数据值。因此,向表中增加一个新 列时,最好为该列定义一个默认约束,使该列有 一个默认值。如果该新列没有默认约束,并且表 中已经有了其他数据,那么必须指定该新列允许 空值,否则,系统将产生一个错误信息。
2016年9月9日
第11页
7. 因素七:考虑是否使用索引,在何处使用索引, 使用什么样的索引?
索引也是一种数据库对象,是加快对表中 数据检索的手段,是提高数据库使用效率 的一种重要方法。在哪些列上使用索引, 在哪些列上不使用索引,是使用聚集索引, 还是使用非聚集索引,是否使用全文索引, 等等。对这些因素的认真考虑和实现,也 是对表质量的更高的要求。
2016年9月9日
第4页
6.1 设计表时应该考虑的因素
设计数据库实际上就是设计数据库中的表。 在设计表时,要使用尽可能少的表数量, 在达到设计要求的前提下,使每个表中包 含的列的数量尽可能地少。合理的表结构, 可以大大提高整个数据库数据的查询效率。 为了提高数据库的效率,设计出高质量的 存储数据的表,在设计表时,应该从整体 上考虑下面7个因素。
2016年9月9日 第28页
更改空表中的列的数据类型
2016年9月9日
第29页
更改非空表中的列的数据类型
2016年9月9日
第30页
创建和修改标识符列
标识符列是唯一标识表中每一行数据的符 号。在Microsoft SQL Server 2008系统中, 可以创建两种类型的标识符列,即 IDENTITY列和ROWGUIDCOL列。下面, 详细研究这两种标识符列的创建和修改方 式。
2016年9月9日
第39页
分区函数和分区方案
2016年9月9日 第5页
1. 因素一:考虑表将要存储哪些数据对象, 绘制出ER图
ER图是描述数据库中所有实体以及实体之间关系 的图形,是辅助设计关系模型的工具。实际上, 表就是关系模型,也对应着模型中的实体,是存 储数据的对象。在设计表时,应该综合考虑这些 问题:数据库的目的是什么?数据库中将要包含 哪些数据?数据库中应该包含多少表?每一个表 将要包含哪些数据?表和表之间是否存在关系? 如果存在关系,那么存在什么样的关系?对这个 因素的深入思考,有助于创建合理、完整的表。
2016年9月9日 第32页
创建具有IDENTITY属性的表
2016年9月9日
第33页
ROWGUIDCOL
ROWGUIDCOL列是全局唯一标识符列。 每一个表中最多允许创建一个 ROWGUIDCOL列。从理论上来看,分布 在Internet上的两个不同的计算机中的 ROWGUIDCOL列的值出现相同的现象的 概率是微乎其微的。在创建表时,可以使 用UNIQUEIDENTIFIER数据类型定义 ROWGUIDCOL列。
第34页
2016年9月9日
创建具有ROWGUIDCOL列的表
2016年9月9日
第35页
查看表的信息
表创建之后,可以使用许多函数、存储过程查看有关表的 各种信息。 COLUMNPROPERTY函数用于查看有关表中的列的信息, 这些信息包括是否为空、是否是计算得到的列、是否具有 IDENTITY属性、是否ROWGUIDCOL列等。 sp_depends存储过程用于查看指定表的依赖对象,这些 依赖对象包括依赖于表的视图、存储过程等。 sp_help存储过程用于查看有关表结构的信息。前面示例 中已经使用过该存储过程,这里就不再重复了。
第6页
2016年9月9日
2. 因素二:考虑表中将要包含的列以及这些列的数 据类型、精度等属性。
确定了表之后,就要确定表的内容。每一个表包含多个列, 每一个列都有一个数据类型,数字数据类型的列还需要确 定列的精度和约度,这些都是设计表时必不可少的因素。 数字列应该使用数字数据类型,字符列应该使用字符数据 类型,日期列应该使用日期数据类型。对于数字列,需要 认真考虑其精度和约度,对于字符列,应该考虑其是否使 用定长字符列和字符长度。考虑这些因素的目标是:使得 表中的列的数量尽可能地少。如果列的数量过多,应该考 虑将该表分解成两个表或多个表。
2016年9月9日
第31页
IDENTITY
使用IDENTITY属性的列是IDENTITY列, 每一个表中最多只能有一个IDENTITY列。 定义IDENTITY属性时需要指定两个值:种 子值和增量值。表中第一行的IDENTITY列 的值是种子值,其他行IDENTITY列的值是 在前一行的值的基础上增加一个增量值得 到的。 IDENTITY属性的语法形式如下所示: IDENTITY (seed, increment)
2016年9月9日
第7页
3. 因素三:考虑列的属性,例如哪些列允许空值, 哪些列不允许空值 列允许空值,表示该列可以不包含任何的数据, 空值既不是数字0,也不是空字符,而是表示未知。 如果允许列包含空值,表示可以不为该列输入具 体的数据;如果不允许列包含空值,在输入数据 时必须为该列提供数据。例如,在包含订单的 orders表中,订单代码、产品代码、客户代码等 列不允许空置,但是订单描述列则可以包含空值。 考虑这个因素的目标是,尽可能地不使用允许空 值的列,因为空值列有可能带来意想不到的查询 效果。如果不得不允许某些列为空,那么应该使 得这些列的数量最少。 2016年9月9日 第8页
在Microsoft SQL Server 2008系统中,可 以使用可视化工具执行有关表的操作,这 些操作包括创建表、修改表的结构、查看 依赖关系、查看有关属性信息等。
2016年9月9日
第38页
6.4 已分区表
如果一个表中包含了大量的、以多种不同 方式使用的数据,一般的查询又不能按照 预期的成本完成,就应该考虑使用已分区 表。已分区表是指按照数据水平方式分区, 将数据分布于一个数据库的多个不同的文 件组中。在对数据进行查询或更新时,这 些已分区表将被视为独立的逻辑单元。
第6章 表
本章概述 本章要点 本章内容
2016年9月9日
第1页
本章概述
数据库中的数据是如何组织和存储的?数据库中的数据之 间的关系是如何描述的?数据库中的主要的数据对象是什 么?为何更好地回答这些问题,需要理解表的概念和特点。 表是数据库中最基本、最重要、最核心的对象,是组织数 据的方式,是存储数据的地方。 其他许多数据库对象,例如索引、视图等,都是依附于表 对象存在的。从某种意义上,管理数据库实际上就是管理 数据库中的表。表结构的设计质量直接影响到数据库中数 据的使用效率。 本章将全面讲述有关表的管理技术。
2016年9月9日
第16页
6.3 创建和修改表
如果希望在数据库中新增加表,如何执行 操作呢?如果希望修改已经存在的表的结 构,那么如何进行修改呢? 本节将主要围绕创建和修改表展开讨论。 内容包括创建表、增加和删除列、修改列 的属性、设置标识符列、查看表的信息、 删除表等。
2016年9月9日
第17页
4. 因素四:考虑表是否使用主键,如果使用 则在何处使用主键
主键是唯一确定每一行数据的方式,是一 种数据完整性对象。主键往往是一个列或 多个列的组合。一个表中最多只能有一个 主键。一般地,应该为每一个表都指定主 键,借此可以确定行数据的唯一性。
2016年9月9日
第9页
5. 因素五:考虑是否使用约束、默认值、规 则,以及在何处使用这些对象。