SQL-Server实用数据库技术课件第4章_第1页
SQL-Server实用数据库技术课件第4章_第2页
SQL-Server实用数据库技术课件第4章_第3页
SQL-Server实用数据库技术课件第4章_第4页
SQL-Server实用数据库技术课件第4章_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程回顾SQLServer数据库的基本概念数据库的创建与管理数据库的附加与分离本章综述数据表是数据库中最重要的对象,用于存储数据库中的所有数据。因此,数据表的设计与实现将直接影响数据库能否合理高效地使用。本章主要介绍数据表的基本概念、数据表的设计与规划、SQLServer数据类型、数据表的创建与维护以及表中数据的管理。其中,添加数据、修改数据、删除数据是数据表中最常用、最重要的操作。

本章结构3.2创建数据库3.4分离与附加数据库

什么是数据表规划数据表数字数据类型字符串数据类型日期时间数据类型其他数据类型创建数据表及约束对象维护数据表查看数据添加记录修改记录删除记录添加数据修改数据删除数据创建数据表查看表结构修改表结构使用规则对象和默认值对象删除数据表4.3使用SSMS创建与维护数据表4.1SQLServer中表的基本概念4.2SQLServer的数据类型4.4使用T-SQL语句创建与维护数据表4.5使用SSMS管理表中数据4.6使用T-SQL语句管理表中数据技能展示理解数据表的概念了解数据表的设计与规划理解SQLServer2008中的数据类型掌握数据表的创建与维护掌握约束对象的创建与修改掌握表中数据的管理

4.1 SQLServer中表的基本概念

数据表是SQLServer2008中最重要的数据库对象,用于存储数据库中的所有数据,其他数据库对象大都依赖于数据表而存在。与电子表格类似,数据在表中按照行和列的格式组织。每行称为一条记录,代表一个实体,每列称为一个字段,代表实体的属性特征。例如,图4-1是总务管理系统数据库build中的设备表T_Facility的部分截图。图4-1

build数据库中的T_Facility表

4.1.2规划数据表 确定表中的字段设置相关约束主键约束(PRIMARYKEY)

惟一约束(UNIQUE)

检查约束(CHECK)

默认值约束(DEFAULT)

外键约束(FOREIGNKEY)

确定表间关系表4-1

build数据库中的T_Facility表结构

4.2 SQLServer的数据类型

设计数据表时首先需要为表中的每列指定数据类型。数据类型决定了数据的存储格式、长度和精度等属性。SQLServer2008提供了26种数据类型,用户也可以根据需要自已定义数据类型。4.2 SQLServer的数据类型

系统数据类型数字数据类型字符串数据类型日期时间数据类型其他数据类型用户自定义数据类型

4.2.1数字数据类型

整数类型int:占用4个字节的存储空间,用于存储在–231(–2147483648)~(231–1)(2147483647)范围的所有整数

smallint:占用2个字节的存储空间,用于存储–215(–32768)~(215–1)(32767)范围的所有整数

bigint:称为位数据类型,只有两种取值,即0和1。该类型常用于逻辑判断,表示真、假或是、否等二值选择。tinyint:占用1个字节的存储空间,用于存储从0~255范围的所有正整数。bit:称为位数据类型,只有两种取值,即0和1。该类型常用于逻辑判断,表示真、假或是、否等二值选择。

小数类型float(n)

:用于存储–1.79E–308~1.79E+308间的浮点数。n指定float数据的精度,为1~53之间的整数。当n取1~24时,精度为7位有效数字,占用4个字节;当n取25~53时,精度为15位有效数字,占用8个字节。real

:相当于float(24),用于存储–3.40E–38~3.40E+38之间的浮点数,占用4个字节。

numeric(p,s)

:用于存储带小数点且数值确定的数据。其中,p表示数值的全部位数,默认值为18。s表示小数的位数,默认值为0。

decimal(p,s):用法类似于numeric,区别在于decimal不能用于数据表的identity字段。money

:用于存储货币数据,占用8个字节的存储空间

。smallmoney

:与money类似,但范围比money数据类型小,占用4个字节的存储空间,存储范围为–214748.3468~214748.3468

4.2.2字符串数据类型

普通字符串Unicode字符串二进制字符串

普通字符串char(n)

