数据库第四章管理表

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

工程数据库——SQLServer2008机电信息学院软件系:朱晓晶第四章管理表本章主要内容本章学习目标熟练掌握数据表的创建、修改和删除方法;熟练数据表的约束及其使用。4.1表概述数据库是保存数据的集合,其目的在于存储和返回数据。如果没有数据库的表所提供的结构,这些任务是不可能完成的。数据库中包含一个或多个表,表是数据库的基本构造块。同时,表是数据的集合,是用来存储数据和操作数据的逻辑结构。表是由行和列所构成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性。4.1.1什么是表在SQLServer2008中,数据表分为4种类型,即普通表、分区表、临时表和系统表。下面介绍数据表中的临时表和系统表。临时表是临时创建的不能永久保存的表。分为本地临时表和全局临时表。本地临时表的名称以单个符号#作为首字符,只对当前连接的用户可见,用户退出时被自动删除;全局临时表的名称以两个符号##作为首字符,对任何用户都是可见的,当所有引用该表的用户断开连接时被删除。系统表存储有关SQLServer2008服务器的配置、数据库设置、用户和表对象的描述等系统信息。一般只能由DBA来使用该表。4.1.2临时表和系统表4.2创建表4.2.1数据类型在数据表中的每一个数据列都会有特定的属性,而这些属性中最重要的就是数据类型(DataType),数据类型是用来定义储存在数据列中的数据,其限制了一个列中可以存储的数据的类型,在某些情况下甚至限制了该列中的可能值的取值范围。在SQLServer中,数据类型可以是系统提供的数据类型,也可以是用户自定义的数据类型。1.系统数据类型(1)整数数据类型整数数据类型是最常用的数据类型之一,可以直接进行数据运算。分为以下4种:INT(INTEGER)SMALLINTTINYINTBIGINT(2)浮点数据类型浮点数据类型用于存储十进制小数,分为以下4种类型:REALFLOATDECIMALNUMERIC(3)字符数据类型字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号”。字符数据类型分为以下6种:CHARNCHARVARCHARNVARCHARTEXTNTEXT(4)日期和时间数据类型在以往的MicrosoftSQLServer中,日期和时间数据类型包括Datetime和Smalldatetime两种类型,所存储的日期范围是从1753年1月1日开始,到9999年12月31日结束(每一个值要求8个存储字节)。在原有两种数据类型的基础上又引入了4种日期和时间数据类型。介绍如下:DATETIMEDATETIME2DATETIMEOFFSET(5)二进制数据类型BINARYVARBINARYIMAGE(6)位数据类型BIT(7)货币数据类型MoneySmallmoney(8)空间数据类型geography数据类型geometry数据类型(9)其他数据类型sql_variantTimestampUniqueidentifier2.用户自定义数据类型在系统数据类型的基础上,用户可以根据需要定制数据,称之为用户自定义数据类型。当用户自定义数据类型时,需要指定该类型的名称、建立在其上的系统数据类型以及是否允许空值(NULL)等特性。利用“SQLServerManagementStudio”创建用户自定义数据类型:(1)选择“开始”→“程序”→“MicrosoftSQLServer2008”→“SQLServerManagementStudio”,打开“MicrosoftSQLServerManagementStudio”窗口,并使用Windows身份验证或者SQLServer身份验证连接到数据库实例。(2)展开需要创建用户自定义数据类型的数据库students,选择“可编程性”→“类型”,在“用户定义数据类型”节点上单击鼠标右键,然后从弹出的快捷菜单中选择“新建用户定义数据类型”命令,打开“新建用户定义数据类型”对话框(3)在“新建用户定义数据类型”对话框中,输入自定义类型的架构、名称、数据类型、精度、允许为空值等。(4)完成设置后,单击“确定”按钮使用系统存储过程sp_addtype创建用户自定义数据类型需要提供以下3个参数:名称,新数据类型所依据的系统数据类型、数据类型是否允许为空。其语法格式如下:sp_addtype{type}[,system_data_type][,'null_type']参数说明:type是用户定义的数据类型的名称,必须遵循标识符命名规则,并且在每个数据库中必须是惟一的。system_data_type是自定义数据类型所依据的系统数据类型,例如Decimal、Int、Char等等,如果参数中有空格或者标点符号则必须用引号将该参数引起来。null_type表示该数据类型是如何处理空值的,必须使用单引号引起来,取值有'NULL'、'NOTNULL'或者'NONULL'。4.2.2创建表创建数据表的一般步骤为:首先定义表结构,即给表的每一列取列名,并确定每一列的数据类型、数据长度、列数据是否可以为空等;然后,为了限制某列数据的取值范围,以保证输入数据的正确性和一致性而设置约束;当表结构和约束建立完成之后,最后就可以向表中输入数据了。创建数据表的关键是定义表的结构,通常创建表之前的重要工作是设计表结构,即确定表的名字、表中各个数据项的列名、数据类型和长度、是否为空值等。在SQLServer2008中,创建表可以使用两种方法:一种是通过图形化界面创建即使用“SQLServerManagementStudio”创建表,另一种是可以利用T-SQL语句来实现。1.利用图形化界面创建表在SQLServerManagementStudio中,提供一个前端的、填充式的表设计器以简化表的设计工作,利用图形化的方法可以非常方便地创建数据表。2.利用T-SQL语句创建数据表语法格式:CREATETABLE[database_name.[owner].|owner.]table_name({column_definition|table_constraint|column_nameAScomputed_column_expression}[,…n])[ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]其中:column_definition::={column_namedata_type}[[DEFAULTconstant_expression]|[IDENTITY[(seed,increment)]]][column_constraint][,...n]4.3管理表4.3.1修改表1.利用表设计器修改数据表(1)启动SQLServerManagementStudio。(2)展开SQLServer实例,右击要修改的表,然后从弹出的快捷菜单中选择“设计”命令。(3)在“表设计器”中,可以新增列、删除列和修改列的名称、数据类型、长度、是否允许为空等属性。(4)当完成修改表的操作后,单击工具栏上的“保存”按钮。2.利用T-SQL语句修改数据表修改数据表的语法格式如下:ALTERTABLEtable_name{ALTERCOLUMNcolumn_namenewdatatype[(precision[,scale])][NULL|NOTNULL]|ADD{[column_definition][,...n]}|DROP{[CONSTRAINT]constraint_name|COLUMNcolumn_name}[,...n]}参数说明如下table_name:所要修改的表的名称。ALTERCOLUMN:修改列的定义。ADD:增加新列或约束。DROP:删除列或约束。4.3.2删除表1.利用对象资源管理器删除数据表(1)启动SQLServerManagementStudio。(2)展开SQLServer实例,右击需要删除的表,从弹出的快捷菜单中选择“删除”,打开“删除对象”对话框。(3)在“删除对象”对话框中,显示出删除对象的属性信息,单击“确定”按钮。2.利用T-SQL语句删除数据表删除数据表的语法格式如下:DROPTABLEtable_name[,...n]其中,table_name为所要删除的表的名称。删除表只能够删除用户表,不能够删除系统表。删除表一旦操作完成,表中数据也一并被删除,而且是无法恢复的。4.4完整性与约束4.4.1完整性数据完整性是数据库设计方面一个非常重要的问题,数据完整性代表数据的正确性、一致性与可靠性,实施完整性的目的在于确保数据的质量。在SQLServer中,根据数据完整性措施所作用的数据库对象和范围不同,可以将数据完整性分类为实体完整性、域完整性和参照完整性等。1.实体完整性实体完整性把数据表中的每行看作一个实体,它要求所有行都具有唯一标识。在SQLServer中,可以通过建立PRIMARYKEY约束、UNIQUE约束、唯一索引,以及列IDENTITY属性等措施来实施实体完整性。2.域完整性域完整性要求数据表中指定列的数据具有正确的数据类型、格式和有效的数据范围。域完整性通过默认值、FOREIGNKEY、CHECK等约束,以及默认、规则等数据库对象来实现。3.参照完整性参照完整性维持被参照表和参照表之间的数据一致性。在SQLServer中,参照完整性通过主键与外键或唯一键与外键之间的关系来实现,通过建立FOREIGNKEY约束来实施。在被参照表中,当其主键值被其他表所参照时,该行不能被删除,也不允许改变。在参照表中,不允许参照不存在的主键值。4.4.2约束约束是数据库中的数据完整性实现的具体方法。在SQLServer中,包括5种约束类型:PRIMARYKEY约束、FOREIGNKEY约束、UNIQUE约束、CHECK约束和DEFAULT约束。在SQLServer中,约束作为数据表定义的一部分,在CREATETABLE语句中定义声明。同时,约束独立于数据表的结构,可以在不改变数据表结构的情况下,使用ALTERTABLE语句来添加或删除。1.PRIMARYKEY约束表中经常有一列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键(PrimaryKey),通过它可以强制表的实体完整性。一个表只能有一个主键,而且主键约束中的列不能为空值。如果主键约束定义在不止一列上,则一列中的值可以重复,但主键约束定义中的所有列的组合值必须唯一,因为该组合列将成为表的主键。1)使用表设计器创建PRIMARYKEY约束在表设计器中可以创建、修改和删除PRIMARYKEY约束。操作步骤如下:在表设计器中,选择需要设置主键的列(如需要设置多个列为主键,则选中所有需要设置为主键的所有列),单击鼠标右键,然后从弹出的快捷菜单中选择“设置主键”命令,完成主键设置,这时主键列的左边会显示“黄色钥匙”图标启动。2)使用T-SQL语句创建PRIMARYKEY约束创建主键约束的语法形式如下:[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED](column_name[,…n])其中,CLUSTERED|NONCLUSTERED表示所创建的UNIQUE约束是聚集索引还是非聚集索引,默认为CLUSTERED聚集索引。2.FOREIGNKEY约束外键(FOREIGNKEY)用于建立和加强两个表(主表与从表)的一列或多列数据之间的链接,当数据添加、修改或删除时,通过外键约束保证它们之间数据的一致性。定义表之间的参照完整性是先定义主表的主键,再对从表定义外键约束。FOREIGNKEY约束要求列中的每个值在所引用的表中对应的被引用列中都存在。1)使用表设计器创建FOREIGNKEY在表设计器的空白处单击鼠标右键选择“关系”,弹出“外键关系”对话框单击“添加”按钮可以添加外键,单击“表和列

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功