创建表计数据完整性_第1页
创建表计数据完整性_第2页
创建表计数据完整性_第3页
创建表计数据完整性_第4页
创建表计数据完整性_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、创建表及数据完整性,1 数据类型 2 创建表 3 数据完整性 4 约束,2,数据类型 -系统提供的数据类型,3,4,5,6,7,用途:当多个表的列中要存储同样数据类型,且想确保这些列具有完全相同的数据类型、长度和是否为空属性时,可使用户定义类型。 方法:创建用户定义类型的数据类型必须提供以下三个参数:数据类型名称、新数据类型所依据的系统数据类型、数据类型是否为空值(如果未定义,系统将依据数据库或连接的ANSI NULL默认设置进行指派)。,数据类型 -用户的数据类型,例:创建一个名为birthday,基于smalldatetime,且该列不允许为空值的用户定义数据类型。以后在设计某些数据表中的

2、“出生年月”列时就可应用此用户定义数据类型。,8,SQL Server数据库通常包含多个表,表是一个存储数据的实体,具有唯一的名称。可以说数据库实际上是表的集合,具体的数据都是存储在表中的。表是对数据进行存储和操作的一种逻辑结构,每一个表代表一个对象。SQL Server中每个数据库最多可存储20亿个数据表,每个表可以有1024列,每行最多可以存储8060字节。SQL Server中有两种表:永久表和临时表。永久表在创建后一直存储在数据库文件中,除非用户删除该表;临时表在系统运行过程中由系统创建,一旦用户退出或系统修复时,临时表将被自动删除。,创建表 -创建表,9,创建数据表主要有两种方法,分

3、别是利用图形界面方式创建表和利用SQL命令方式创建表。 在SSMS中创建表,创建表 -在SSMS中,10,11,在该对话框中,需要对表进行如下定义: 输入列名 选择正确的数据类型、数据长度和精度; 规定该列的数据是否为空; 设置该列的数据的默认值 设置表格的主键、外键,12,创建表 -(使用SQL命令方式),语法格式如下:CREATE TABLE database_name.owner.| owner. table_name( | column_name AS computed_column_ expression ,.n )ON filegroup | DEFAULT TEXTIMAGE_O

4、N filegroup | DEFAULT := column_name data_type DEFAULT constant_expression | IDENTITY (seed, increment ) NOT FOR REPLICATION .n,13,database_name:指定新建的表属于哪个数据库。如果不指定数据库名,则会将所创建的表存放在当前数据库中。 owner:指定数据库所有者的用户名。 table_name:指定新建表的名称,最长不超过128个字符。对数据库来说,database_ name.owner_name.object_ name 应该是唯一的。column_

5、name:指定表中的列名,列名必须符合标识符规则,并且在表内唯一。 computed_column_expression:指定计算列(Computed column)列值的表达式。表达式可以是列名、常量、变量、函数等或它们的组合。 例如:平均成绩=总分/n。 ON filegroup | DEFAULT:指定存储表的文件组名。如果使用了DEFAULT选项或省略了ON 子句,则新建的表会存储在默认文件组中。,14,TEXTIMAGE_ON:指定text、ntext和image列的数据存储的文件组。如果无此子句,则这些类型的数据就和表一起存储在相同的文件 data_type:指定列的数据类型。 D

6、EFAULT:指定列的缺省值。 IDENTITY:指定列为identity列。一个表中只能有一个identity列。seed:指定identity列的初始值。 increment:指定identity列的增量。 NOT FOR REPLICATION:指定列的identity属性在把从其他表中复制的数据插入到表中时不发生作用,即不足的生成列值,使得复制的数据行保持原来的列值。,15,例 利用CREATE TABLE命令创建学生表Student。USE 学校教务管理系统GOCREATE TABLE STUDENT (学号 CHAR(10) NOT NULL ,姓名 VARCHAR(8) NOT

7、NULL,性别 CHAR(2), PRIMARY KEY (学号) GO,16,数据完整性,1实体完整性 用于保证数据库中数据表的每个特定实体都是唯一的。 实现方法:主键约束、唯一键约束、索引或标识属性来实现。,数据完整性包括:实体完整性、域完整性、参照完整性 、 用户定义的完整性。,2域完整性 保证数据库中的数据取值的合理性,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。 实现方法:检查约束、默认定义、非空和规则。,17,3.参照完整性 参照完整性是指两个表的主关键字和外关键字的数据应该对应一致。它确保了有主关键字的表中对应其他表的外关键字的行存在,即保证了表之间的数据的一致性

8、,防止了数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外关键字和主关键字之间或外关键字和唯一性关键字之间的关系上的。在SQL Server 2005中,参照完整性作用表现在如下几个方面:(1) 禁止在从表中插入包含主表中不存在的关键字的数据行;(2) 禁止导致从表中的相应值孤立的主表中的外关键字值改变;(3) 禁止删除在从表中的有对应记录的主表记录。,18,4.用户定义的完整性 不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。SQL Server 2005提

9、供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其他的完整性类型都支持用户定义的完整性。,19,约束 -定义、目的,1.约束的定义:约束定义了关于允许什么数据进入数据库的原则,2.约束的目的:为了防止列出现非法数据,以保证数据中数据的一致性和完整性。,20,约束 -类型,主键(PRIMARY KEY)约束 惟一(UNIQUE)约束 外键(FOREIGN KEY)约束 检查(CHECK)约束 默认值(DEFAULT)约束 空值(NULL)约束,实现参照完整性,21,约束 -创建方法,方法一:在创建表的时候同时创建约束 CREATE TABLE 表名

10、 (字段名 数据类型 (长度),n CONSTRAINT 约束名 PRIMARY KEY (列名) CONSTRAINT 约束名 UNIQUE KEY (列名) CONSTRAINT 约束名 FOREIGEN KEY (外键列) REFERENCES 引用表名(引用列) CONSTRAINT 约束名 CHECK (检查表达式) CONSTRAINT 约束名 DEFAULT 默认值 ),22,例:,Create table student (学号 char(10) primary key, 姓名 char(8) unique not null, 性别 char(2) check(性别=男 or 性别=女) 出生日期 smalldatetime default getdate(),Create table grade (学号 char(10) foreign key references student(学号), 课程号 char(3), 成绩 tinyint Constraint pk_gr primary key (学号,姓名),23,方法二: 在表创建之后,通过修改表添加约束 ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (列名) CONSTRAINT 约束名 UNIQUE KEY (列名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论