2022年asp与sql网页数据库程序设计- 2.pdf
《2022年asp与sql网页数据库程序设计- 2.pdf》由会员分享,可在线阅读,更多相关《2022年asp与sql网页数据库程序设计- 2.pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6 表的创建6-1 查看数据的内容6-2 数据类型6-3 创建表6-4 表索引的管理6-5 创建关联6-6 数据输入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 37 页 - - - - - - - - - ASP 与 SQL 网站数据库程序设计136 创建好数据库之后,接下来必须决定要在数据库内存放哪些信息,并且将这些信息加以整理规划,创建成一个或多个表。本章我们将介绍如何创建表,以及一些相关的设置。6-1 查看数据的内容在开始介绍表的创建之前,让我们先了解一下表的结
2、构,查看表中的数据内容。在Enterprise Manager 中可以利用打开表功能查看整个表中包含的数据,打开表属性窗口视图的结构及相关信息。6-1-1使用“打开表”功能查看数据内容如果想要知道某表内所包含的信息内容,可以利用该表快捷菜单中的“打开表”命令来达成。在“打开表”菜单项中包含三个选项,选择“返回所有行”命令会完整地显示整个表的内容;选择“返回首行”命令,可以自行指定要显示的数据条数;选择“查询”命令则可以设置条件,筛选出符合条件的数据。图 6-1 选择“返回所有行”命令例如,假若我们想要看整个表的内容,可以在该表上按鼠标右键,在打开的快捷菜单中选择“打开表”|“返回所有行”命令,
3、这时它就会打开一个表窗口,显示该表内包含的所有记录。图 6-2 为执行打开范例数据库pubs 中的 sales表所显示的画面,我们可以发现表就像是一个二维的表格一样,它是由多条具有相同数据结构的记录所构成的。表格中的每一行代表一条唯一的记录,而每一条记录都是由stor_id,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - 第 6 章表的创建137 order_num,order_date 等信息项目所构成的(这些信息又称为数据
4、列或字段)。图 6-2 表画面6-1-2查看表属性在表子目录下选取要查看的表后,按下工具栏上的属性工具按钮, 这时会打开如图6-3 所示的“表属性”对话框,由这个对话框中可以知道表的创建日期、 使用的文件组、 包含的数据条数 (数据行行数) 等信息, 以及列的结构。由下图的“表属性”对话框中,可以发现,定义表就等于是在定义表内所要包含的信息项目(列),定义每一个列的属性与规则,包含列的名称、数据类型、长度大小、是否允许NULL 等。其中,数据类型的设置与列允许的数据内容有关,在设置时应根据该列的数据特性、可能会包含的内容来决定。图 6-3 表属性名师资料总结 - - -精品资料欢迎下载 - -
5、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 37 页 - - - - - - - - - ASP 与 SQL 网站数据库程序设计138 6-2 数据类型在 Microsoft SQL Server中,每一个列、局部变量、表达式以及参数等都具有其特定的数据类型(如 integer,character,money 等),用来指定该对象可以存放的数据类型,以及决定数据所占用的空间。SQL Server 2000 定义了许多的数据类型,用户可以根据数据的特性选择一种最适合的数据类型。例如,要存放文字的列,必须设置为文本类型
6、的数据类型;要存放数字数据作数值运算的列,应该设置为数值类型的数据类型。SQL Server 2000 系统支持的数据类型说明如下。6-2-1数值数据数值数据可以用来做数值运算处理,当我们要存放纯数字的数据,或是要对存放的内容作数值运算时,可以将它定义成数值的数据类型。SQL Server 2000 提供许多可以存放数值数据的数据类型,如Int,Decimal,Real 等。这些数值数据类型的特性及数值范围说明如表6-1 所示。表 6-1 数据类型的特性及取值范围数据类型使用字节数据范围整数数值tinyint 1 Bytes 0 255 smallint 2 Bytes 32,768 32,7
7、67 int 4 Bytes 231 (2311) bigint 8 Bytes 263 (2631) 小数数值decimal (numeric) 最大至 38 Bytes ( 1038 +1)( 10381)浮点数值float 单精度: 4 Bytes ;双精度: 8 Bytes 1.79E + 308 1.79E + 308 real 4 Bytes 3.40E + 38 3.40E + 38 从表 6-1 中可以发现float 浮点数据类型可分为单精度与双精度两种,一般来说,除非是在进行科学运算需要较精确的值,需要用到双精度,否则一般使用单精度就足够了。另外,使用浮点数据类型可能会产生部
8、分位数数据遗失的问题,例如,单精度数据类型,当数值位数超过7 位时,只会保留最前面的7名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 37 页 - - - - - - - - - 第 6 章表的创建139 位数字 (数值 123456789 保存成单精度后会变成123456700) ;双精度数据类型只会保留15 位数字。当我们要指定数值数据的数据类型时,可以先通过存放的数值数据是否包含小数来决定使用整数类型的数据类型,或是带有小数的数据类型,接着再根据数值范围选择一个最适
9、当的数据类型。例如,年龄数据是一个数值数据,它通常是以正整数来表示,而且它的数值范围通常不会超过255, 为了节省空间我们可以将它定义成tinyint 数据类型;平均成绩数据为0100 之间的数值,通常保留两位小数,可以将它定义为5 Bytes 的 Decimal 数据类型( 19 位数) , 或是单精度浮点数据类型float 或 real。6-2-2货币数据货币数据是专门针对金额数据而定义的,它可以说是一种特殊的小数数值数据,固定为4 位小数。在SQL Server 中提供两种货币数据类型:money 与smallmoney,这两种货币数据类型的特性说明如表6-2 所示。表 6-2 两种货币
10、数据类型的说明数据类型使用字节数据范围Money 4 Bytes 263( 263 1)smallmoney 8 Bytes 214.748,3648 +214,748.364 6-2-3日期数据日期数据是用来表示日期与时间,当我们要在表中存放日期时间信息,如出生日期、数据传入系统的时间等,就可以将列定义为日期时间数据类型。在SQL Server 中,根据占用的字节以及数据的精度,定义了两种日期时间数据类型 datetime 与 smalldatetime ,它们的特性说明如表6-3 所示。表 6-3 两种日期时间数据类型说明数据类型使用字节数据范围精度Datetime 4 Bytes 175
11、3 年 1 月 1 日到9999 年 12 月 31 日三百分之一秒名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - ASP 与 SQL 网站数据库程序设计140 续表数据类型使用字节数据范围精度smalldatetime 8 Bytes 1900 年 1 月 1 日到2079 年 6 月 6 日一分钟其实这种日期时间数据在系统中是以数值数据的形式存在的,数值整数的部分是用来指定该日期距离基准日的天数。例如,系统的基准日为190
12、0/1/1,数值 30,表示从 1900/1/1 算起的第 30 天,也就是 1900/1/30;小数部分则是用来表示时间,例如,数值0.5 表示半天,也就是12:00。所以日期时间数值30.5就是指 1900 年 1 月 30 日的上午 12:00。6-2-4字符串数据前面介绍的数值数据类型(含货币数据)只能允许输入数字,而字符串数据内则可以包含文字、数字或其他的特殊符号,几乎所有可以在计算机上输入的信息都可以视为是字符串数据。在定义字符串数据类型时,必须指定一个数值,用来表示字符串数据的字符长度。在 char, varchar 与 text 等字符串类型中,不论是字母、数字或中文字,每一个
13、字符都占用一个字节空间。1. char 数据类型char 数据类型是用来存放固定长度的字符串内容,其最大长度可达8,000个字符( 8K) 。当我们要保存长度固定的数据(如代号)时,可以将它定义为char 数据类型。当我们在char 数据类型内存入长度小于指定大小的字符串时,它将会自动在字符串后面补空格填满整个长度,使数据长度固定。2. varchar 数据类型varchar 数据类型较char 数据类型有弹性,它可以随着存放的数据长度大小自动调整其占用的数据空间,当存入的数据长度小于指定的大小时,它不会在数据后面补空格,而是以实际存入的数据长度保存。其最大长度可设置为8,000 个字符。当数
14、据内容长度的变异性较大时,varchar 数据类型将是较好的选择,它可以减少不必要的空间浪费。例如,在产品数据的产品简述上,有些产品可能需名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - 第 6 章表的创建141 要使用 200 到 300 个字来描述, 有些产品则只需要短短20 到 30 个字就可以介绍完,这时若将它定义为char 数据类型,每一个产品的产品简述都固定占用200 到 300 个字符长度;如果定义为varchar
15、,则是占用实际输入的简述内容的字符长度。3. text 数据类型char 与 varchar 数据类型最大只能定义到存放8000 个字符( 8K) ,如果要存放的数据长度超过这个限制时,可以使用text 数据类型。 text 数据类型和varchar 数据类型一样, 都是一个可变长度的数据类型,它允许的最大长度限制为 2311(2,147,483,647)个字符。6-2-5Unicode 数据前面介绍的三种字符串类型是使用数据库的字符集来定义字符串的内容,当要将这些数据转移到其他使用不同字符集的数据库时,数据的转换可能会发生错误,产生乱码。为了使数据能够在不同数据库(字符集)间顺利地转移,可以
16、使用Unicode 标准字符形式来定义字符串数据,所有的字符集的字符都有对应于这个标准的定义。Unicode 字符串类型包含nchar, nvarchar 与 ntext 三种数据类型, 分别对应前面的 char,varchar 与 text 数据类型。不过,这种Unicode 标准是以2 个字节代表一个字符,因此它可以允许的数据长度将会是非Unicode 字符串类型的一半,也就是最大长度4,000 个字符。 如果预计要保存的数据长度将会大于4,000个字符,就必须将数据类型定义为ntext。6-2-6Binary 数据Binary 数据是以十六进制的方式来表示数据,它可以接受1 9 的数字,
17、与 AF 间的字母。通常我们可以利用它来表示图片或影像数据,或者是存放特殊格式化的文件数据,如Word,Excel,PDF 文件等。SQL Server 提供 binary,varbinary 以及 image 等三种存放Binary 数据的数据类型,其中binary 数据类型为一固定长度的数据类型,它会以固定的长度处理数据, 当数据长度不足时会自动填补到指定的固定长度。varchar 与 image 数据类型则是可变长度的数据类型,会随着数据内容调整长度。一般来说,使用varchar 数据类型应该已经足够,如果预期数据长度将会超过8KB ,就要改用image 数据类型。名师资料总结 - -
18、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 37 页 - - - - - - - - - ASP 与 SQL 网站数据库程序设计142 表 6-4 数据类型长度变动数据最大长度限制binary 固定长度8,000 个字节barbinary 可变长度8,000 个字节image 可变长度231 1 (2,147,483,647) 个字节6-2-7其他特殊数据类型前面介绍的几个数据类型,其定义内容非常明确,如要保存日期、时间数据就使用日期时间数据类型、要存放文字就使用字符串数据类型、要存放数值
19、就使用数值类型的数据类型等。除了这些数据类型外,SQL Server 还提供了一些无法分类的特殊数据类型,将常用到的数据类型说明如下。1. bit 数据类型bit 数据类型就好像我们在程序语言中常用的Boolean 布尔数据类型一样,如果数据内容只有True 或 False,1 或 0 两个值时,可以将它定义为bit 数据类型。例如,在产品数据中,可以利用它来表示该货品是否为新上市;在人员基本数据中,可以利用它来表示人员性别为男生或女生等。实际上 bit 数据类型是以一个bit 的位空间来存放数据,它的内容只有可能是 0 或 1 两种,我们必须自行定义0 代表什么、 1 代表什么,例如,在“新
20、上市”列中,可以定义数值为1 时表示 True(该货品为新上市) ,数值为0 表示False(货品非新上市) 。2. timestamp 数据类型timestamp 数据类型是一个binary 的递增数据类型,它会在数据行加入或更改时自动产生,产生的值在数据库中是唯一的,不会有重复,通常我们可以使用它来作为列的版本戳记。由于这个时间戳记会随着数据行的变动而更改,因此最好不要将它设置为表的索引键,而且在一个表中也应该只会有一个timestamp 数据类型的列。timestamp 列的内容是根据DBTS 函数所取得的目前数据库时间戳记数值而更新的,与数据行插入或更改的日期与时间没有直接的关系。如果
21、用户想要自动记录表中数据修改的时间,应该要使用datetime 或 smalldatetime 数据类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 37 页 - - - - - - - - - 第 6 章表的创建143 型,并利用事件触发程序来写入日期时间数据。3. uniqueidentifier 数据类型uniqueidentifier 数据类型是一个包含16 字节的十六进制数字,用来表示全域唯一标识项(GUID) 。这个 GUID 在不同的机器上、时间上都不同,因
22、此对于一个跨国际、具有多台数据库服务器的企业,使用GUID 作为辨识码来唯一标示数据行,可以确保所有这些数据库数据的汇整不会发生数据重复的问题。在将列定义为uniqueidentifier数据类型时,必须将列的默认值设置为NEWID 函数,这样当数据列插入到表时,就会调用 NEWID 函数自动产生GUID值。4. sql_variant 数据类型sql_variant 数据类型可保存text,ntext,timestamp 与 sql_variant 以外的所有 SQL Server 支持的数据类型。 当用户无法确定表的某个列内将会存放哪种类型的数据类型时,可以将它定义为sql_variant
23、 数据类型,允许它接受任何数据类型的数据,以避免在填入数据时产生数据类型不符的错误。6-3 创建表在规划好表的结构以及列使用的数据类型之后,接下来介绍如何将规划好的表创建起来。6-3-1表设计窗口在 Enterprise Manager 管理工具中,可以利用“表设计”窗口来定义表的列属性与数据特性。 “表设计”窗口的画面如下图所示,分为上下两个窗格,上面的窗格是用来定义表中每一个列的主要属性,如名称、数据类型、长度、是否允许NULL 等;下方的窗格则可以针对选取的列,定义该列的其他数据属性,如默认值、精度、小数位数等。另外,在窗口上方的工具栏上还有一些工具按钮可以管理表的索引键、定义表间的关系
24、。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - ASP 与 SQL 网站数据库程序设计144 图 6-4 创建表窗口1. 列主要属性“列名”字段:用来唯一标识表内每一个列的名称,指定的名称绝对不能与表内的其他列名相同,也不能是Transact-SQL 的保留字, 而且在指定的名称内不能包含空格或其他的特殊符号。“数据类型”字段:用来指定存放于该表内数据的数据类型,如果要存入的数据与指定的数据类型不符,将会产生类型不符的错误。
25、可以根据要存放信息的数据特性,并根据前面介绍的数据类型说明,为列找到一个适合的数据类型。“长度”字段:用来指定列的字节数,随着指定的数据类型的不同,这个长度字段所代表的含义也会有所不同。在字符串数据类型中,这个字段值就代表字符串的长度,这时可以修改这个字段值,调整适当的字符串长度来存放数据。对于数值数据类型来说,其所占的字节数是固定的,因此无法更改这个字段值。“允许空”字段:用来设置是否允许这个列的内容为空,可以利用鼠标点取的方式选中或取消这个选项。当列被设置为允许为空值时,如果没有为这个列指定任何的数据,将会使用空作为默认值存放到列。反之,如果设置列不允许空,就必须自行为列指定默认值,否则在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年asp与sql网页数据库程序设计- 2022 asp sql 网页 数据库 程序设计
限制150内