网络数据库情景3Word文件下载.docx

上传人:b****5 文档编号:20785648 上传时间:2023-01-25 格式:DOCX 页数:33 大小:38.01KB
下载 相关 举报
网络数据库情景3Word文件下载.docx_第1页
第1页 / 共33页
网络数据库情景3Word文件下载.docx_第2页
第2页 / 共33页
网络数据库情景3Word文件下载.docx_第3页
第3页 / 共33页
网络数据库情景3Word文件下载.docx_第4页
第4页 / 共33页
网络数据库情景3Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

网络数据库情景3Word文件下载.docx

《网络数据库情景3Word文件下载.docx》由会员分享,可在线阅读,更多相关《网络数据库情景3Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

网络数据库情景3Word文件下载.docx

(一)数据类型

SQLServer2005具有丰富的数据类型,数据表中每一列必须声明相应的数据类型。

表3-2列出了常用的数据类型。

表3-2SQLServer字段的数据类型

包含

整数数据类型

int或integer﹑smallint﹑tinyint﹑bigint

浮点数据类型

real﹑float﹑decimal﹑numeric

二进制数据类型

binary﹑varbinary

逻辑数据类型

bit

字符数据类型

char﹑nchar﹑varchar﹑nvarchar

文本和图形数据类型

text﹑ntext﹑image

日期和时间数据类型

datetime﹑smalldatetime

货币数据类型

money﹑smallmoney

特定数据类型

timestamp﹑uniqueidentifier

用户自定义数据类型

sysname

新数据类型

sql_variant﹑table

下面分类讲述各种数据类型:

1.整数数据类型

整数数据类型是最常用的数据类型之一。

(1)int/integer:

表示从-231(-2,147,483,648)到231-1(2,147,483,647)之间的整型数据(所有数字),存储大小为4B。

(2)smallint:

表示从-215(-32,768)到215-1(32,767)之间的所有整型数据,每个smallint类型的数据存储大小为2B。

(3)tinyint:

表示从0到255之间的所有正整数,每个tinyint类型的数据存储大小为1B。

(4)bigint:

表示从-263(-9223372036854775808)到263-1(9223372036854775807)之间的所有正负整数每个bigint类型的数据占用8个字节的存储空间。

2.浮点数据类型

浮点数据类型用于存储十进制小数。

浮点数值的数据在SQLServer中采用上舍入方式进行存储,所谓上舍入是指当且仅当要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1,并进行必要的进位,若一个数是上舍入数其绝对值不会减少。

(1)real:

可精确到第7位小数,其范围为从-3.40E+38到3.40E+38的浮点数字数据,存储大小4B。

(2)float:

可精确到第15位小数其范围为从-1.79E+308到1.79E+308,存储大小8B。

(3)decimal:

可以提供小数所需要的实际存储空间,但也有一定的限制您可以用2到17个字节来存储从-1038-1到1038-1之间的数值,可将其写为decimal[(p[,s])]的形式,p和s确定了精确的比例和数位,其中表示可供存储的值的总位数,不包括小数点,缺省值为18,s表示小数点后的位数,缺省值为0。

例如:

decimal(10,5),表示共有10位数,其中整数5位,小数5位。

(4)numeric:

与decimal数据类型完全相同。

3.二进制数据类型

(1)binary:

用于存储二进制数据,其定义形式为binary[(n)],n表示数据的长度取值为1到8000,存储空间为n+4B。

(2)varbinary:

定义形式为varbinary[(n)],它与binary类型相似,n的取值也为1到8000,若输入的数据过长将会截掉其超出部分,不同的是varbinary数据类型具有变动长度的特性,因为varbinary数据类型的存储长度为实际数值长度n+4个字节,当binary数据类型允许NULL值时将被视为varbinary数据类型,一般情况下,由于binary数据类型长度固定,因此它比varbinary类型的处理速度快。

(3)image:

用于存储大量的二进制数据,其理论容量为2,147,483,647个字节,其存储数据的模式与text数据类型相同,它通常用来存储图形等对象连接和嵌入对象,在Image数据类型中,存储的数据是以位字符串存储的,不是由SQLServer解释的,必须由应用程序来解释。

例如,应用程序可以使用BMP、TIEF、GIF和JPEG格式把数据存储在Image数据类型中。

4.逻辑数据类型bit

bit数据类型占用1个字节的存储空间,其值为0或1,如果输入0或1以外的值将被视为1,bit类型不能定义为NULL值,所谓NULL值是指空值或无意义的值。

5.字符数据类型

字符数据类型是使用最多的数据类型,可以用来存储各种字母﹑数字符号﹑特殊符号,一般情况下使用字符类型数据时,须在其前后加上单引号'

