- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章表的使用和管理
本章主题 表的定义 能存储的不同数据类型 如何存储表以及将表存储于何处 使用SSMS和查询编辑器创建表 表的创建中所包含的更高级的部分 图片和大型文本数据 * 修改表例题 例5-2:建立一个表“tabletest”,有两个字段column1,column2,column1的类型为整形,column2的类型为varchar(20),不允许为空,然后再删除表中的column2字段。 CREATE TABLE tabletest ( column1 INT, column2 VARCHAR(20) NULL) ; GO ALTER TABLE tabletest DROP COLUMN column2 ; GO 执行第一个CREATE TABLE语句后如图5.15所示,执行ALTER TABLE语句后如图5.16所示。 图5.15 创建表“tabletest” 图5.16 修改表 (三) 重命名表 * 重命名表,要用到系统存储过程sp_rename。具体的语法这里不作讲解,下面仅以示例来说明使用sp_rename前后数据表名称的变化。 在查询分析器中输入: Use student Go Exec sp_rename ‘tabletest’,’newtable-test’ 输入前后数据表名的变化如图5.17,5.18所示。 图5.17 修改前 图5.18 修改后 (四) 删除表 * 要删除上一节建立的“newtable-test”表,可以在查询分析器窗口中输入以下T-SQL语句: USE Student Go DROP TABLE [newtable-test] 第四节 实现SQL Server 2005的数据完整性 * 数据完整性介绍 主键与外键 列约束和默认值 (一) 数据完整性介绍 * 所谓数据完整性就是指数据库中数据的正确性和一致性,是指数据的精确性(Accuracy) 和可靠性(Reliability),它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。利用数据的完整性约束,可以保证数据库中数据的质量。因此,在进行表的设计时,一定要注意到对数据完整性的设计。 在SQL Server 2005 中,一般有以下四类完整性: 域完整性:对具体一列上的数据的有效性限制。域完整性指特定列的项的有效性。可以强制域完整性限制类型(通过使用数据类型)、限制格式(通过使用 CHECK 约束和规则)或限制可能值的范围(通过使用 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。 实体完整性:保证表中所有的行都是惟一的,以确保所有的记录都是可以区分的。实体完整性将行定义为特定表的唯一实体。实体完整性通过 UNIQUE 索引、UNIQUE 约束或 PRIMARY KEY 约束,强制表的标识符列或主键的完整性。 引用完整性:这是对涉及两个或两个以上表的数据的一致性维护。输入或删除行时,引用完整性保留表之间定义的关系。在 SQL Server 2005 中,引用完整性通过 FOREIGN KEY 和 CHECK 约束,以外键与主键之间或外键与唯一键之间的关系为基础。引用完整性确保键值在所有表中一致。这类一致性要求不引用不存在的值,如果一个键值发生更改,则整个数据库中,对该键值的所有引用要进行一致的更改。 用户定义完整性:用户定义完整性可以定义不属于其他任何完整性类别的特定业务规则。所有完整性类别都支持用户定义完整性。这包括 CREATE TABLE 中所有列级约束和表级约束、存储过程以及触发器。 (二) 主键与外键 * 在前面创建表的时候,曾提到过主键和外键。下面继续对主键和外键进行详细的描述。 主键:保证数据唯一且非空(not null),表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当表没有主键时,这些操作会变的非常麻烦。一个表只能有一个主键。 外键:引用完整性表示得到正常维护的表之间的关系。表中的数据只应指向另一个表中的现有行,不应指向不存在的行。 例如,Classes表和Teachers表之间的关系。每个班对应了一个班主任,而在班级信息数据表中只有班级班主任的代码。要查询到班级班主任的姓名,必须要对下面两个表建立关系。也就是说一个班主任
文档评论(0)