:按n个字节的固定长度存放字符串,每个字符占用1个字节的存储空间。如果实际字符串长度小于n,则在尾部添加空格补足设定好的空间。如果输入的数据过长,将会截掉超出部分。varchar(n)

:按不超过n个字节的实际长度存放字符串。和char类型不同,varchar类型的存储空间根据输入数据的实际长度而变化。如果实际字符串长度小于n,则按字符串实际长度存储

text

:用于存储大容量文本数据,可存储最大容量为231–1即2GB的数据。当要存储的字符型数据超过8000字节时,例如备注和日志信息,可以选择text数据类型

普通字符型数据采用ASCII字符集,一个英文符号占1个字节,汉字占2个字节。

Unicode字符串char(n)

:按n个字节的固定长度存放字符串,每个字符占用2个字节。n取值为1~4000。如果实际字符个数小于最大长度n,则尾部填充空格

。varchar(n)

:按不超过n个字符的实际长度存放字符串。n取值为1~4000。如果实际字符个数小于n,则按字符串实际长度存储

ntext

:用于存储大容量文本数据,理论上最多可以存储

230–1(1073741823)个字符

unicode字符串采用unicode字符集,无论是英文符号占1个字节还是汉字都占2个字节。

二进制字符串binary(n)

:按n个字节的固定长度存放字符串,每个字符占用2个字节。n取值为1~4000。如果实际字符个数小于最大长度n,则尾部填充空格

。varbinary(n)

:按不超过n个字符的实际长度存放字符串。n取值为1~4000。如果实际字符个数小于n,则按字符串实际长度存储

image

::可存储不超过231–1约2GB个字节的二进制数据,比如文本文档、EXCEL图表以及GIF、BMP和JPEG等图像数据

4.2.3日期时间数据类型

datetime

:占用8个字节的存储空间,用于存储存储在公元1753年1月1日零时~公元9999年12月31日23时59分59秒之间的日期和时间,其精确度可达三百分之一秒,即3.33毫秒。默认的存储格式是YYYY-MM-DDhh:mm:ss,其中YYYY表示年份,MM表示月份,DD表示天数,hh表示小时,mm表示分钟,ss表示秒。smalldatetime

:占用4个字节的存储空间

,用于存储1900年1月1日~2079年6月6日之间的日期。4.2.4其他数据类型

sql_variant:用于存储除文本、图形数据和timestamp类型数据外的其他任何合法的SQLServer数据。

timestamp:也称为时间戳数据类型,它提供数据库范围内的惟一值,反应数据库中数据修改的相对顺序,相当于一个单调上升的计数器Uniqueidentifier:用于存储一个由16个字节组成的二进制数字。它是SQLServer根据计算机网络适配器地址和CPU时钟表产生的全局唯一标识符代码GUIDxml:使用xml数据类型可以在SQLServer数据库中存储XML文档和片段。XML片段是缺少单个顶级元素的XML实例Table:用于临时存储对表或者视图处理后的结果集以供后续处理。使用该数据类型可以利用变量存储表,从而使函数或过程返回查询结果更加方便和快捷。cursor:用于变量和存储过程的output参数,这些参数包含对游标的引用。但要特别注意,数据表中的列不能使用cursor数据类型。

4.2.5自定义数据类型

除了SQLServer提供的系统数据类型,用户还可以根据需要定义自已的数据类型。用户自定义数据类型并不是创建一种新的类型,只是在系统数据类型的基础上增加一些约束限制、绑定约束对象,以适用某些数据的需要。4.2.5自定义数据类型

在对象资源管理器中,展开需要创建自定义数据类型的数据库build。选择可编程性--类型,单击鼠标右键,从弹出的快捷菜单中选择新建--用户定义数据类型,打开“新建用户定义数据类型对话框”。在如图4-2所示的“新建用户定义数据类型”对话框中定义该类型的架构、名称、数据类型、精度、是否允许为空等。单击确定按钮,完成用户自定义数据类型的创建。

图4-24.3使用SSMS创建与维护数据表

使用SSMS创建数据表创建数据表创建约束对象使用SSMS维护数据表4.3.1使用SSMS创建数据表

【例4-1】在build数据库中创建“D_Department表”

打开