或双引号”。

(1)char:

用来定义固定长度的非unicode标准字符数据。

定义形式为char[(n)],n表示所有字符所占的存储空间,n的取值为1到8000,即可容纳8000个ANSI字符。

若不指定n值则系统默认值为1。

(2)nchar:

定义形式为nchar[(n)],它与char类型相似,不同的是nchar数据类型n的取值为1到4000。

(3)varchar:

用来定义可变长度的非unicode标准字符数据。

v定义形式为varchar[(n)],它与char类型相似n的取值也为1到8000,若输入的数据过长将会截掉其超出部分,不同的是varchar数据类型具有变动长度的特性,因为varchar数据类型的存储长度为实际数值长度,若输入数据的字符数小于n,则系统不会在其后添加空格来填满设定好的空间。

(3)nvarchar:

定义形式为nvarchar[(n)],与varchar类型相似。

6.文本数据类型

这类数据类型用于存储大量的字符

(1)text:

用来定义可变长度的非unicode数据,其最大长度为230-1个字节,用于存储大量文本数据。

(2)ntext:

与text类型相似,不同的是ntext类型采用unicode标准字符集,其最大长度为231-1个字节。

7.日期和时间数据类型

(1)datetime:

可以存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的所有日期和时间,其精确度可达三百分之一秒即3.33毫秒。

(2)smalldatetime:

与datetime数据类型相似,但其日期时间范围较小,为从1900年1月1日到2079年6月6日,精度较低,只能精确到分钟。

8.货币数据类型

货币数据类型用于存储货币值。

(1)MONEY:

有4位小数的DECIMAL值,其取值从-263到263-1,数据精度为万分之一货币单位,MONEY数据类型使用8个字节存储。

(2)smallmoney:

类似于money类型,但其存储的货币值范围比money数据类型小,其取值从-214,748.3648到214,748.3647存储空间为4个字节

9.用户自定义数据类型

用户定义的数据类型基于在MicrosoftSQLServer中提供的数据类型。

当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。

当创建用户定义的数据类型时,必须提供三个数:

数据类型的名称、所基于的系统数据类型和数据类型的可空性。

(1)创建用户定义的数据类型

创建用户定义的数据类型可以使用Transact-SQL语句。

系统存储过程sp_addtype可以来创建用户定义的数据类型。

其语法形式如下:

sp_addtype,[,system_data_bype][,'

null_type'

]

其中,type是用户定义的数据类型的名称。

system_data_type是系统提供的数据类型,例如decimal、int、char等等。

null_type表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'

NULL'

、'

NOTNULL'

或者'

NONULL'

【例3.1】创建一个用户定义的数据类型ssn,其基于的系统数据类型是变长为11的字符,不允许空。

命令如下:

Execsp_addtypessn,'

varchar(11)'

'

NotNull'

【例3.2】创建一个用户定义的数据类型birthday,其基于的系统数据类型是datetime,允许空。

命令如下:

Execsp_addtypebirthday,datetime,'

Null'

(2)删除用户定义的数据类型

当用户定义的数据类型不需要时,可删除。

删除用户定义的数据类型的命令是sp_droptype。

【例3.3】假定用户已定义了一个数据类型ssn,则删除该数据类型的命令为:

Execsp_droptype'

ssn'

注意:

当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。

(二)表的概念

表是数据存储的地方,在SQLServer中所有的数据存储都基于表,表是数据库中最重要的部分。

表由行和列组成。

表中的一行称为一条记录,表中的一列称为一个字段。

每个SQLServer数据库可容纳多达20亿个表,每个表中至多可以有1024列,每一行最多允许有8086个字节。

行数和表的大小只受服务器中可用存储空间的限制。

SQLServer2005的数据表可分为用户表和系统表两种类型。

用户表是数据库用户根据自己的设计创建的表,用于存放用户的数据,系统表则是SQLServer2005为实现数据库维护而创建的表,任何用户都不应该直接修改系统表,否则会导致数据库无法使用。

(三)数据表的创建

1.使用企业管理器创建表

在企业管理器中,可在表设计器中创建数据表,基本步骤包括打开表设计器、定义字段、定义主关键字和保存等。

在要创建表的数据库中选择“表”对象后,单击右键,从快捷菜单中选择“新建表”选项;

或在工具栏中选择图标,即会出现定义列对话框。

表设计器窗口分为上下两部分,上半部分用于定义字段的主要属性,包括列名、数据类型(将在后面具体介绍)、长度和允许空等,下半部分用于定义字段的特殊属性。

在此可以设定表的列名、数据类型、精度、缺省等属性。

在该对话框中可以定义字段。

下面列出了字段的各种属性的含义。

