基于2003本文的介绍Microsoft SQL Server实现数据库表完整性约束、索引和视图创建等操作的软件。
请参阅2003年数据库系列文章的专栏:数据库基础_疯狂学习GIS的博客-CSDN博客。
系列文章中的示例数据来源于《SQL Server实验指导(2005版)。尊重版权,遗憾不能向您提供相关示例数据;但根据本系列文章的思想和对操作步骤和代码的详细解释,您可以完全重现相关的操作和分析过程。
1 交互式创建数据库表SPRIMARY KEY约束
(1) 启动Microsoft SQL Server 2008 R2软件;
(2) 在对象资源管理器窗格中,在数据库处右键,在弹出菜单中选择附加选项;
(3) 选择需要附加的jxsk选择定位文件夹数据库物理文件G:\\sql\\chutianjia sql并选择相应的数据库jxsk选择确定按钮,再次选择确定;
(4) 选择数据库→“jxsk”→右击并在弹出菜单中选择设计选项,如下图所示;
(5) 选择SNO右击并选择设置主键,如下图所示;
(6) 保存修改,关闭表设计器;
2 互动创建数据库表TEST_SC,创建PRIMARY KEY约束
(1) 在对象资源管理器窗格中→“jxsk”→在弹出菜单中选择新菜单中选择新表选项,输入TEST_SC设置每列,如下图所示;
(2) 同时选择SNO和CNO列, 右击并选择设置主键SNO列和CNO一把钥匙显示在列的行选择器中,表示SNO与CNO是关系TEST_SC主键SNO和CNO列中“允许NULL值列的对钩消失,表示SNO、CNO不能取空值,如下图所示;
(3) 保存修改,输入表名TEST_SC,关闭表设计器,重命名如下图所示;
3 T-SQL创建数据库表TPRIMARY KEY约束
(1) 在对象资源管理器窗格中→“jxsk”→“表”→“dbo.T在弹出菜单中选择设计选项,如下图所示;
(2) 将TNO列“允许NULL值为非空,保存修改如下图所示;关闭表设计器;
(3) 单击屏幕上方 菜单中的新查询按钮打开查询编辑器窗口,并在查询编辑器窗口中输入以下内容T-SQL语句:
USE jxskGOALTER TABLE TADD CONSTRAINT PK_TNO PRIMARY KEY(TNO)GO
(4) 将jxsk设置为当前数据库,单击 工具栏中的执行(x)上述按钮可以执行T-SQL语句,如下图所示;
(5) 在对象资源管理器窗格中→“jxsk”→“表”→“dbo.T右键,在弹出菜单中选择刷新选项,选择列和索引,显示通过上述方法新建立的聚集索引PK_TNO,如下图;
4 T-SQL创建数据库表TEST_C,以列约束的形式创建PRIMARY KEY约束
(1) 单击屏幕上方 菜单中的新查询按钮打开查询编辑器窗口,并在查询编辑器窗口中输入以下内容T-SQL语句:
USE jxskGOCREATE TABLE TEST_C(CNO CHAR(2)CONSTRAINT PK_TEST_C PRIMARY KEY,CN CHAR(10),CT TINYINT)GO
(2) 将jxsk设置为当前数据库,单击 工具栏中的执行(x)上述按钮可以执行T-SQL语句,如下图所示;
(3) 在对象资源管理器窗格中→“jxsk”→“表”→“dbo.TEST_C右键,在弹出菜单中选择刷新选项,选择列和索引,显示通过上述方法新建立的聚集索引PK_ TEST_C,如下图;
5 T-SQL创建数据库表TEST_TC,以表约束的形式创建PRIMARY KEY约束
(1) 单击屏幕上方 菜单中的新查询按钮打开查询编辑器窗口,并在查询编辑器窗口中输入以下内容T-SQL语句:
USE jxskGOCREATE TABLE TEST_TC(TNO CHAR(2),CNO CHAR(2),CONSTRAINT PK_TEST_TC PRIMARY KEY(TNO,CNO))GO
(2) 将jxsk设置为当前数据库,单击 工具栏中的执行(x)上述按钮可以执行T-SQL语句,如下图所示;
(3) 在对象资源管理器窗格中→“jxsk”→“表”→“dbo.TEST_TC右键,选择弹出菜单中的刷新选项,选择列和索引,可以看出,通过上述方法,新的内容已经存在建立的聚集类型索引PK_ TEST_TC,如下图;
6 交互式向数据库表TEST_TC中CNO与TNO列添加UNIQUE约束
(1) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.TC”处右键,在弹出的菜单中选择“设计”选项;
(2) 单击工具栏“管理索引和键”按钮,选择“添加”,按要求设置名称;单击“列”右端省略号按钮,单击第二行第一列下拉按钮,选择CNO列,单击“确定”按钮;在“类型”处选择“唯一值”,如下四幅图;
(3) 关闭对话框;
7 T-SQL为数据库表C中CN列创建UNIQUE约束
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER TABLE CnADD CONSTRAINT UNIQUE_C UNIQUE(CN)nGO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo. C”处右键,在弹出的菜单中选择“刷新”选项,选择“列”与“索引”,可见其所示内容中已存在通过上述方法新建立的聚集类型索引PK_ TEST_C与非聚集类型索引UNIQUE_C,如下图;
8 交互式为数据库表TEST_SC中添加新列ID_SC,设置列属性IDENTITY
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”,右击“dbo.TEST_SC”,在弹出的菜单中选择“设计”;
(2) 插入新空行,输入列名ID_SC,数据类型为int,且不许为空;选中此列,在“标识规范”左侧的加号图标处单击,在打开的列表中选择“是”,如以下两幅图;
(3) 单击工具栏中的保存按钮,并将窗口关闭;
9 T-SQL向数据库表TEST_TC中添加列ID_TC,设置列属性IDENTITY
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER TABLE TEST_TC ADD ID_TC INT IDENTITYnGO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo. TEST_TC”处右键,在弹出的菜单中选择“设计”选项,查看属性窗口中“标识列”的属性设置,如下图;
10 交互式删除数据库表TEST_SC的主键PK_TEST_SC并取消ID_SC列标识属性
(1) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo. TEST_TC”处右键,在弹出的菜单中选择“设计”选项,如下图;
(2) 单击“标识规范”左侧加号图标,在“(是标识)”右侧下拉按钮打开的下拉列表中选择“否”;
(3) 选中SNO与CNO列,右击选择“删除主键”,如下图;关闭表设计器;
11 T-SQL删除数据库表C中列CN的UNIQUE约束
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句,如下图:
USE jxsknGOnALTER TABLE C DROP UNIQUE_CnGO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.C”处右键,在弹出的菜单中选择“刷新”选项,选择“列”与“索引”,可见其所示内容中已不存在通过上述方法新建立的非聚集类型索引UNIQUE_C,键中也不含该索引,如下图;
12 交互式为数据库表T创建DEFAULT和CHECK约束
(1) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.C”处右键,在弹出的菜单中选择“设计”选项;
(2) 单击选择SEX列,然后在窗口下面的“列属性”框中“默认值或绑定”输入框中,输入‘男’,在说明中输入DE_T_SEX,如下图;
(3) 单击工具栏中的“管理CHECK约束”按钮,打开表T的“CHECK约束”对话框;单击“添加”按钮,查看窗口内容变化。对窗口中的各项进行如下设置:在“(名称)”输入框中,把默认名改为CHECK_T,将“在创建或重新启用时检查现有数据”选项设置为“否”,单击“表达式”右端的按钮,打开“CHECK约束表达式”对话框,输入以下表达式,如以下图:
(PROF='教授' AND COMM=4000)ORn(PROF='副教授' AND COMM=2000)ORn(PROF='讲师' AND COMM=1500)ORn(PROF='助教' AND COMM=1000)
(4) 单击“确定”→“确定”,如下图;关闭对话框与设计器;
13 T-SQL为数据库表S创建CHECK约束
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER TABLE S WITH CHECKnADD CONSTRAINT CHECK_AGE CHECK(AGE>=14 AND AGE<=40)nGO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.S”处右键,在弹出的菜单中选择“刷新”选项,选择“约束”,可见其所示内容中已存在通过上述方法新建立约束CHECK_AGE,如下图;
14 T-SQL创建数据库表TEST_S并包含DEFAULT和CHECK约束
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnCREATE TABLE TEST_S(nSNO CHAR(2) NOT NULL,nSN CHAR(8) NOT NULL,nSEX CHAR(2) NULL CONSTRAINT DEFAULT_SEX DEFAULT '男'nCONSTRAINT CHECK_SEX CHECK(SEX='男' OR SEX='女'),nAGE TINYINT NULL CONSTRAINT DEFAULT_AGE DEFAULT 18,nCONSTRAINT CHECK_S_AGE CHECK(AGE>=14 AND AGE<=40))nGO
(2) 将jxsk设置为当前数据库,单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.TEST_S”处右键,在弹出的菜单中选择“刷新”选项,查看“列”和“约束”,如下图;
15 T-SQL删除数据库表T中PROF和COMM间CHECK约束
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER TABLE TnDROP CONSTRAINT CHECK_TnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.T”处右键,在弹出的菜单中选择“刷新”选项,选择“约束”可见其所示内容中不已存在通过上述方法新建立的CHECK约束,如下图;
16 交互式删除数据库表TEST_S中列SEX的DEFAULT约束列和列AGE的CHECK约束
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表TEXT_S,在弹出的菜单中选择“设计”;
(2) 在表格下方,清除“默认值”中的‘男’,如下图;打开CHECK约束对话框,在“选定的CHECK约束:”框中选择CHECK_S_AGE约束;
(3) 单击“删除”按钮,可以看到CHECK_S_AGE约束被删除,如上方图;
(4) 关闭表TEST_S“CHECK约束”对话框与表设计器;
17 交互式创建表S与SC间参照关系
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”→“表”并右击表SC,在弹出的菜单中选择“设计”;
(2) 单击 “关系”按钮,打开“外键关系”窗口,单击“添加”按钮,查看到关系名是系统给出的默认名:FK_SC_SC。单击“表和列规范”右端的按钮,打开“表和列”对话框。在“主键表”中,选定主表S,选定字段SNO。在“外键表”中,选定子表SC,选定字段SNO。单击“确定”按钮关闭“表和列”对话框。将“外键关系”对话框中的“在创建或重新启用时检查现有数据”一项设置为“否”。单击“INSERT和UPDATE规范”左侧的田按钮,将“更新规则”一项设置为“级联”,如下图;
(3) 关闭“外键关系”对话框,关闭表设计器,保存对表SC进行的上述修改。;
(4) 打开数据表S与SC,对照其中学号为S1的记录;把数据库表S中的学号S1改为S9,数据库表S中的内容次序发生改变,如图所示。单击SC表窗口,使其成为当前表,查看到SC表中2个学号值是S1的都变为S9,且表SC中的记录次序也发生了改变,如下图;
18 T-SQL创建数据库表T与TC间参照关系
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER TABLE TC WITH NOCHECKnADD CONSTRAINT FK_T_TC FOREIGN KEY(TNO)REFERENCES T(TNO)nON DELETE CASCADEnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
(3) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.TC”处右键,在弹出的菜单中选择“刷新”选项,选择“键”可见其所示内容中已存在通过上述方法新建立的FK_T_TC约束,如下图;
(4) 打开数据库表T与TC,使用“删除”命令把数据库表T学号值为T1的记录删除;单击数据库表TC使其成为当前窗口,单击工具栏中的运行置钮,查看到TC表中2个学号值是T1的记录都不存在了,如下图;
19 创建数据库jxsk中5个表间关联关系图
(1) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”,右击数据关系图,打开2个窗口,一个是创建关系图的窗口;一个是“添加表”窗口,其中列出了jxsk中的所有用户表,如下图;
(2) 选择表C,单击“添加”按钮,表C即加入关系图窗口中。重复此过程,把表S、SC、T、TC都添加到关系图窗口中,添加完成后还可调整5个表的相对位置。添加到关系图中的数据库表如图所示;
(3) 在关系图窗口中,可以看到表T与TC之间已存在一条关系线;单击并按住表C中的CNO字段,拖动至表TC中的CNO字段,松开鼠标左键,同时打开“外键关系”和“表和列”两个窗口,观察窗口中的各项值。单击“表和列”窗口的“确定”按钮退出该窗口,然后在“外键关系”窗口中,将“在创建或重新启用时检查现有数据”一项设置为“否”,单击“INSERT和UPDATE规范”左侧的田按钮,将“更新规则”和“删除规则”两项均设置为“级联”,单击确定;重复步骤,形成五个表之间的关系关联图;
(4) 点击保存按钮,输入关系图名称;关闭窗口;
(5) 在“对象资源管理器”窗格中,选择“数据库”→“jxsk”,选择数据关系图,可显示关系图;
20 交互式删除表C与表TC间引用关系
(1) 在“对象资源管理器”窗格中,在“数据库”→“jxsk”→“表”→“dbo.C”处右键,在弹出的菜单中选择“设计”选项;
(2) 在“选定的关系”框中,选择名为FK_TC_C的关系,单击“删除”按钮,此关系即被删除。关闭外键关系窗口,关闭表设计器窗口;
21 交互式为表SC创建PRIMARY KEY,在此主键自动创建聚簇索引
(1) 用表设计器打开表SC;打开“索引/键”对话框。在SC表设计器中,选择“索引/键”选项,打开“索引/键”对话框,如下图示;此时窗口中内容为空,说明表SC中没有创建任何索引。单击“关闭”按钮,返回表设计器;
(2) 同时选中列SNO和列CNO,单击工具栏中的按钮,即在SNO和CNO上创建了主键,如图所示。
(3) 在SC表设计器中,右击,选择“索引/键”选项,打开“索引/键”对话框,查看列表中的信息:索引“列”是SNO(ASC)和CNO(ASC),当前的索引“名称”为PK_SC_1,“创建为聚集的”为“是”。此索引即是创建主键时,系统自动生成的聚簇索引。
(4) 关闭表设计器窗口;
22 T-SQL创建数据库表T在TNO列上按降序创建聚簇索引IND_TNO
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnCREATE CLUSTERED INDEX IND_TNO ON T(TNO DESC)nGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
(3) 在表设计器中,选择“索引/键”选项,打开“索引/键”对话框,可看到IND_TNO;
23 交互式为表T在TN列上按升序和在AGE列上按降序创建非聚簇索引IND_TN_AGE
(1) 用表设计器打开数据库 jxsk 中的数据库表T。打卡创建“索引/键”对话框。在T表设计器中,右击,选择“索引/键”选项,打开“索引/键”对话框,如图所示。
(2) 单击“添加”扭钮,观察“索引/键”对话框中各项的变化。在右侧列表中,单击“列”行中的一个单元格,再单击该行右端的按钮,打开“索引列”对话框,按照图所示进行设置。设置完成后单击“确定”按钮返回“索引/键”对话框。设置索引名称并保存;
24 T-SQL创建数据库表C在CN列上按升序创建聚簇索引IND_CN
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnCREATE UNIQUE INDEX IND_CN ON C(CN)nGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
25 交互式删除C索引IND_CN
(1) 用表设计器打开表SC;打开“索引/键”对话框。在SC表设计器中,选择“索引/键”选项,打开“索引/键”对话框;
(2) 单击删除按钮,保存修改并关闭窗口;
26 T-SQL删除索引IND_TN_AGE
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnDROP INDEX T.IND_TN_AGEnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
27 交互式创建视图
(1) 在“对象资源管理器”中,展开数据库jxsk,右击“视图”,在打开的快捷菜单中选择“新建视图”选项,如图所示,即可打开一个“添加表”对话框;
(2) 添加基本表。在“添加表”对话框中选择表S,单击“添加”按钮,如图所示,选择“关闭”按钮,关闭“添加表”对话框,返回创建视图窗口,可看到创建视图窗口中增加了表S,如图所示。
(3) 在表S中,分别选中字段SNO、SN、SEX、DEPT左侧的复选框,表示选中这些字段,将它们加入视图中,观察下面窗格中的变化,如图所示。
(4) 单击视图设计器工具栏中的1按钮,执行视图定义。窗口下面的表格数据即为视图的内容。单击工具栏中的口按钮,打开对话框,输入视图名称View_S,如图所示。单击“确定”按钮即可保存;
(5) 关闭“创建视图窗口”,在“对象资源管理器”中,单击数据库jxsk中的“视图”节点,右窗口“摘要”中的View_S即是刚创建的视图,另一个为系统视图文件夹,如下图所示;
28 交互式创建成绩视图VIEW_SCORETABLE
(1) 在“对象资源管理器”中,展开数据库jxsk,右击“视图”,在打开的快捷菜单中选择“新建视图”选项,打开“添加表”窗口;
(2) 在“添加表”窗口中,选择表C和表SC,单击“添加”令,可看到创建视图窗口上部分窗格中增加了表C和表SC,并查看下面SQL窗格中语句的变化。以此类推,在“视图”选项卡中添加视图View_S。单击“关闭”按钮,关闭“添加表”窗口,返回创建视图窗口;
(3) 在视图View_S中,选中字段SN左侧的复选框,表示选中字段SN。以此类推,在表C中选择CN,在表SC中选择SCORE,如图所示; 选中视图View_S中的SNO并将其拖曳到表SC中的SNO,查看下面SQL窗格中语句的变化;同样选中表SC中的CNO并拖曳到表C中的CNO,查看下面SQL窗格中语句的变化;
(4) 单击视图设计器工具栏中按钮,执行视图定义。窗口下面的表格数据即是视图的内容,如图所示;
(5) 单击工具栏中的口按钮,打开对话框,输入视图名称View_SCORETABLE,单击“确定”按钮;
(6) 关闭“创建视图窗口”。查看数据库中的视图信息。在“对象资源管理器”中,展开数据库jxsk中的“视图”节点, View_SCORETABLE即是刚创建的视图,如上方图所示;
29 T-SQL创建课程表视图VIEW_CTABLE
(1) 击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnCREATE VIEW VIEW_CTABLEnAS SELECT TN,CN FROM T,C,TCnWHERE T.TNO=TC.TNO AND C.CNO=TC.CNOnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句;
(3) 在“对象资源管理器”中,展开数据库jxsk中的“视图”节点, View_SCORETABLE即是刚创建的视图;
30 交互式删除视图字段
(1) 在“对象资源管理器”中,展开数据库jxsk中的“视图”节点。右击View_S,在快捷菜单中选择“修改”选项,打开设计视图窗口,如图所示。在此窗口中可查看窗口中各部分内容的关系;
(2) 在数据库表S中,取消选中SNO左端的复选框,即取消此项选择,然后查看窗口下部分列表和SQL语句的变化;
(3) 执行操作。单击视图设计器工具栏中的事按钮,执行对视图定义进行改变的操作。窗口下部分表格中显示的是删除SNO后视图中的数据,如图所示。保存后关闭视图设计器窗口。
31 T-SQL为视图ViewCTABLE增加一个课时字段Cttinyint
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER VIEW VIEW_CTABLEnAS SELECT TN,CN,CT FROM T,C,TCnWHERE T.TNO=TC.TNO AND C.CNO=TC.CNOnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
(3) 在“对象资源管理器”中,展开数据库jxsk中的“视图”节点,在右窗格的“摘要”中,右击视图View_CTABLE,在打开的快捷菜单中选择“打开视图”项,打开视图ViewCTABLE的数据窗口,显示出修改后的视图数据,如图所示;
32 交互式修改视图数据以实现修改数据库表数据
(1) 分别打开视图View S和数据库表S的内容,如图所示,可见两个表中“李奇”记录的各字段数据相同;
(2) 在视图View_S中,把“李奇”的系名DEPT“外语”改为“计算机”。单击薄按钮,执行进行这个改变的操作,如图所示。单击表S窗口,使其成为当前窗口,查看到“李奇”的DEPT字段值仍然是“外语”,单击按钮霸,再查看“李奇”的DEPT字段值与当前的视图View_S中的改变一致,如下图所示。
33 对视图执行INSERT语句
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnINSERT INTO VIEW_S VALUES('S8','古明','男','自动化')nGO
(2) 单击 “工具栏”中的“执行(x)”按钮,显示执行失败。这是因为,视图View_S来源于基本表S,但却不包含基本表S的主键SNO,主键的性质是不许取空值。当向视图中插入一行新数据时,因没有SNO字段值,所以,从视图到基本表映射插入此行数据时,表S中的SNO字段值自动取空值,这是主键所不允许的,故执行失败。
34 修改视图定义后进行插入操作
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnALTER VIEW VIEW_SnAS SELECT SNO,SN,SEX,DEPT FROM SnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
(3) 在“对象资源管理器”中,分别打开视图View_S和数据库表S的数据窗口,两个窗口中的数据的对应行列完全相同;
(4) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnINSERT INTO VIEW_S VALUES('S8','古明','男','自动化')nGO
(5) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
(6) 打开视图View_S和数据库表S的数据窗口,如图所示,“古明”的记录已插入到视图中。再单击表S窗口中的按钮,更新当前表内容,如图所示,“古明”的记录也已插入数据库表S中;分别关闭视图和数据库表的窗口;
35 T-SQL对视图进行DELETE操作并查看数据变化
(1) 在“对象资源管理器”中,分别打开视图View_S和数据库表S的数据窗口,两个窗口中的内容是一致的,都存在学号是S8的学生记录;
(2) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnDELETE VIEW_S WHERE SNO='S8'nGO
(3) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
(4) 单击View_S视图窗口选项卡,然后单击按钮,更新当前视图内容,如图所示,学号是S8的学生记录已经不存在。再单击表S窗口选项卡和按钮,更新当前表内容,如图所示,学号是S8的学生记录也已经不存在。分别关闭视图和数据库表的窗口;
36 交互式删除视图
(1) 在“对象资源管理器”中,单击数据库jxsk中的视图节点,右窗格“摘要”中的内容即为数据库jxsk中的视图内容。
(2) 在右窗格中,右击视图View_S,在打开的快捷菜单中选择“删除”选项,打开“删除对象”对话框。
(3) 查看“要删除的对象”列表,单击要删除的视图View_S左侧的复选框,单击“确定”按钮,视图View_S即被删除。
(4) 在“对象资源管理器”中,刷新数据库jxsk中的“视图”节点,可看到视图View_S已经不存在;
37 T-SQL删除视图
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsknGOnDROP VIEW VIEW_CTABLEnGO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/dongtai/50105.html