SQLServerManagementStudio并连接到数据库引擎服务器。在“对象资源管理器”中,依次展开“数据库”|build|“表”节点。右击“表”节点,从弹出的快捷菜单中选择“新建表”命令,如图4-3所示

。图4-3

在如图4-4所示的表设计器窗口上部的网格中输入列名,从“数据类型”列表中选择数据类型,并通过选择或清除“允许NULL值”复选框,设置列是否允许空值根据需要,在表设计器的下半部分设置字段的附加属性,如默认值、精度、小数位数、是否标识列、标识增量和标识种子等。

单击工具栏上的保存按钮,打开“选择名称”对话框,为数据表输入名称D_Department,单击“确定”按钮完成数据表的创建。

图4-4创建表的约束对象字段的约束可以在SSMS中创建表结构的同时进行设置,也可以在表结构创建完成后添加或修改,还可以使用T-SQL语句进行设置和修改。本节主要介绍在SSMS中设置字段约束,其他方式在后续部分会进行介绍。在SSMS中设置表的字段约束必须在表设计器中进行,如图4-5所示。

图4-5【例4-2】在SSMS中为build数据库中的“D_Department表”设置约束

DepartmentNO设置主键约束,只允许5位数字的检查约束。

DepartmentName设置惟一约束。

Isstop设置默认值约束,默认值为1

1、设置主键约束在“DepartmentNO”字段上右击,从弹出的快捷菜单中选择“设置主键”命令,此时在“DepartmentNO”字段最前端的标志块中出现一个钥匙图标,主键设置完毕,如图4-6所示。

图4-6

2、设置惟一约束在“DepartmentName”字段上右击,从弹出的快捷菜单中选择“索引/键”命令,打开“索引/键”对话框。单击“添加”按钮,该关系将显示在“选定的主/惟一键或索引”列表中。选中该关系,单击右侧网格中的“列”右侧的按钮,打开“索引列”对话框。在列名下拉列表中选择“DepartmentName”字段,单击“确定”按钮,回到“索引/键”,在“是惟一的”处选择“是”,单击“关闭”按钮完成惟一约束的创建,如图4-7所示。

图4-7

3、设置check约束在“DepartmentNO”字段上右击,从弹出的快捷菜单中选择“CHECK约束”命令,打开“CHECK约束”对话框。单击“添加”按钮,该关系将显示在“选定的CHECK约束”列表中。选中该关系,单击右侧网格中的“表达式”右侧的按钮,打开“CHECK约束表达式”对话框。输入条件表达式@xlike‘[0~9][0~9][0~9][0~9][0~9]’后点击“确定”按钮返回“CHECK约束”对话框。在下部的复选框中进行附加设置后,单击“关闭”按钮,完成CHECK约束的创建,如图4-8所示

图4-8

4、设置默认值约束右击D_Department表,选择“设计”命令,进入“表设计器”,选择Isstop字段,在下面附加属性的“默认值或绑定”中输入1,单击保存,完成默认值的设置,如图4-9所示。

图4-9

5、设置外键约束从表设计器菜单中选择“关系”命令,打开“外键关系”对话框。单击“添加”按钮,该关系将显示在“选定的关系”列表中。选中该关系,单击右侧网格中的“表和列规范”右侧的按钮,打开“表和列”对话框。在“表和列”对话框中从“主键”下拉列表中选择位于主键方的表,在下方网格中选择要分配给表的主键的列,然后在右侧的相邻网格中选择外键表的相应外键列。单击“确定”按钮返回“外键关系”对话框后单击“关闭”按钮完成外键约束的创建。如图4-10所示。

图4-104.3.2使用SSMS维护数据表

添加字段删除字段修改字段属性修改字段约束重命名数据表删除数据表创建数据库关系图添加字段在对象资源管理器中右击要添加字段的表,选择“设计”命令,打开表设计器窗口。在表设计器中执行以下操作

如果要在表的末尾添加列,则将光标定位在最下面的空白行中。如果在要某列前面添加字段,则右击某行,在弹出的快捷菜单中选择“插入列”命令,即可在当前行前插入一个新的数据列,如图4-11所示。单击工具栏上的保存按钮,完成添加字段的操作。

图4-11删除字段在表设计器中右击要删除的字段,在弹出的快捷菜单中选择“删除列”命令,也可以单击工具栏上的删除字段按钮。