●列名:

定义字段名称,一个表中列名不能重复。

●数据类型:

指定字段的数据类型。

可以是系统数据类型或用户定义数据类型。

●长度:

定义字段可存放的数据的长度,单位为字节。

●允许空:

定义该字段值是否可以为NULL,也就是该字段是否可以不输入数据。

单击允许空单元格,出现一个选中标记,表示字段值允许为NULL,如果没有选中标记,则不允许为NULL。

表设计器的下半部分是特定列的详细属性,包括是否是标识列、是否使用默认值等。

●描述:

定义字段的说明信息。

●默认值:

定义字段的默认值。

如果在输入记录时没有指定该字段的值,便将该字段设置为默认值。

●精度:

定义decimal和numeric类型字段的最大数字个数。

其他数值类型的精度都是固定的。

●小数位数:

定义decimal和numeric类型字段的小数位数。

●标识:

定义是否允许字段自动编号,其值可以为“否”、或“是(不用于复制)”。

都表示允许字段自动编号,只是后者在通过复制方法添加数据时不自动编号。

●标识种子:

定义字段自动编号的初值,默认值为1。

●标识递增量:

定义字段自动编号的递增量,默认值为1。

●RowGuid:

设置uniqueidentifier类型字段是否由SQLServer自动产生一个全局惟一字段值。

如果该属性设置为“是”,则默认值自动设置为(newid())。

●公式:

定义计算字段的表达式。

在定义表达式时,字段名称应使用[]括起来,例如,[a]+[b]+10,其中a,b分别为字段名称。

●排序规则:

定义字段的排序规则。

●说明:

上述属性并不是对每一个字段都适用,不同数据类型的字段具有不同的属性。

如果该属性不适用于该字段,设计器将以灰色显示该属性,并且不允许用户修改。

2.使用Transact-SQL语句创建数据表

用CREATETABLE命令可以创建表。

其语法如下:

CREATETABLE[database_name.[owner].|owner.]table_name

{<

column_definition>

/*列的定义*/

|column_nameAScomputed_column_expression/*定义计算列*/

|<

table_constraint>

}/*指定表的约束*/

[ON{filegroup|DEFAULT}]/*指定存储表的文件组*/

[TEXTIMAGE_ON{filegroup|DEFAULT}]

/*指定存储text,ntext和image类型数据的文件组*/

})

说明:

<

:

:

=

{column_namedata_type}/*指定列明、类型*/

[COLLATE<

collation_name>

]/*指定排序规则*/

[[DEFAULTconstant_expression]/*指定默认值*/

|[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]]

/*指定默认值*/

[ROWGUIDCOL]/*指定列为全局标识符列*/

[<

column_constraint>

][...n]/*指定列的约束*/

其中个别参数说明如下:

●databasename:

指定新建的表属于哪个数据库。

如果不指定数据库,databasename默认为当前数据库。

●owner:

指定数据库所有者的用户名。

默认为数据表创建者在数据库中的名称。

指定的数据表所有者必须在数据库中具有创建表权限,否则不能创建数据表。

●tablename:

指定新建的表的名称,最长不超过128个字符。

●columnname:

指定列的名称。

●computedcolumnexpression:

指定计算列(Computedcolumn)的列值的表达式

●ON{filegroup|DEFAULT}:

指定存储表的文件组名。

如果使用了DEFAULT选项或省略了ON子句,则新建的表会存储在默认文件组中。

●TEXTIMAGE_ON:

指定TEXT,NTEXT、和IMAGE列的数据存储的文件组。

如果无此子句,这些类型的数据就和表一起存储在相同的文件组中。

●data_type:

定义字段数据类型和长度,长度需要使用括号()括起来。

●constantexpression:

列缺省值的常量表达式,可以为一个常量或系统函数或NULL。

●IDENTITY:

定义字段标识属性,允许字段自动编号。

一个表中只能有一个IDENTITY列。

●Seed:

指定IDENTITY列的初始值。

●Increment:

指定IDENTITY列的增量。

●NOTFORREPLICATION:

指定列的IDENTITY属性在把从其已表中复制的数据插入到表中时不发生作用,即不足的生成列值,使得复制的数据行保持原来的列值。

一个表至少有一列,但最多不超过1024个列;

每个数据库中最多可以创建200万个表;

表在存储时使用的计量单位是盘区(Extent)。

一个盘区分为8个数据页,每页8KB字节。

在创建新表时,会分配给它一个初始只为一个盘区的存储空间。

当增加表的存储空间时,以盘区为单位增加。

(一)按照任务要求创建product(产品信息)表

方法一:

利用企业管理器实现

其操作步骤如下:

