《guo第4章表的存储原理及完整性创建管理.ppt》由会员分享,可在线阅读,更多相关《guo第4章表的存储原理及完整性创建管理.ppt(52页珍藏版)》请在金锄头文库上搜索。
1、第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 4.1 SQL Server表的类型表的类型 4.2 表的存储原理表的存储原理 4.3 SQL Server数据类型数据类型 4.4 数据表的创建和管理数据表的创建和管理 1计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1 SQL Server表的类型表的类型 4.1.1 SQL Server
2、的临时表的临时表 4.1.2 SQL Server的系统表的系统表 2计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1.1 SQL Server的临时表的临时表SQL Server中的数据表分为:中的数据表分为:永久表:创建后一直存储在数据库文件中,直到用户永久表:创建后一直存储在数据库文件中,直到用户删除为止。删除为止。临时表临时表 临时表分两种:临时表分两种:局部临时表:表名用局部临时表:表名用#开头。只能由创建它的用户使用,开头。只能由创建它的用户使用,在该用户连接断开时,它
3、被自动删除。在该用户连接断开时,它被自动删除。全局临时表:表名用全局临时表:表名用#开头。当前所有连接用户都可开头。当前所有连接用户都可以使用,它在最后一个会话结束时被自动删除。以使用,它在最后一个会话结束时被自动删除。系统根据表名前有无系统根据表名前有无#符号确定创建的是临时表还是永符号确定创建的是临时表还是永久表。久表。3计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 SQL Server的系统表的系统表 一一些些系系统统表表只只存存在在于于mastermaster数数据
4、据库库,它它们们包包含含系系统统级级信信息息。在在SQL SQL Server Server 20002000里里共共有有1818个个表表,在在SQL SQL Server 2005Server 2005里对应里对应2020个视图。个视图。 。 而一些系统表则存在于每一个数据库(包括而一些系统表则存在于每一个数据库(包括mastermaster数据库),它们包含属于这个特定数据库的对象和资数据库),它们包含属于这个特定数据库的对象和资源的相关信息。在源的相关信息。在SQL Server 2000里共有里共有17个表,在个表,在SQL Server 2005里对应里对应22个视图。个视图。 注意
5、:注意:不允许使用不允许使用SQLSQL语句直接修改系统表中的内语句直接修改系统表中的内容;不允许编写程序直接访问系统表中的信息;如果容;不允许编写程序直接访问系统表中的信息;如果需要系统表信息,可以通过系统的存储过程和系统提需要系统表信息,可以通过系统的存储过程和系统提供的函数进行。供的函数进行。 4计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2 表的存储原理表的存储原理4.2.1 内部存储概述内部存储概述 4.2.2 SQL ServerSQL Server数据记录结构数据记
6、录结构 5计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1.1 内部存储概述内部存储概述 表表是有关某个特定实例的数据集合,在关系数据库中处是有关某个特定实例的数据集合,在关系数据库中处于核心地位。于核心地位。创建一个表,就会有一行或多行插入到用来管理这个表创建一个表,就会有一行或多行插入到用来管理这个表的多个系统表里。至少要写信息到的多个系统表里。至少要写信息到sysobjects、sysindexes和和syscolumns这三个系统表里,当新建的表这三个系统表里,当新建的表有
7、外码约束时,相关的信息还会插入到有外码约束时,相关的信息还会插入到sysrefrences系统系统表里。表里。6计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005 Sysobjects主要记录新表的基本信息,如表名、对象主要记录新表的基本信息,如表名、对象ID以以及表的所有者等等。及表的所有者等等。Syscolumns主要记录新表列的信息,如列名、类型和长度主要记录新表列的信息,如列名、类型和长度等。等。 Sysindexes系统表记录包含指向新表所使用的存储空间的系统表记录包含指向新表所
8、使用的存储空间的指针和有关新表大小的信息。指针和有关新表大小的信息。sysrefrences系统表里记录参照表的外键信息。系统表里记录参照表的外键信息。例如:创建一个表,它在系统表中的记录信息如下图所示:例如:创建一个表,它在系统表中的记录信息如下图所示:7计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005CREATE TABLE CREATE TABLE 课程表课程表( (课号课号 CHAR (6) NOT NULL ,CHAR (6) NOT NULL ,课名课名 CHAR (20)
9、NOT NULL ,CHAR (20) NOT NULL ,教材名称教材名称 CHAR (20) NULL ,CHAR (20) NULL ,编著者编著者 CHAR (10) NULL ,CHAR (10) NULL ,出版社出版社 CHAR (20) NULL ,CHAR (20) NULL , 版号版号 CHAR (15) NULL ,CHAR (15) NULL ,定价定价 MONEY NULLMONEY NULL,PRIMARY KEY(PRIMARY KEY(课号课号) ) ) ) 8计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管
10、理 大型数据库大型数据库 SQL Server 2005注意:注意:当一个新表刚创建时,在插入第一行数据之前系统不当一个新表刚创建时,在插入第一行数据之前系统不会立即为其分配存储空间,因此会立即为其分配存储空间,因此Sysindexes表中指示页表中指示页地址和预留存储空间的列将都是地址和预留存储空间的列将都是0值。值。如果在该表上定义了如果在该表上定义了PRIMARY KEY或或UNIQUE约束,约束,而而PRIMARY KEY或或UNIQUE约束的背后是由簇集索约束的背后是由簇集索引支持的,则该表在引支持的,则该表在Sysindexes中对应行的中对应行的indid值为值为1。任何有非簇集
11、索引支持的其他约束在任何有非簇集索引支持的其他约束在Sysindexes表中都表中都有一行,而且该行的有一行,而且该行的indid值在值在2到到250之间。之间。 9计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 数据行(记录)结构数据行(记录)结构 在在 SQL Server 中,数据存储的基本单位是中,数据存储的基本单位是页页。紧跟着页头的就是存储表的真正数据行区域。单个数据紧跟着页头的就是存储表的真正数据行区域。单个数据行的最大长度是行的最大长度是8060字节。字节。数
12、据行不能跨页存储(文本和图像例外)。页内数据行数据行不能跨页存储(文本和图像例外)。页内数据行的多少依赖于表的结构和要存储的数据。的多少依赖于表的结构和要存储的数据。如果一个表的所有列都是定长,那么该表在每一页上存如果一个表的所有列都是定长,那么该表在每一页上存储相同数目的行。储相同数目的行。如果一个表里有变长列,那么该表总是在每一页上存储如果一个表里有变长列,那么该表总是在每一页上存储尽可能多的行。尽可能多的行。10计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 数据行(记
13、录)结构数据行(记录)结构1 1、定长记录、定长记录在在定定长长记记录录里里,每每个个字字段段都都有有固固定定的的长长度度,而而且且字字段段数数也也是是固固定定的的。这这种种记记录录的的字字段段能能够够连连续续存存储储,因因此此在在给给定定记记录录地地址址的的情情况况下下,借借助助系系统统目目录录里里有有关关字字段段的的长长度度信信息息就就能能计计算算出出某某个个特特殊殊字字段的的地址。段的的地址。2 2、变长记录、变长记录对对于于变变长长记记录录来来说说,一一种种可可能能的的记记录录组组织织方方式式就就是是像像定定长长记记录录一一样样连连续续地地存存放放字字段段,字字段段之之间间通通过过分分
14、割割符符隔隔开开。这这种种组组织织方方式式需需要扫描记录才能定位需要访问的字段。要扫描记录才能定位需要访问的字段。另另一一种种方方法法是是在在记记录录开开始始处处预预留留一一些些空空间间作作为为存存放放一一个个整整数数偏偏移移量量数数组组的的空空间间,数数组组中中的的第第I I个个整整数数表表示示记记录录的的第第I I个个字字段段的的其其始始地地址址,当当然然这这个个地地址址是是相相对对于于记记录录的的起起始始地地址址的的。另另外外在在数数组组中中也也存存储储记记录录尾尾部部的的偏偏移移量量,这这个个偏偏移移量量用用来来识识别别最最后后一一个个字字段段的的结束位置。结束位置。 11计算机学院计
15、算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20051 1、 SQL ServerSQL Server定长记录的存储定长记录的存储首先来看最简单的情况,记录中所有字段都是定长的。首先来看最简单的情况,记录中所有字段都是定长的。CREATE TABLE FixedCREATE TABLE Fixed( (col1 col1 intint NOT NULL NOT NULLcol2 char(5) NOT NULLcol2 char(5) NOT NULLcol3 char(3) NULLcol3 char
16、(3) NULLcol4 float NOT NULLcol4 float NOT NULL) )当这个表被创建以后,就有类似下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:系统表中:id name id name indidindid first first minlenminlen2099048 Fixed 0 0x000000000000 242099048 Fixed 0 0x000000000000 24而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:系统表中:na
17、me name colidcolid xtypextype length length xoffsetxoffsetcol1 1 56 4 4col1 1 56 4 4col2 2 175 5 8col2 2 175 5 8col3 3 175 3 13col3 3 175 3 13col4 4 62 8 16col4 4 62 8 1612计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20051 1、 SQL ServerSQL Server定长记录的存储定长记录的存储当往当往FixedFi
18、xed表中插入一个记录数据时,例如:表中插入一个记录数据时,例如:INSERT INTO Fixed VALUES(123,ABCD,NULL,45.5)INSERT INTO Fixed VALUES(123,ABCD,NULL,45.5)FixedFixed表在表在sysindexessysindexes系统表里的内容就会发生变化:系统表里的内容就会发生变化:id name id name indidindid first first minlenminlen2099048 Fixed 0 0x720000000000 242099048 Fixed 0 0x720000000000 24
19、这说明在插入了一记录数据之后,这说明在插入了一记录数据之后,SQL ServerSQL Server就为就为FixedFixed表分配了表分配了一个数据页。一个数据页。FixedFixed表只包含四个定长字段,表只包含四个定长字段,sysindexessysindexes表中表中minlenminlen字段的值表示记录的最小长度,该长度恰好是字段的值表示记录的最小长度,该长度恰好是syscolumnssyscolumns表中表示字段长度的表中表示字段长度的lengthlength的数字之和再加上的数字之和再加上4 4个字节。其中额外个字节。其中额外的的4 4个字节是用于记录字段数目的两个字节和
20、表示字段中个字节是用于记录字段数目的两个字节和表示字段中NULLNULL的字的字节数。节数。 13计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005第一个字节是状态位第一个字节是状态位A A,它的值是它的值是0x100x10,表示只有位表示只有位4 4是是1 1,其他位,其他位都是都是0 0,因此该记录没有变长字段(如果位,因此该记录没有变长字段(如果位5 5为为1 1说明存在变长字段)说明存在变长字段)。 最最后后一一个个字字节节是是NULLNULL位位图图,其其值值4 4意意味味只只有
21、有第第三三位位是是1 1,表表示示第第三三个个字段是字段是NULLNULL。1 1、 SQL ServerSQL Server定长记录的存储定长记录的存储14计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052 2、 SQL ServerSQL Server变长记录的存储变长记录的存储 CREATE TABLE VariableCREATE TABLE Variable( (col1 char(3) NOT NULLcol1 char(3) NOT NULLcol2 varchar(15)
22、 NOT NULLcol2 varchar(15) NOT NULLcol3 varchar(5) NULLcol3 varchar(5) NULLcol4 varchar(10) NOT NULLcol4 varchar(10) NOT NULLcol5 col5 smallintsmallint NOT NULL NOT NULL) )当这个表被创建以后,就有类似下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:系统表中:id name id name indidindid first first minlenminlen
23、18099105 Variable 0 0x000000000000 918099105 Variable 0 0x000000000000 9而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:系统表中:name name colidcolid xtypextype length length xoffsetxoffsetcol1 1 175 3 4col1 1 175 3 4col2 2 167 15 -1col2 2 167 15 -1col3 3 167 5 -1col3 3 167 5 -1col4 4 167 10 -1col4 4 1
24、67 10 -1col5 5 52 2 7col5 5 52 2 715计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052 2、 SQL ServerSQL Server变长记录的存储变长记录的存储当往当往VariableVariable表中插入一个记录数据时,例如:表中插入一个记录数据时,例如:INSERT INSERT INTO INTO Variable Variable VALUES(xyz,ABCDe,NULLVALUES(xyz,ABCDe,NULL, , 123,999)1
25、23,999)VariableVariable表在表在sysindexessysindexes系统表里的内容就会发生变化:系统表里的内容就会发生变化:id name id name indidindid first first minlenminlen18099105 Variable 0 0x880000000000 918099105 Variable 0 0x880000000000 9定长字段的数据位于记录中由定长字段的数据位于记录中由syscolumnssyscolumns的的xoffsetxoffset值指定的字节值指定的字节偏移量所在的位置,即偏移量所在的位置,即col1col1
26、起始于字节偏移量起始于字节偏移量4 4的位置,而的位置,而col5col5起起始于字节偏移量始于字节偏移量7 7的位置。的位置。 16计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005为了找到变长字段,首先要确定记录中列偏移数组的位置。在表示总字段数的为了找到变长字段,首先要确定记录中列偏移数组的位置。在表示总字段数的2 2个个字节(其值是字节(其值是05000500)和表示位图的)和表示位图的1 1字节(其值为字节(其值为0404)之后就是变长字段数的两个)之后就是变长字段数的两个字节,
27、在本例中其值是字节,在本例中其值是03000300,换算成十进制是,换算成十进制是3 3,说明该记录有,说明该记录有3 3个变长字段存在。个变长字段存在。紧跟其后的字节就是变长字段偏移数组。该例变长字段偏移数组用三个紧跟其后的字节就是变长字段偏移数组。该例变长字段偏移数组用三个2 2字节来表字节来表示示3 3个变长字段在记录中的结束位置。个变长字段在记录中的结束位置。19001900经过字节交换是经过字节交换是0x00190x0019,所以第一个变所以第一个变长字段结束于长字段结束于2525字节处。接下来也是字节处。接下来也是0x00190x0019,所以第二个变长字段实际长度为所以第二个变长
28、字段实际长度为0 0,表明没有任何东西存储在变长数据区域。表明没有任何东西存储在变长数据区域。1c001c00经过字节交换是经过字节交换是0x001c0x001c,所以第三所以第三个变长字段结束于个变长字段结束于2828字节处,而且整个记录也结束于字节处,而且整个记录也结束于2828字节处,换句话说,目前字节处,换句话说,目前整个记录的实际长度是整个记录的实际长度是2828个字节长。个字节长。 17计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3 SQL Server数据类型数据类
29、型 4.3.1 数值型数据数值型数据 4.3.2 货币型数据货币型数据 4.3.3 字符型数据字符型数据 4.3.4 日期日期/时间数据类型时间数据类型 4.3.5 二进制数据类型二进制数据类型 4.3.5 双字节数据类型双字节数据类型 18计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.1 数值型数据数值型数据BigintBigint。可可以以存存放放从从-2-26363到到2 26363-1-1范范围围内内的的整整型型数数据据。以以bigintbigint数数据据类类型型存存
30、储储的每个值占用的每个值占用8 8个字节,共个字节,共6464位,其中位,其中6363位用于存储数字,位用于存储数字,1 1位用于表示正负。位用于表示正负。IntInt。也可以写作也可以写作integerinteger,可以存储从可以存储从-2-23131到到2 23131-1-1范围内的全部整数。以范围内的全部整数。以intint数据类型存储的每个值占用数据类型存储的每个值占用4 4个字节,共个字节,共3232位,其中位,其中3131位用于存储数字,位用于存储数字,1 1位用于表示正负的区别。位用于表示正负的区别。SmallintSmallint。可可以以存存储储从从-2-21515到到2
31、21515- - 1 1范范围围内内的的所所有有整整数数。以以smallintsmallint数数据据类类型型存存储储的的每每个个值值占占用用2 2个个字字节节,共共1616位位,其其中中1515位位用用于于存存储储数数字字,1 1位位用用于于表表示示正负的区别。正负的区别。TinyintTinyint。可可以以存存储储0 0到到255255范范围围内内的的所所有有整整数数。以以tinyinttinyint数数据据类类型型存存储储的的每每个值占用个值占用1 1个字节。个字节。DecimalDecimal和和NumericNumeric。在在SQL SQL ServerServer中中,deci
32、maldecimal和和numericnumeric型型数数据据的的最最高高精精度度的的 可可 以以 达达 到到 3838位位 , 也也 就就 是是 说说 必必 须须 在在 -10-103838-1-1到到 10103838-1-1之之 间间 。 格格 式式 为为 :DecimalDecimal(n,dn,d)或)或NumericNumeric(n,dn,d),),其中其中n n为总的位数,为总的位数,d d为小数位数。为小数位数。floatfloat和和realreal。floatfloat型型数数据据范范围围从从-1.79E+38-1.79E+38到到1.79E+381.79E+38,Re
33、alReal型型数数据据范范围围从从 -3.40E+38-3.40E+38到到 3.40E+383.40E+38。 其其 中中 floatfloat可可 采采 用用 科科 学学 记记 数数 法法 表表 示示 , 格格 式式 为为 : floatfloat(n n),),n n必须在必须在153153之间。之间。 19计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.2 4.3.2 货币型数据货币型数据 MoneyMoney。它它存存储储的的货货币币值值由由2 2个个4 4字字节节整
34、整数数构构成成。前前面面的的一一个个4 4字字节节表表示示货货币币值值的的整整数数部部分分,后后面面的的一一个个4 4字字节节表表示示货货币币值值的的小小数数部部分分。以以MoneyMoney存存储储的的货货币币值值的的范范围从围从-2-26363到到2 26363-1-1,可以精确到万分之一货币单位。,可以精确到万分之一货币单位。SmallmoneySmallmoney。它存储的货币值由它存储的货币值由2 2个个2 2字节整数构成。字节整数构成。前面的一个前面的一个2 2字节表示货币值的整数部分,后面的一个字节表示货币值的整数部分,后面的一个2 2字节表示货币值的小数部分。以字节表示货币值的
35、小数部分。以SmallmoneySmallmoney存储的货存储的货币值的范围从币值的范围从-214,748.3648-214,748.3648到到+214,748.3647+214,748.3647,也可,也可以精确到万分之一货币单位。以精确到万分之一货币单位。 20计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.3 4.3.3 字符型数据字符型数据 CharChar。利利用用CharChar数数据据类类型型存存储储数数据据时时,每每个个字字符符占占用用一一个个字字节节的的存存
36、储储空空间间。CharChar数数据据类类型型使使用用固固定定长长度度来来存存储储字字符符,最最长长可可以以容容纳纳80008000个个字字符符。利利用用CharChar数数据据类类型型来来定定义义表表列列或或者者定定义义变变量量时时,应应该该给给定定数数据据的的最最大大长长度度。如如果果实实际际数数据据的的字字符符长长度度短短于于给给定定的的最最大大长长度度,则则多多余余的的字字节节会会用用空空格格填填充充。如如果果实实际际数数据据的的字字符符长长度度超超过过了了给给定定的的最最大大长长度度,则则超超过过的的字字符符将将会会被被截截断断。在在使使用用字字符符型型常常量量为为字字符符数数据据类
37、类型型赋值时,必须使用单引号(赋值时,必须使用单引号()将字符型常量括起来。)将字符型常量括起来。VarcharVarchar。VarcharVarchar数据类型的使用方式与数据类型的使用方式与CharChar数据类型类似。数据类型类似。SQL SQL Server Server 利用利用VarcharVarchar数据类型来存储最长可以达到数据类型来存储最长可以达到80008000字符的变长字字符的变长字符。与符。与Char Char 数据类型不同,数据类型不同,VarcharVarchar数据类型的存储空间随存储在表数据类型的存储空间随存储在表列中的每一个数据的字符数的不同而变化。列中的
38、每一个数据的字符数的不同而变化。TextText。当要存储的字符型数据非常庞大以至于当要存储的字符型数据非常庞大以至于80008000字节完全不够用字节完全不够用时,时,CharChar和和VarcharVarchar数据类型都失去了作用。这时应该选择数据类型都失去了作用。这时应该选择TextText数据数据类型。类型。 TextText数据类型专门用于存储数量庞大的变长字符数据。最大长数据类型专门用于存储数量庞大的变长字符数据。最大长度可以达到度可以达到2 23131-1-1个字符,约个字符,约2GB2GB。 21计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的
39、存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.4 4.3.4 日期日期/ /时间数据类型时间数据类型 DatetimeDatetime。DatetimeDatetime数数据据类类型型范范围围从从17531753年年1 1月月1 1日日到到 99999999年年 1212月月 3131日日 , 可可 以以 精精 确确 到到 千千 分分 之之 一一 秒秒 。DatetimeDatetime数据类型的数据占用数据类型的数据占用8 8个字节的存储空间。个字节的存储空间。SmalldatetimeSmalldatetime。SmalldatetimeSmalld
40、atetime数据范围从数据范围从19001900年年1 1月月1 1日到日到20792079年年6 6月月6 6日,可以精确到分。日,可以精确到分。SmalldatetimeSmalldatetime数据类型占数据类型占4 4个字节的存储空间。个字节的存储空间。 22计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.5 二进制数据类型二进制数据类型 所所谓谓二二进进制制数数据据是是一一些些用用十十六六进进制制来来表表示示的的数数据据。例例如如,十进制数据十进制数据245245表示
41、成十六进制数据就应该是表示成十六进制数据就应该是F5F5。(1 1)binarybinary。具具有有固固定定的的长长度度,最最大大长长度度可可以以达达到到8K8K字字节。节。(2 2)varbinaryvarbinary。具具有有不不固固定定的的长长度度,其其最最大大长长度度也也不不得超过得超过8K8K字节。字节。(3)Image。该该数数据据类类型型可可用用于于存存储储字字节节数数超超过过8K字字节节的的数数据据,比比如如Microsoft Word文文档档、Microsoft Excel图图表以及图像数据(包括表以及图像数据(包括.GIF、.BMP、.JPEG文件)等。文件)等。 23计
42、算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.3.5 双字节数据类型双字节数据类型 (1 1)Nchar(nNchar(n) )。Nchar(nNchar(n) )是是固固定定长长度度的的双双字字节节数数据据类类型型,括括号号里里的的n n用用来来定定义义数数据据的的最最大大长长度度。n n的的取取值值范范围围是是1400014000。(2 2)Nvarchar(nNvarchar(n) )。Nvarchar(nNvarchar(n) )数数据据类类型型存存储储可可变变长长度度的的双
43、双字字节节数数据据类类型型,括括号号里里的的n n用用来来定定义义数数据据的的最最大大长长度度。n n的取值为的取值为0400004000。(3)Ntext(n)。Ntext数数据据类类型型存存储储的的是是可可变变长长度度的的双双字字节节字字符符,Ntext数数据据类类型型突突破破了了前前2种种双双字字节节数数据据类类型型不不能能超超过过4000字字符符的的规规定定,最最多多可可以以存存储储多多达达230-1个个双双字字节字符。节字符。 24计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 200
44、54.4 数据表的创建和管理数据表的创建和管理 4.4.1 数据表结构的创建数据表结构的创建 4.4.2 数据表结构的管理数据表结构的管理 25计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.4.1 数据表结构的创建 在在SQL Server 2005中,每个数据库中最多可以创中,每个数据库中最多可以创建建200万个表,用户创建数据库表时,最多可以定万个表,用户创建数据库表时,最多可以定义义1024列,也就是可以定义列,也就是可以定义1024个字段。个字段。 SQL Server 2
45、000提供了两种方法创建数据库表:提供了两种方法创建数据库表:第一种方法是利用企业管理器(第一种方法是利用企业管理器(Enterprise Manager)创建表;创建表;另一种方法是利用另一种方法是利用Transact-SQL语句中的语句中的create命命令创建表。令创建表。26计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20051. 利用利用create命令创建表命令创建表其语法形式如下:其语法形式如下:CREATE TABLE ( 列级完整性约束条件列级完整性约束条件 , 列级完整性
46、约束条件列级完整性约束条件 ,)27计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20051. 利用利用create命令创建表命令创建表参数说明:参数说明:(1 1) 是是所所要要定定义义的的基基本本表表的的名名字字。一一个个表表它它可可以以由由一一个个或或多个属性组成。多个属性组成。(2 2) 一般取有实际意义的名字。一般取有实际意义的名字。(3 3) 可以是前面介绍的数据类型。可以是前面介绍的数据类型。(4 4)在)在SQL Server 2000SQL Server 2000中有下面几种
47、完整性约束条件:中有下面几种完整性约束条件: 空值约束(空值约束(NULL or NOT NULL););主键约束(主键约束(primary key constraint););唯一性约束(唯一性约束(unique constraint););检查约束检查约束(check constraint););缺省约束(缺省约束(default constraint););外部键约外部键约束(束(foreign key constraint););规则(规则(rule););缺省值(缺省值(default)。)。 28计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理
48、及完整性创建管理 大型数据库大型数据库 SQL Server 20052关于创建表时运用约束的说明关于创建表时运用约束的说明 (1 1)空值约束()空值约束(NULL or NOT NULLNULL or NOT NULL)空空值值NULLNULL约约束束决决定定属属性性值值是是否否允允许许为为空空值值(NULLNULL)。NULLNULL表表示示没没有有输输入入任任何何内内容容,它它不不是是零零和和空空白白,不不允允许许为为空空值值则则用用NOT NOT NULLNULL表示。表示。例如:设置属性例如:设置属性teacherteacher允许为空值。允许为空值。CREATE TABLE t(
49、 teacher char(8) NULL)29计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052关于创建表时运用约束的说明关于创建表时运用约束的说明(2 2)主键约束()主键约束(primary key constraintprimary key constraint) 主主健健约约束束要要求求主主健健属属性性取取值值必必须须惟惟一一,一一个个表表只只能能包包含含一一个个主主健健约约束束。如如果果没没有有在在主主健健约约束束中中指指定定CLUSTEREDCLUSTERED或或NONCL
50、USTEREDNONCLUSTERED,并并且且没没有有为为UNIQUEUNIQUE约约束束指指定定聚聚集集索索引引,则则将将对对该该主主健健约约束束用用CLUSTEREDCLUSTERED。主键约束主键约束SQLSQL的语法形式如下:的语法形式如下:CONSTRAINT 约束名约束名 PRIMARY KEY CLUSTERED|NONCLUSTERED(列名列名,n)30计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005 例如:在执行创建产品信息表的操作时,指定产品编号为主键值。例如:在
51、执行创建产品信息表的操作时,指定产品编号为主键值。CREATE TABLE products(id char(10) NOT NULL,name char(20) NOT NULL,price money,quantity smallint NULL,CONSTRAINT pk_products PRIMARY KEY CLUSTERED (id)此例的主健名称是此例的主健名称是pk_products,在,在products表中关于表中关于id建立了一个索引排序。建立了一个索引排序。31计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型
52、数据库大型数据库 SQL Server 20052关于创建表时运用约束的说明关于创建表时运用约束的说明(3 3)唯一性约束()唯一性约束(unique constraintunique constraint)唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防唯一性约束用于指定一个或者多个列的组合的值具有唯一性,以防止在列中输入重复的值。止在列中输入重复的值。 创建唯一性约束创建唯一性约束SQLSQL语句:语句:CONSTRAINT 约束名约束名 UNIQUE CLUSTERED|NONCLUSTERED(列名列名,n) 例:例:CREATE TABLE student1(sno cha
53、r(8),sname char(16),constraint pk_student primary key(sno),constraint uniq_student unique(sname) 32计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052关于创建表时运用约束的说明关于创建表时运用约束的说明(4 4)检查约束()检查约束(check constraintcheck constraint)使用检查约束时,应该注意以下几点:使用检查约束时,应该注意以下几点: 一一个个列列级级检检查查
54、约约束束只只能能与与限限制制的的字字段段有有关关;一一个个表表级级检检查查约约束束只能与限制的表中字段有关。只能与限制的表中字段有关。 一个表中可以定义多个检查约束。一个表中可以定义多个检查约束。 每个每个CREATE TABLECREATE TABLE语句中每个字段只能定义一个检查约束。语句中每个字段只能定义一个检查约束。 在在多多个个字字段段上上定定义义检检查查约约束束,则则必必须须将将检检查查约约束束定定义义为为表表级级约约束。束。 检查约束中不能包含子查询。检查约束中不能包含子查询。创建检查约束创建检查约束SQLSQL语法格式为:语法格式为:CONSTRAINT constraint_
55、nameCHECK NOT FOR REPLICATION (logical_expression) 33计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005例例如如:创创建建一一个个职职工工信信息息表表,其其中中输输入入性性别别字字段段值值时时,只只能能接接受受“F”F”或或者者“M”M”, 并并 且且 为为 phonenumphonenum字字 段段 创创 建建 检检 查查 约约 束束 , 限限 制制 只只 能能 输输 入入 类类 似似0108079865401080798654之类的数
56、据,而不能随意输入其他数据。之类的数据,而不能随意输入其他数据。create table employee(Id char(8),name char(8) CHECK(NAME LIKE A-C,a-cA-Z,a-zA-ZA-Z),sex char(2),phonenum int,constraint chk_sex check(sex in (F,M)default F,Constraint chk_phonenum check(phonenum like (010)8,90-90-90-9 0-90-90-90-9))34计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创
57、建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052关于创建表时运用约束的说明关于创建表时运用约束的说明(6 6)外部键约束)外部键约束外外部部键键约约束束用用于于强强制制参参照照完完整整性性,提提供供单单个个字字段段或或者者多多个个字字段段的的参照完整性。当使用外部键约束时,应该考虑以下几个因素:参照完整性。当使用外部键约束时,应该考虑以下几个因素: 外部键约束提供了字段参照完整性。外部键约束提供了字段参照完整性。 外外部部键键从从句句中中的的字字段段数数目目和和每每个个字字段段指指定定的的数数据据类类型型必必须须和和REFERENCESREFERENC
58、ES从句中的字段相匹配。从句中的字段相匹配。 外部键约束不能自动创建索引,需要用户手动创建。外部键约束不能自动创建索引,需要用户手动创建。 一个表中最多可以有一个表中最多可以有3131个外部键约束。个外部键约束。 在临时表中,不能使用外部键约束。在临时表中,不能使用外部键约束。 主键和外部键的数据类型必须严格匹配。主键和外部键的数据类型必须严格匹配。外键约束外键约束SQLSQL的语法形式如下:的语法形式如下:CONSTRAINT CONSTRAINT 约束名约束名 FOREIGN KEY FOREIGN KEY (外键列名)外键列名)REFERENCES REFERENCES 参照表(参照列名
59、)参照表(参照列名) 35计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005外键约束主要用来维护两个表之间的一致性关系。外键约束主要用来维护两个表之间的一致性关系。 外键的建立主要是通过将一个表的主键所在列包含在另一外键的建立主要是通过将一个表的主键所在列包含在另一个表中,这些列就是另一个表的外键。个表中,这些列就是另一个表的外键。外键的作用不只是对输入自身的数据进行限制,同时也限制了对主键所在表的数据进行修改。用户无法对主键里的数据进行修改和删除,除非事先删除或修改外键引用的数据。36计
60、算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005 例例如如:学学生生表表S S(SNOSNO,SNAMESNAME,)中中的的SNOSNO是是S S表表的的主主健健,课课程程表表C C(CNOCNO,CNAMECNAME,)中中的的CNOCNO是是C C表表的的主主健健,而而学学习习表表SCSC(SNOSNO,CNOCNO,GRADEGRADE)中中的的SNOSNO、CNOCNO是是SCSC表表的的主主健健,并并且且SNOSNO和和CNOCNO又又分分别别相相对对于于S S表表和和C C表
61、表是是SCSC表的外健。则创建表的外健。则创建SCSC表的表的SQLSQL语句如下:语句如下:CREATE TABLE SC (SNO CHAR(10) NOT NULL,CNO CHAR(6) NOT NULL,GRADE TINYINT DEFAULT NULL,CONSTRAINT PK_SC PRIMARY KEY ( SNO,CNO ),CONSTRAINT FK_SC FOREIGN KEY ( SNO ) REFERENCES Student(Sno),FOREIGN KEY ( CNO ) REFERENCES Course(Cno)37计算机学院计算机学院 郭占龙郭占龙第第4
62、章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例 【例例4-14-1】创创建建数数据据库库“教教学学管管理理”的的数数据据表表学学生生基基本本资资料料表表,数数据据表表结结构构如如表表1-31-3、表表的的完完整整性性约约束束如如表表1-1-8 8、表、表1-91-9所示。所示。方法一:使用对象资源管理器创建方法一:使用对象资源管理器创建第一步设置第一步设置STUDENTSTUDENT数据表的结构数据表的结构,步骤如下:,步骤如下: 在树形目录中找到要建表的数据库。在树形目录中找到要建表的
63、数据库。 在在该该数数据据库库上上单单击击鼠鼠标标右右键键,在在弹弹出出的的快快捷捷菜菜单单中中选选择择“新新建建”-“表表”命命令令,如如图图4-4所所示示。出出现现创创建建数据表结构的窗口,如图数据表结构的窗口,如图4-5所示。所示。 38计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例 图4-4 新建数据表 图4-5 利用表设计器创建表结构 39计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管
64、理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例 表设计器的上半部分有一个表格,在这个表格中输入列表设计器的上半部分有一个表格,在这个表格中输入列的属性,表格的每一行对应一列。对每一列都需要进行设的属性,表格的每一行对应一列。对每一列都需要进行设置,其中前三项是必须在建表时给出的。置,其中前三项是必须在建表时给出的。 完完成成后后,单单击击工工具具栏栏上上的的【保保存存】按按钮钮。在在出出现现的的选选择择名称对话框中输入表名:学生。名称对话框中输入表名:学生。 单击单击【确定确定】按钮退出。按钮退出。 40计算机学院计算机学院 郭占龙郭占龙第第4章
65、章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例第二步设置第二步设置STUDENTSTUDENT表完整性约束表完整性约束,步骤如下:,步骤如下: 展展开开企企业业管管理理器器的的数数据据库库“教教学学管管理理”,单单击击“表表”节节点点,选选定定数数据据表表学学生生,单单击击右右键键,在在快快捷捷菜菜单单上上,单击单击“设计表设计表”,出现如图,出现如图4-54-5所示的设计表结构窗口。所示的设计表结构窗口。 设设置置主主键键约约束束(PRIMARY PRIMARY KEYKEY),光光标标
66、移移到到需需要要设设置置主主键键的的字字段段学学号号,单单击击工工具具栏栏上上的的主主键键按按钮钮,学学号号列名左侧出现列名左侧出现“钥匙钥匙”图标。图标。如如果果要要设设置置多多属属性性作作为为主主键键,可可以以通通过过按按住住键键,用用鼠鼠标标左左键键依依次次单单击击要要选选定定的的列列,选选定定多多列列后后,单单击击工工具具栏栏上上的的主主键键按按钮钮。取取消消主主键键设设置置的的方方法法是是,选选定定主键字段,单击主键按钮即可。主键字段,单击主键按钮即可。设置主键后,系统自动建立了一个索引。设置主键后,系统自动建立了一个索引。41计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原
67、理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例 在图在图4-54-5所示的表设计器上右击,出现快捷菜单,如图所示的表设计器上右击,出现快捷菜单,如图4-64-6所示。所示。 选选择择“索索引引/键键”选选项项,如如图图4-7所所示示,系系统统设设置置表表学学生生.学学号号属属性性为为主键,因此自动在表中建立一个根据主键,因此自动在表中建立一个根据学号学号的值的大小升序排列的索引。的值的大小升序排列的索引。 设设置置检检查查约约束束(CHECKCHECK),学学生生表表定定义义了了三三个个CHECKCHE
68、CK约约束束,第第一一个个约约束束是是学学号号学学号号,只只能能有有7 7个个字字符符构构成成,其其中中第第一一个个必必须须是是S S,后后面面全全部部是是数数字字,逻逻辑辑表表达达式式为为“(学学号号 LIKE LIKE S0-90-90-90-90-S0-90-90-90-90-90-990-9)”。单单击击“CHECKCHECK约约束束”选选项项卡卡,在在“CHECKCHECK约约束束”对对话话框框中中新新建建约约束束。见见图图4-84-8。 42计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Serv
69、er 20053数据表结构创建实例数据表结构创建实例 图4-6 表设置快捷菜单图4-7 “索引/键”属性对话框 43计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例 图4-8 “CHECK约束”属性对话框 44计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例建建立立学学号号的的约约束束:单单击击“添添加加”
70、,系系统统自自动动给给定定一一个个约约束束名名, 可可在在“标标识识- -(名名称称)”处处改改名名为为“CK_CK_学学生生表表_ _学学号号”,然然后后在在“常常规规- -表表达达式式”行行单单击击 ,出出现现约约束束表表达达式式文文本本框框, 然然后后在在约约束束表表达达式式文文本本框框中中输输入入(学学号号 LIKE LIKE S0-90-90-90-90-90-S0-90-90-90-90-90-99)。)。建立身份证约束:单击建立身份证约束:单击“添加添加”,系统自动给定一个约束名,同上,系统自动给定一个约束名,同上,改名为改名为“CK_CK_学生表学生表_ _身份证号身份证号”,
71、然后在约束表达式文本框中输入:,然后在约束表达式文本框中输入:(身份证号(身份证号 LIKE LIKE 00 9090 9090 9090 9090 9090 9090 9090 9090 9900 9090 9090 9090 9090 9 9 00 9090 9090 9090 99)。)。建立移动电话的约束与上类似。建立移动电话的约束与上类似。 45计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20053数据表结构创建实例数据表结构创建实例方法二:使用方法二:使用SQL命令创建命令创建(
72、1 1)创建表并包含完整性约束定义。)创建表并包含完整性约束定义。 CREATE TABLE CREATE TABLE 课程表课程表( ( 课号课号 CHAR(6) NOT NULL,CHAR(6) NOT NULL, 课名课名 VARCHAR(30) NOT NULL,VARCHAR(30) NOT NULL, 学分学分 INT CHECK(INT CHECK(学分学分=1 and =1 and 学分学分=5),=5), 教材名称教材名称 VARCHAR(30),VARCHAR(30), 编著者编著者 CHAR(8),CHAR(8), 出版社出版社 VARCHAR(20),VARCHAR(2
73、0), 版号版号 VARCHAR(20),VARCHAR(20), 定价定价 money,money, CONSTRAINT PK_ CONSTRAINT PK_课程表课程表_ _课号课号 PRIMARY KEY(PRIMARY KEY(课号课号),), CONSTRAINT CK_ CONSTRAINT CK_课程表课程表_ _课号课号 CHECK(CHECK(课号课号 LIKE C0-LIKE C0-90-90-90-90-9)90-90-90-90-9)46计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL
74、 Server 20054.4.2 数据表结构的管理数据表结构的管理 1修改数据表结构修改数据表结构 表表结结构构创创建建以以后后,在在使使用用的的过过程程中中经经常常会会发发现现原原来来创创建建的的表表可可能能存存在在结结构构、约约束束等等方方面面的的问问题题,在在这这种种情情况况下下,需需要要对对原原表表进进行行修修改改。如如果果用用创创建建一一个个新新表表的的方方法法替替换换原原表表,将将造造成成表表中中数数据据的的丢丢失失,而而通通过过修修改改表表则则可可以以在在保保留留表表中中原原有有数数据据的的基基础础上上修修改改表表结结构构,打打开开、关关闭闭或或删删除除已已有有约约束束,或或增
75、增加加新新的的约束等。约束等。 修改表结构有两种方法:修改表结构有两种方法: 一种是利用资源对象管理器,自己试。一种是利用资源对象管理器,自己试。 一种是使用一种是使用SQL命令。命令。 47计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.4.2 数据表结构的管理数据表结构的管理使用使用SQLSQL命令修改表。命令修改表。语法格式:语法格式:ALTER TABLE ADD完整性约束完整性约束|ALTER COLUMN 列名列名 新类型新类型|DROP COLUMN 列名列名|ADD
76、PRIMARY KEY(列名列名,)|ADD FOREIGN KEY(列名列名) REFERENCES 表名(列名)表名(列名)|ADD CONSTRAINT 约束名约束名. |DROP CONSTRAINT 约束名约束名 48计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.4.2 数据表结构的管理数据表结构的管理【例例4-2】将教学管理数据库中的学生表的属性性别的长度将教学管理数据库中的学生表的属性性别的长度改为改为2。 其其SQL语句的程序清单如下:语句的程序清单如下:USE 教
77、学管理教学管理 -打开教学管理数据库打开教学管理数据库GOALTER TABLE 学生表学生表 ALTER COLUMN 性别性别 CHAR(2) -修改属性列性别修改属性列性别49计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.4.2 数据表结构的管理数据表结构的管理【例例4-3】向向教教学学管管理理数数据据库库中中的的学学生生表表增增加加属属性性入入学学时时间间,其其数数据据类类型型为为日日期期型型,增增加加年年龄龄属属性性,其其类类型型为整型,取值为为整型,取值为1313707
78、0。USE 教学管理教学管理GOALTER TABLE 学生表学生表 ADD 入学时间入学时间 DATETIME, 年龄年龄 INT INT CONSTRAINT CONSTRAINT CK_CK_学学生生表表_ _年年龄龄CHECKCHECK(年年龄龄=13 AND=13 AND年龄年龄7070) 50计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.4.2 数据表结构的管理数据表结构的管理2数据表结构的删除数据表结构的删除可以用企业管理器或可以用企业管理器或SQLSQL语句删除基本
79、表。语句删除基本表。方法一:使用企业管理器方法一:使用企业管理器 选选中中要要删删除除的的数数据据表表,单单击击右右键键,在在快快捷捷菜菜单单上上选选择择“删删除除”。 在在“除去对象除去对象”对话框中,单击对话框中,单击“全部除去全部除去”。方法二:使用方法二:使用SQLSQL命令命令SQLSQL命令的一般格式为:命令的一般格式为:DROP TABLE 51计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005Thank you very much!Thank you very much!本本章章结结束束!下一章下一章 52计算机学院计算机学院 郭占龙郭占龙