修改字段约束在表设计器中右击要修改约束的字段,从弹出的快捷菜单中选择相关的命令

重命名数据表在对象资源管理器中展开“表”节点,右击需要重命名的数据表从弹出的快捷菜单中选择“重命名”命令

删除数据表对象资源管理器中展开“表”节点,右击需要删除的数据表,从弹出的快捷菜单中选择“删除”命令。创建数据库关系图在对象资源管理器中,依次展开“数据库|build|数据库关系图”节点。右击“数据库关系图”表,在弹出的快捷菜单中选择“新建数据库关系图”命令,打开“关系图设计窗口”在添加表对话框中,选择T_Distribute、D_Department表,单击添加按钮将表添加到关系图中,如图4-12所示

图4-12如果要在T_Distribute和D_Department表间创建外键关系,可将D_Department(主键表)的DepartmentNO字段拖到T_Distribute表(外键表)的DepartmentNO字段上,如图4-13所示。从文件菜单选择“保存”命令,在“选择名称”对话框中输入“总管管理数据库关系图”,单击“确定”按钮。出现保存对话框提示保存对表的修改时,单击“是”。

图4-13从表设计器菜单中选择“添加表”命令,然后在添加表对话框中选择另外8个表,单击“添加”按钮,然后单击“关闭”按钮。此时,build数据库中的9个表全部包含在数据库关系图中,其中关系线表示两个表之间存在外键关系,如图4-14所示。

图4-144.4使用SQL语句创建与维护数据表

使用CREATETABLE创建表

使用系统存储过程sp_help查看表结构使用ALTERTABLE语句修改表使用默认值对象和规则对象使用DROPTABLE语句删除表4.4.1使用CREATETABLE创建表

CREATETABLE

语句语法格式如下CREATETABLE表名(字段名数据类型[长度][IDENTITY(初始值,步长值)][NULL|NOTNULL][CONSTRAINT约束名]PRIMARY[主键列名][CONSTRAINT约束名]UNIQUE[惟一列名][CONSTRAINT约束名]CHECK[检查表达式][CONSTRAINT约束名]DEFAULT默认值[CONSTRAINT约束名]FOREIGNKEY[外键列名]REFERENCES引用表名(引用列名))参数说明

IDENTITY:用于指定该列为自动编号字段(标识列)。NULL|NOTNULL:用于指定该列是否允许空值。字段约束也可以在创建表结构后另外单独设置。不论创建表时或单独创建规则对象,检查表达式中都不能使用任何字段名,需要引用字段的复杂约束必须用触发器实现。【例4-3】在build数据库中创建“D_Department”表,表结构如下图4-16所示。除DepartmentNO以外其余字段均允许为空。部门编号DepartmentNO设置为主键,且设置检查约束只允许输入4位英文字母或数字字符。部门名称Department设置为惟一约束。是否停用字段Isstop设置默认值约束,默认值为1。

。CREATETABLED_DEPARTMENT(DEPARTMENTNOCHAR(4)NOTNULLPRIMARYKEY,USERCLSIDCHAR(2)NULL,DEPARTMENTVARCHAR(50)NULLUNIQUE,PHONEVARCHAR(50)NULL,ISSTOP[BIT]NULLDEFAULT1,NOTE[TEXT]NULL,MODIFYDATE[DATETIME]NULL)图4-15【例4-4】在build数据库中创建如图4-18所示的“T_Distribute”表。除DistributiNO以外其余字段均允许为空。分配编号DistributiNO设置为主键,且设置为自动增长的标识列。RoomNo、DepartmentNO、officeName设置为惟一约束。DepartmentNO字段设置外键约束与“D_Department”表建立关联。CREATETABLET_DISTRIBUTE(DISTRIBUTENOINTIDENTITY(1,1)NOTNULLPRIMARYKEY,ROOMNOINTNULLUNIQUE,DEPARTMENTNOCHAR(4)NULLUNIQUEFOREIGNKEYREFERENCESD_DEPARTMENT(DEPARTMENTNO),OFFICENAMENVARCHAR(30)NULLUNIQUE,DISTRIBUTETIMEDATETIMENULL,NOTETEXTNULL)图4-164.4.2使用系统存储过程sp_help查看表结构