1.打开SQLServer企业管理器。

2.展开companyinfo数据库节点,用鼠标右击“表”对象,在打开的快捷菜单中执行【新建表】命令。

3.在打开的“表设计器”对话框中,依次设定表的列名、数据类型、精度、缺省等属性,本任务中,将“产品ID”字段设置为主键,其方法是选中“产品ID”,单击工具栏上的钥匙型的“设置主键”按钮。

4.定义完成各字段后,单击工具栏中的保存按钮,即出现的对话框。

输入表名“product”后,单击“确定”按钮。

当创建表时,必须指定表名、列名以及数据类型。

同一个表中,列名不能重复,但是,同一个数据库中不同表的列名称可以相同。

并必须为每个列都指定数据类型。

5.在企业管理器中,选种companyinfo数据库的“表”节点,可看到有product表存在。

方法二:

利用Transact-SQL语句创建实现

操作步骤:

1.在打开的“SQLServer企业管理器”窗口中,执行【工具】|【查询分析器】命令,打开“查询分析器”窗口。

2.连接数据库:

在“查询分析器”窗口的工具栏的下拉列表中,选中companyinfo数据库。

3.在查询分析器的查询窗口中输入如下:

CREATETABLEproduct(

产品IDintprimarykey,

产品名char(10)notnull,

类别IDint,

单价money

库存量int

4.单击工具栏的“”按钮,将显示“命令已成功完成”。

5.检查表是否已创建表。

在查询分析器的查询窗口中输入如下命令:

EXECsp_helpproduct

(二)按照任务2要求创建companyinfo数据库的其它数据表。

按照任务2要求,本任务中的四个表均利用Transact-SQL语句创建,其操作步骤同任务1中方法二,这里只给出相应的命令。

1.创建表名为“p_order”的产品订单表的命令如下:

CREATETABLEp_order(

订单IDintprimarykey,

产品IDint,

数量int,

雇员IDint,

客户IDint,

订货日期datetime

GO

2.创建表名为“employee”的产品信息表的命令如下:

CREATETABLEemployee(

雇员IDintprimarykey,

姓名varchar(8),

性别char

(2),

出生日期datetime,

雇佣日期datetime,

特长varchar(20),

薪水money

3.创建名为“customer”的客户表和名为“category”的类别表的命令如下:

CREATETABLEcustomer(/*创建客户表customer*/

客户IDintprimarykey,

公司名称varchar(30),

联系人姓名varchar(8),

联系方式varchar(12),

地址varchar(30),

邮编char(6)

CREATETABLEcategory(/*创建类别表category*/

类别IDintprimarykey,

类别名varchar(10),

说明varchar(16)

(三)按照任务3的要求,创建名称为DIAGRAM_p_order_product的数据库关系图,从而实现p-order表和product表间的关联。

利用企业管理器实现

操作步骤如下:

1.打开企业管理器,展开companyinfo数据库。

2.用鼠标右击companyinfo数据库的“关系图”节点,在打开的快捷菜单中,执行【新建数据库关系图】命令。

此时出现创建数据库关系图向导窗口,这个向导有助于选择主键表和外键表。

3.关闭创建数据库关系图向导,进入数据库关系图创建窗口。

4.在数据库关系图创建窗口的工具拦中,单击“在关系图上添加表”按钮。

将打开“添加表”对话框。

5.在“添加表”对话框中,选择主键表product表,并单击“添加”按钮,再选择外键表p_oreder表,并单击“添加”按钮。

然后关闭“添加表”对话框。

此时,在数据库关系图创建窗口中出现了这两个表。

6.将鼠标移动到product表中的“产品ID”左边的选择栏,单击左键,并将鼠标指针拖动到p_oreder表中的“产品ID”字段上。

7.松开鼠标左键,此时弹出“创建关系”对话框。

根据需要决定是否选择对话框中的如下选项。

其含义如下:

●创建中检查现存数据:

在创建关联时,检查外键表与主键表关联字段的数据是否一致。

如果外键表关联字段的数据在主键表关联字段中找不到,则不能创建关系。

●对复制强制关系:

设置在将数据复制到外键表中时,是否使用该关联来检查数据的有效性。

●对INSERT和UPDATE强制关系:

设置对在外键表中插入、删除或更新的数据是否检查关联字段数据的有效性。

如果外键表中存在匹配行,还将禁止删除主表的行。

●级联更新相关的字段:

设置在修改主键值时,是否自动更新该关系的外键值。

●级联删除相关的记录:

设置在删除主键表中记录时,是否自动删除外键表中关联记录。

8.设置完这些选项后,单击“确定”按钮,关闭“创建关系”对话框。

此时创建数据库关系图窗口

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1