数据库表和数据库关系的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五讲数据库表和数据库关系的实现
5.1数据类型
定义数据表的字段、声明程序中的变量时,都需要为他们设置一个数据类型。目的是指定该字段或变量所存放的数据类型,以及需要多少空间。
5.1.1整型:可以用来存放整数数据的字段或变量。有bigint、int、smallint、
两种类型,这两种类型完全相同,一般建议使用numeric。
使用numeric或decimal时,必须指明精确度(即全部有效位数)与小数点位数,例如:numeric(5,2)表示精度为5,总共位数为5位,其中3位整数及2位小数。若不指定,则默认值为numeric(18,0)。精确度可指定的范围为1~38,
取其“近似值”。例如:23456646677799变成 2.3E+13,此类数据类型有float 和real两种。注意:使用float和real类型,若数值的位数超过其有效位数的限
其中varchar及text的实际存储长度会依数据量而调整。如:varchar(10)表示最多可存储10字节,但若只填入5个字符,那么只会占用5字节。char与varchar 最多只能存储8000个字符,若数据超过此长度,请改用text类型。
在使用char及varchar时必须指定字符长度,例如char(50)、varchar(50);
的数据与字符串类型相当类似,Unicode字符串的一个字符是用2个字节存储,而一般字符串是一个字符用1个字节存储。此类数据类型有nchar、nvarchar、ntext。
在使用nchar及nvarchar时必须指定字符长度,例如nchar(50)、nvarchar
据多用16进制表示,而且要加上0x字头)。此类数据类型有binary、varbinary 与image,其特性分别相当于字符串类型的char、varchar、text。image类型还可以用来存放word文件、excel电子表格、以及位图、GIF和JPEG文件。
使用binary及varbinary时须指定字符长度,例如binary(50)、varbinary(30);若未指定,默认值为1。Image类型则不必指定长度。
两种。rowversion(又称timestamp)是记录数据更新的时间戳,当某条记录有变动时,该条记录的rowversion字段便会自动产生新值,此值会是整个数据的唯一值。Uniqueidentifier是全球唯一识别码,可以用来识别每一条记录唯一性。
可以用来存储前述的各种数据类型,但text、ntext,image、timestamp和sql_variant 类型的数据,若某一字段会存储不同数据类型时,即可将字段设为sql_variant 类型,此为SQL SERVER 新增的数据类型。
cursor可以用来存储查询结果的数据集,其内数据可供单条取出。table可用
数据表字段。
XML:使你可以在SQL Server 数据库中存储XML 文档和片段。XML 片段是缺少单个顶级元素的XML 实例。可以创建xml 类型的列和变量,并在其中存储XML 实例。xml 数据类型实例的存储表示形式不能超过 2 GB。
5.2数据表的建立
SQL Server 的每个数据库最多可存储20 亿个表,每个表可以有1024 列。表的行数及总大小仅受可用存储空间的限制。每行最多可以存储8,060 字节。如果创建具有varchar、nvarchar 或varbinary 列的表,并且列的字节总数超过8,060 字节,虽然仍可以创建此表,但会出现警告信息。如果试图插入超过8,060 字节的行或对行进行更新以至字节总数超过8,060,将出现错误信息并且语句执行失败。
5.2.1利用设计表窗口建立新数据表
在企业管理器中,可以用新表设计窗口设计表
(1)定义数据表的字段:
设计表的窗口分成上下两个窗口:上窗口定义字段的一般属性,下窗口定义字段的特别属性。一般属性是所有字段都具有的属性,特别属性需视字段类型而定。
(2)设置Primary key(操作示例)
注意设置复合Primary key。
(3)保存数据表
5.3自动计数和标识符的实现
标识符列中包含的值是由数据库系统自动创建的一些序号,每一个序号都唯一标识了表中的一个行。一个表中只能有一个标识符列和一个全球唯一的标识符列。
5.3.1 IDENTITY属性:
使用IDENTITY属性可以创建标识列,设置标识种子用来设置起始值。设置标识递增量,用来自动递增下个标识符。
一个表中只能有一个列可以使用IDENTITY属性定义,并且这个列必须使用decimal、int、numeric、smallint、bigint和tinyint数据类型。
标识符列不允许使用空值,并不能包含DEFAULT定义或对象。
5.3.2 全球唯一标识:GUID
IDENTITY属性只能保证标识符值在定义的表中的唯一性,不能在所有互联网计算机中唯一。所以应该使用ROWGUIDCOL属性,全球唯一标识符(uniqueidentifier)数据类型和NEWID函数。
一个表中只能有一个列可以使用ROWGUIDCOL属性定义的列。
SQL SERVER 不能自动为使用ROWGUIDCOL属性定义的列产生值,必须创建一个DEFAULT定义,并使用NEWID()函数产生全球唯一ID。
5.4在设计表窗口修改数据表
(1)插入空白字段
(2)移动数据行(拖动列)
(3)删除数据行
(4)设置数据表属性
A、名称:显示目前所编辑的数据表名称。
B、架构:显示数据表的架构信息。一般是创建此表的人或架构信息。
C、服务器名:
D、数据库名称:显示数据库的名称。
E、标识列:显示数据表中设置标识属性的字段。亦可在此栏的列表框中选取欲设置标识属性的字段,只有可设置标识属性类型的字段,才会列在列表框中)。