语法格式[EXECUTE]sp_help[表名]【例4-5】查看build数据库中T_Facility表的信息。USEbuildGOEXECsp_helpT_Facility图4-174.4.3使用ALTERTABLE语句修改表结构

ALTERTABLE语句语法格式如下ALTERTABLE表名ADD列名数据类型[(长度)][NULL|NOTNULL][DEFAULT’默认值’]|ALTERCOLUMN列名数据类型[(长度)][NULL|NOTNULL]|DROPCOLUMN字段名[,…N]|ADDCONSTRAINT{约束名约束类型定义}列约束定义[,N][FOR列名]|DROPCONSTRAINT约束名[,…N]|NOCHECKCONSTRAINT约束名|CHECKCONSTRAINT约束名|DISABLETRIGGER触发器名|ENABLETRIGGER触发器名1.使用add子句添加列

语法格式ALTERTABLE表名

add字段名数据类型[(长度)][null|notnull][default‘默认值’

]

【例4-6】向D_Department表添加字段“位于校区”,数据类型为定长字符串型char(8),不允许为空(必须为其创建默认值)。USEbuild--打开build数据库ALTERTABLED_DepartmentADD位于校区CHAR(8)NOTNULLDEFAULT'晋安校区'添加的字段如果不允许为空,则必须设置默认值。2.使用altercolumn子句修改字段属性

语法格式

ALTERTABLE表名

altercolumn字段名数据类型[(长度)][null|notnull

【例4-7】将D_Department表中“联系电话”的数据长度修改为20,允许为空。USEbuild--打开build数据库ALTERTABLED_DepartmentALTER联系电话

char(20)3.使用addconstraint子句添加列约束

【例4-8】向D_Department表添加字段“位于校区”,数据类型为定长字符串型char(8),不允许为空(必须为其创建默认值)。【例4-9】为D_Department表的Phone字段添加unique约束,默认值为“3810000”

。USEbuild--打开build数据库ALTERTABLED_DepartmentADDCONSTRAINT电话约束UNIQUE(Phone),DEFAULT'3810000'FORPhone

USEbuild--打开build数据库ALTERTABLED_DepartmentADDCONSTRAINT数字编码CHECK(DepartmentNOLIKE'[0-9][0-9][0-9][0-9]')

4.使用nocheck|checkconstraint子句设置列约束无效、恢复有效【例4-10】使D_Department表的约束“电话约束”暂时无效,然后再恢复其有效

。USEbuild--打开build数据库ALTERTABLED_DepartmentNOCHECKCONSTRAINT电话约束

ALTERTABLED_DepartmentCHECKCONSTRAINT电话约束

5.使用dropconstraint子句删除列约束

语法格式

ALTERTABLE表名dropconstraint约束名[,…n]【例4-11】删除D_Department表的“数字编码”约束

。USEbuild--打开build数据库ALTERTABLED_DepartmentDROPCONSTRAINT数字编码

--删除约束

6.使用dropcolumn子句删除字段

语法格式

ALTERTABLE表名dropcolumn字段名[,…n]【例4-12】删除D_Department表的Phone字段

。ALTERTABLED_DepartmentDROPCONSTRAINT电话约束--删除约束ALTERTABLED_DepartmentDROPCOLUMNPhone

删除字段时必须先删除该字段上的约束。

4.4.4使用默认值对象和规则对象

创建数据表时,可以直接定义default约束和check约束,但这些约束基于字段,仅对字段有效。而默认值对象和规则对象面向整个数据库,所有数据表可以共用。默认值对象和规则对象是数据库的对象,建立这种通用对象后,可以绑定到多个表的多个字段,不需要时可以解绑,实现“一次创建,多次绑定”

。4.4.4使用默认值对象和规则对象

规则对象规则对象用于字段的检查约束,限制该字段输入数据的取值范围。与check约束的区别在于check约束只对一个字段有效,而规则对象属于整个数据库,所有数据表中的字段都可以使用。注规则对象是数据库对象之一,创建后必须绑定到需要的字段上才有效。规则对象可以绑定到字段上,也能绑定到用户自定义的数据类型上。一个字段只能绑定一个规则对象,但可设置多个CHECK约束。规则对象不允许使用字段名,必须使用@局部变量。创建规则对象使用CREATERULE语句可以创建规则对象,语法格式如下:

CREATERULE规则名称AS条件表达式

绑定和解绑规则对象

绑定规则对象sp_bindrulesp_bindrule‘规则名称’,‘表名.字段名’|自定义数据类型

解绑规则对象

sp_unbindrulesp_unbindrule‘表名.字段名【例4-13】为T_Facility表的“Price”和“Amount”字段创建并绑定数值大于0的规则对象“钱款数值”

。USEbuild--打开build数据库GOCREATERULE钱款数值

as@数值>=0--建立规则对象GOEXECsp_bindrule钱款数值,'T_Facility.Price'--捆绑规则对象EXECsp_bindrule钱款数值,'T_Facility.Amount'GOEXECsp_unbindrule'T_Facility.Price'--解除已捆绑规则对象EXECsp_unbindrule'T_Facility.Amount'--解除已捆绑规则对象

图4-184.4.4使用默认值对象和规则对象

默认值对象默认值对象类似于默认值约束,但默认值约束只对字段有效,而默认值对象属于整个数据库,所有的数据表都可以共用

。注不能将默认值对象绑定到标识列(自动编号字段)。不能将默认值对象绑定到在SSMS中已设置默认值的字段不能将默认值对象绑定到基本数据类型上

。创建默认值对象使用CREATEDefault语句可以创建规则对象,语法格式如下:

CREATEDEFAULT默认值名称AS常量表达式

绑定和解绑默认值对象

绑定默认值对象sp_bindefaultsp_bindefault‘默认值名称’,‘表名.字段名’|自定义数据类型

解绑默认值对象

sp_unbindefaultsp_unbindefault‘表名.字段名’

【例4-14】为T_Distribute表的DistributeTime和BuyTime字段创建并绑定默认值对象当前日期

。USEbuild--打开build数据库GOCREATEDEFAULT当前日期

asgetdate()--建立默认值对象GOEXECsp_bindefault当前日期,'T_Distribute.DistributeTime'--捆绑默认值对象到字段EXECsp_bindefault当前日期,'T_Facility.BuyTime'EXECsp_unbindefault'T_Distribute.DistributeTime'--解除已捆绑默认值对象EXECsp_unbindefault'T_Facility.BuyTime'

图4-194.4.5使用DROPTABLE语句删除表

altertable语句语法格式如下DROPTABLE表名[,...n]

注DROPTABLE语句一次可以删除多个数据表,但不能删除系统表。如果一个表被其他表的外键约束引用,必须先解除约束才能进行修改或删除操作

【例4-15】将前面创建的T_Facility数据表从build数据库中删除

。USEbuild--打开build数据库GODROPTABLET_Facility--删除

T_Facility数据表

4.5使用SSMS管理表中数据

查看数据

添加记录修改现有记录删除记录4.6使用T-SQL语句管理表中数据

添加数据

修改数据删除数据查看数据在“对象资源管理器”中,依次展开“数据库”build|“表”节点。右击“T_Facility”表,在弹出的快捷菜单中选择“编辑前200行”命令在“文档窗口”视图中,将显示“T_Facility”表中的所有记录的详细信息,如图4-20所示。图4-20

添加记录在“对象资源管理器”中,依次展开“数据库”|build|“表”节点。右击“D_Structrue”表,在弹出的快捷菜单中选择“打开表”命令,打开“D_Structrue”表的“文档窗口”视图。在“文档窗口”视图中的最后一行,即标有“*”的数据行中,输入每个字段的值。

修改记录在打开的表的“文档窗口”视图中,找到要修改的数据记录。单击要修改的数据项,激活并修改

。删除记录在打开的表的“文档窗口”视图中,查找到要修改的数据记录行右击要删除的行,在弹出的快捷菜单中选择“删除”命令,弹出删除确认对话框,单击“是”,完成数据行的删除。

4.6.1添加数据

使用INSERT语句向数据表中插入记录

INSERT…VALUES直接向表中各字段提供数据,一次只能添加一条记录。INSERT…SELECT用其他表的数据向表中提供数据,可一次添加多条记录。使用INSERT…values语句向表中添加记录,语法格式如下:INSERT[INTO]表名(字段列表)VALUES(值列表)

注一个INSERT…VALUES只能向表中添加一条记录。给表中全部字段提供数据时字段列表可以省略,但顺序必须与表中字段顺序一致如果只给表中部分字段提供数据,则必须指定字段列表。设置了默认值的字段使用默认值时,可以用DEFAULT代表默认数据。自动编号标识列不允许提供数据。设置CHECK约束、绑定了规则的字段不允许输入违反约束或规则的数据。设置外键约束的字段不允许输入父表引用列没有的值。字符型和日期型数据要用单引号扩起来。

【例4-16】学校新成立了“迎评协调中心”,将该处的信息添加到D_Department表中。

USEbuildINSERTINTOD_DepartmentVALUES('4201',’42’,'迎评协调中心','3811223')

【例4-17】学校新建的学术交流中心竣工了,将该楼的信息添加到D_Structrue表中

USEbuildINSERTINTOD_Structrue(StructrueName,StructrueNumber,FloorSum,RoomSum)VALUES('学术交流中心','044',1,10)

图4-21使用INSERT…select语句向表中添加记录,语法格式如下:INSERT[INTO]表名1(字段列表1)SELECT*|字段列表2FROM表名2[WHERE条件表达式]注该语句可以从一个或多个表或视图中得到数据,且一次可以添加多条记录表2的字段列表中的字段个数、顺序和类型必须与表1保持一致如果给表1中全部字段提供数据,则字段列表1可以省略如果只给表1中部分字段提供数据,则必须指定字段列表。

【例4-18】创建一个“格力空调表”,该表中只有DistributeNo(分配编号)、Quantity(数量)、Amount(金额)字段,然后从T_Facility表取得数据。通过复制得到一个新的空表使用INSERT…SELECT语句向表中添加记录

INSERTINTO格力空调表SELECTDistributeNo、Quantity、AmountFROMT_FacilityWHEREFacilityName=‘格力空调’

USEbuildSELECTDistributeNo、Quantity、AmountINTO格力空调表FROMT_FacilityWHERE1=2

图4-224.6.2修改数据

UPDATE语句用于更新表中一行或多行数据,语法格式如下UPDATE表名1SET{列名=表达式}[,…n][FROM表名2][WHERE条件表达式]

注SET:指定被修改的列和这些列的新值,同一条件下可以对多列数据同时进行修改FROM:如果表达式中使用其他表中的数据时必须使用FROM指定数据来源。WHERE:指定被修改记录的条件,只有满足条件的记录才能被更新。

【例4-19】将T_Facility表中Review(审核意见)统一修改为已审核

【例4-20】将T_Facility表中Price(金额)大于1000元的物品的Amount(金额)统一下调10%。USEbuildUPDATET_FacilitySETReview='已审核'

USEbuildUPDATET_FacilitySETAmount=Amount*0.9WHEREPrice>1000

图4-23【例4-21】将DepartmentNO(部门编号)为“1101”的部门的PersonInCharge(负责人)改为“张宇”。

UPDATET_FacilitySETPersonInCharge=‘张宇’FROMT_DistributeWHERET_Distribute.DistributeNo=T_Facility.DistributeNoANDDepartmentNO=‘1101’

图4-24.4.6.3删除数据

使用DELETE语句删除记录

使用TRUNCATETABLE语句快速永久删除全部记录

DELETE语句用于删除表或视图中的一行或多行,其语法格式如下:DELETE表名[FROM表名][WHERE条件表达式]

注如果没有指定WHERE子句,将删除指定表中的所有记录。当删除条件中使用其他表的数据时可以使用FROM指定所在的表名有自动编号字段的记录被删除后,字段编号不会重新排列。【例4-22】删除T_Facility1表中所有行。注意,T_Facility1表是T_Facility表的备份,首先使用SELECTINTO子句完成表的复制

”。

UPDATET_FacilitySETPersonInCharge=‘张宇’SELECT*INTOT_Facility1FROMT_FacilityDELETET_Facility1

图4-25【例4-23】将D_Category表中“CategoryNO”属性为“Isstop”(是否停用)中已经停用的记录删除。

【例4-24】从用T_Facility表复制的T_Facility1表删除DepartmentNO(部门编号)为1101的部门的相关记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论