SQL Server 关系数据库管理系统_第1页
SQL Server 关系数据库管理系统_第2页
SQL Server 关系数据库管理系统_第3页
SQL Server 关系数据库管理系统_第4页
SQL Server 关系数据库管理系统_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

第六章

SQL

Server2000关系

数据库管理系统 本章教学目标、重点和难点1.本章教学目标:使学生了解SQLServe功能及特点,了解数据库对象,掌握SQLServer2000的10种管理工具的功能和操作方法,熟练掌握使用T-SQL进行数据定义、数据查找、数据维护的方法。2.教学重点:SQLServe功能及特点,数据库对象,SQLServer2000的10种管理工具,T-SQL的数据定义、查找和维护的功能和表达方法。3.教学难点:触发器的概念和定义方法,T-SQL的数据查找和数据维护的功能和表达方法。1.SQL

Server

2000的系统结构2.SQL

Server

2000的管理功能3.SQL

Server

2000的数据库操作工具4.Transact-SQL语言5.SQL

Server

2005新增功能本章内容SQL

Server2000的系统结构 SQLServer2000的系统结构数据库管理功能是SQLServer2000为数据库服务器、数据库、数据库文件及作业提供的创建和维护功能,以及保证数据的安全性和完整性功能;网络连接产品是指SQLServer2000提供的客户机/服务器连接工具、数据通信工具、与邮件系统的接口,以及发布Web页面的功能; SQLServer2000的系统结构应用程序开发工具是SQLServer2000提供的Transact-SQL、应用程序接口,以及应用程序的设计和优化功能;用户信息存取工具指SQLServer2000为非专业人员提供的信息存取工具,使得非专业用户只需通过选择,而不是利用Transact-SQL,就可以查询数据库系统。 SQLServer2000的系统结构N-Tier客户机/服务器结构1.桌面型数据库系统和客户机/服务器型数据库系统桌面型数据库系统:SQLServer2000安装在客户端计算机中,数据库存储在客户端计算机中。系统安装在网络服务器中,数据库为网络中的客户机应用程序共享。2.客户机/服务器的结构和功能可以通过网络连接产品将多台计算机连接为企业内部网,能够与Internet相连并发布网页。 SQLServer2000的系统结构N-Tier客户机/服务器结构3.N-Tier客户机∕服务器结构后端服务器、中间端服务器和客户机客户机应用程序负责建立用户界面,通过用户界面让用户向数据库添加、修改、删除、查询数据;数据库服务器执行数据库的存储、检索、管理、安全性及数据备份8等工作。中间端服务器可以是多层的。中间端服务器可以管理一个或多个独立的数据库,为客户机或前级服务器提供事务服务和数据预处理。后端服务器是中间服务器的后台,管理多个中间服务器,提供整个数据库系统的事务管理功能。 SQLServer2000的系统结构与Internet高度集成功能SQLServer2000可以作为Internet或内部网服务器的后端数据库,它与Web服务器协作,为Web服务器和浏览器提供信息。SQLServer2000通过Web站点共享数据,它可以发布Web网页和接收电子邮件,使用Web浏览器可以直接访问SQLServer2000数据库的数据,且易于学习和使用。

SQL

Server2000的系统结构客户机/服务器软件结构User

InterfaceDBAToolsSQL

Server

Developer

Tools充当客户应用程序与SQLServer2000的媒介动态链接库

实现进程通信机制客户应用软件Distributed

Transaction

CoordinationOpenDataService(ODS)SQLServer

Database

APISQLServerEngineSQL客户机SQL服务器Net-LibraryNet-LibrarySQLAgent网络连接 SQLServer2000的系统结构数据库对象1.数据库的类别(1)物理数据库和逻辑数据库物理数据库由构成数据库的物理文件构成。SQLServer2000的一个物理数据库中至少有一个数据库信息文件和一个数据库事务日志文件。物理数据库由DBA(数据库管理员)负责创建和管理。逻辑数据库是数据库中用户可视的表或视图,用户利用逻辑数据库的数据库对象,存储或读取数据库中的数据。(2)系统数据库和用户数据库系统数据库是由系统创建和维护的数据库。系统数据库中记录着SQLServer2000的配置情况、任务情况和用户数据库的情况等系统管理的信息,它实际上就是我们常说的数据字典。用户数据库是根据管理对象要求创建的数据库,用户数据库中保存着用户直接需要的数据信息。 SQLServer2000的系统结构2.数据库对象(1)表和视图:表是在数据库中存放的实际关系。视图是为了用户查询方便或根据数据安全的需要而建立的虚表。(2)角色:由一个或多个用户组成的单元,也称职能组。一个用户可以成为多个角色中的成员。(3)索引:来加速数据访问和保证表的实体完整性的数据库对象。的索引有群聚和非群聚索引两种。群聚索引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。(4)存储过程:通过Transact-SQL编写的程序。包括系统存储过程和用户存储过程:系统存储过程是由SQLServer2000提供的,其过程名均以SP开头;用户过程是由用户编写的,它可以自动执行过程中安排的任务。(5)触发器:一种特殊类型的存储过程,当表中发生特殊事件时执行。触发器主要用于保证数据的完整性。(6)约束:约束规则用于加强数据完整性。 SQLServer2000的系统结构3.数据库结构(1)SQLServer2000的三种物理文件1)基本数据文件:基本数据文件用于容纳数据库对象,它使用.mdf作为文件扩展名。2)辅助数据文件:当数据库中的数据较多时需要建立辅助数据文件。一个数据库中可以没有、也可以有一个或多个辅助数据文件。辅助数据文件的扩展名为.ndf。3)日志文件:用于存放数据库日志信息的文件。一个数据库可以有一个或多个日志文件。日志文件的扩展名为.ldf。 SQLServer2000的系统结构3.数据库结构(2)数据库文件的两种组件1)页:使用的最小数据单元,一页可以容纳8k的数据。共有8种页:数据页、索引页、文本/图像页、全局分配映射表页、页空闲空间、索引分配映射表页、大容量更改映射表页和差异更改映射表页。2)扩展盘区:扩建表和索引的基本单位,一个扩展盘区由8个相邻页的构成。 SQLServer2000的系统结构3.数据库结构(3)文件组:多个文件可以归纳成为一个文件组。主要文件组:包含这主数据文件及相关内容。用户定义文件组:由用户通过SQLServer企业管理器创建的文件组默认文件组:在每个数据库中,同一时间只能有一个文件组是默认文件组 SQLServer2000的系统结构系统数据库1.Master数据库Master数据库的主文件名为Master.mdf,日志文件为Masterlog.ldf。Master中内含许多系统表,用来跟踪和记录SQLServer相关信息。2.Msdb数据库Msdb的主文件名为Msdb.dbf,日志文件名为Msdb.ldf。Msdb由SQLServer企业管理器和代理服务器使用。Msdb中记录着任务计划信息、事件处理信息、数据备份及恢复信息和警告及异常信息。 SQLServer2000的系统结构系统数据库3.Model数据库Model数据库的主文件是model.mdf,日志文件为model.ldf。Model数据库是SQLServer2000为用户数据库提供的样板,新的用户数据库都以model数据库为基础。4.tempdb数据库tempdb的主文件名和日志文件名分别为tempdb.dbf和tempdb.ldf。tempdb是一个共享的工作空间,SQLServer2000中的所有数据库都可以使用它,它为临时表和其他临时工作提供了一个存储区。

SQL

Server2000的管理功能SQL

Server2000的管理任务1.SQL服务器的安装、配置和管理

SQL

Server2000的管理功能SQL

Server2000的管理任务1.SQL服务器的安装、配置和管理

SQL

Server2000的管理功能SQL

Server2000的管理任务1.SQL服务器的安装、配置和管理

SQL

Server2000的管理功能SQL

Server2000的管理任务1.SQL服务器的安装、配置和管理

SQL

Server2000的管理功能SQL

Server2000的管理任务2.服务管理

服务代理(SQLServerAgent)分布式事务

处理协调服务

(MS

DTC)数据库访问

(MS

SQL

Server)SQL

Server2000的管理功能SQL

Server2000的管理任务3.数据库管理

SQL

Server2000的管理功能SQL

Server2000的管理任务3.数据库管理4.数据库对象的管理5.数据管理

SQL

Server2000的管理功能SQL

Server2000的管理任务6.安全性管理

SQL

Server2000的管理功能SQL

Server2000的管理任务操作员管理

(Operators)警报管理

(alerts)7.作业管理

8.集成操作任务管理

(Jobs) SQLServer2000的管理功能SQLServer2000的管理工具1.查询分析器编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来。通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 SQLServer2000的管理功能SQLServer2000的管理工具2.导入导出数据导入和导出数据通过一个向导程序“数据转换服务(简称DTS)”实现,其作用是使SQLServer与任何OLEDB、ODBC、JDBC或文本文件等多种不同类型的数据库之间实现数据传递。 SQLServer2000的管理功能3.服务管理器服务管理器(ServiceManger)用于开启、暂停和停止SQL服务工作,同时,也可以通过它设置服务是否自动启动。 SQLServer2000的管理功能4.客户机网络连接工具和服务器网络连接工具客户机网络连接工具用于设置本机作为服务器或客户机所使用的缺省网络链接库,并可为不支持缺省网络库的SQL服务器设置连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接协议,以支持不同配置的客户端。 SQLServer2000的管理功能5.联机丛书联机丛书是SQLServer2000为用户提供的在线帮助功能。在联机丛书中,全面而详细地介绍了有关SQLServer2000的功能、管理及开发方法、TSQL语法等。 SQLServer2000的管理功能6.企业管理器企业管理器窗口的左边是以树形结构组织的管理对象,右边称为明细窗口,其内容是是左边选中对象的详细内容。企业管理器可以实现对管理对象的定义、改动、删除等各种操作。 SQLServer2000的管理功能7.事件探查器用于监视与分析SQLServer活动、服务器的网络进出流量或发出在SQLServer上的事件。事件探查器把一个操作序列保存为一个.trc文件,然后在本机或其他机器上按原来的次序重新执行一遍。 SQLServer2000的管理功能8.在IIS中配置SQLXML支持SQLServer2000含有SQLServer的IIS虚拟目录管理器,通过它在IIS定义一个与SQLServer2000实例相关的虚拟目录。Internet应用程序便可以编写出能够引用虚拟目录。 SQLServer2000的管理功能8.在IIS中配置SQLXML支持SQLServer2000含有SQLServer的IIS虚拟目录管理器,通过它在IIS定义一个与SQLServer2000实例相关的虚拟目录。Internet应用程序便可以编写出能够引用虚拟目录。 SQLServer2000的管理功能9.分析管理器提供用户界面以访问分析服务器及其元数据知识库的控制台应用程序。实现:管理分析服务器,锁定被编辑的对象和它们的从属对象;创建数据库和指定数据源;生成并处理多维数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能;管理安全性;浏览数据源、共享维度、安全角色和其它对象。SQL

Server

2000的数据库操作工

具物理文件位置D:\SQL2000LX\图书_读者_Data.MDFD:\SQL2000LX\图书_读者_Data.LDF文件名用企业管理器创建数据库图书_读者_Data图书_读者_Log初始大小文件组1MB1MBPRIMARYMyLog用企业管理器创建数据库1.创建数据库1)选择企业管理器。2)选中需要在其上创建数据库的服务器3)选中“数据库”文件夹,单击右键,在弹出上选择“新建数据库”。在常规页面中,输入数据库名,选择SQL服务器。SQL

Server

2000的数据库操作工

具用企业管理器创建数据库1.创建数据库4)选择数据文件页面,输入数据文件属性;再选择事物日志页面,输入数据库的日志文件属性。5)单击“确定”按钮,关闭对话框。SQL

Server

2000的数据库操作工

具SQL

Server

2000的数据库操作工

具用企业管理器创建数据库2

.查看和修改数据库属性参数

3

.删除数据库在企业管理器中定义和管理表1.新建表选中数据库中的表文件夹,击鼠标右健。在弹出的菜单中选择新建表。随后输入表结构对话框。SQL

Server

2000的数据库操作工

具在企业管理器中定义和管理表1.新建表在对话框中单击右键,出现一个弹出框。字段输入完后,关闭建表对话框。在对话框中输入表名,单击“确定”按钮。SQL

Server

2000的数据库操作工

具SQL

Server

2000的数据库操作工

具在企业管理器中定义和管理表2.定义表的完整性约束和索引(1)定义索引和键(2)定义表间关联选择“索引/键”页面,选择表页面SQL

Server

2000的数据库操作工

具在企业管理器中定义和管理表2.定义表的完整性约束和索引(3)定义CHECK约束SQL

Server

2000的数据库操作工

具在企业管理器中定义和管理表3

.修改表结构SQL

Server

2000的数据库操作工

具在企业管理器中定义和管理表4

.在表中插入

、修改或删除数据SQL

Server

2000的数据库操作工

具视图的创建和维护1

.创建视图SQL

Server

2000的数据库操作工

具视图的创建和维护2

.查看和修改视图SQL

Server

2000的数据库操作工

具关联表的创建和维护1

.创建关联表SQL

Server

2000的数据库操作工

具关联表的创建和维护2

.编辑数据库图表SQL

Server

2000的数据库操作工

具关联表的创建和维护3

.数据库图表的删除存储过程及触发器的创建和维护1.存储过程存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。2.存储过程的分类1)、系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,如sp_help就是取得指定对象的相关信息2)、扩展存储过程以XP_开头,用来调用操作系统提供的功能execmaster..xp_cmdshell"ping10.8.16.1"3)、用户自定义的存储过程,这是我们所指的存储过程SQL

Server

2000的数据库操作工

具SQL

Server

2000的数据库操作工

具存储过程及触发器的创建和维护存储过程及触发器的创建和维护create

proc

[edure]存储过程名[

;分组号数][{@参数名

数据类型}[varying][=参数的默认值][output]][,

…][with{recompile

|encryption

|recompile,encryption}][for

replication]AsT-SQL语句[…]SQL

Server

2000的数据库操作工

具存储过程及触发器的创建和维护CREATEPROCEDUREpro_a@para1char(2)ASselectsno,snamefromstudentwheresex=@para1执行存储过程execpro_a"男‘删除存储过程Dropprocedureproc_aSQL

Server

2000的数据库操作工

具存储过程及触发器的创建和维护2.触发器触发器是一种特殊的存储过程,用户创建触发器后,就能控制与触发器关联的表。当表中的数据发生插入、删除或修改时,触发器自动运行。创建触发器Createtrigger触发器名on表名|视图名等例如:createtriggermessage1onelectiveForinsert,updateAsraiserror(‘Warning!’,10,1)修改触发器Altertrigger删除触发器Droptrigger触发器名SQL

Server

2000的数据库操作工

具SQL

Server

2000的数据库操作工

具存储过程及触发器的创建和维护 Transact-SQL语言数据定义语言1.创建和管理数据库CREATEDATABASE〈数据库名〉[ON[PRIMARY][(NAME=〈逻辑数据文件名〉,]FILENAME="〈操作数据文件路径和文件名〉"[,SIZE=〈文件长度〉][,MAXSIZE=〈最大长度〉][,FILEROWTH=〈文件增长率〉])[,…n]][LOGON([NAME=〈逻辑日志文件名〉,]FILENAME="〈操作日志文件路径和文件名〉"[,SIZE=〈文件长度〉])[,…n]][FORRESTORE]子句中:PRIMARY指明主文件名;SIZE说明文件的大小,数据库文件最小为1MB,默认值为3MB;FILEROWTH说明文件的增长率,默认值为10%。FORRESTORE子句说明重建一个数据库,该重建的数据库用于数据恢复操作。 Transact-SQL语言数据定义语言1

.创建和管理数据库【例6-

1】建立学生选课库CREATEDATABASE学生选课库ON

PRIMARY(NAME=学生选课库,FILENAME=‘c:\msSQL\data\

学生选课.m

df

’,SIZE=4MB,

MAXSIZE=6MB,FILEROWHT=2MB) Transact-SQL语言数据定义语言(2)选择数据库USE<数据库名>注意:在Transact-SQL中没有语法结束符号。语句结束后按<Enter>键,并另起一行输入GO语句,再按<Enter>键。(3)删除数据库DROPDATABASE<数据库名组>【例6-2】将学生选课库删除DROPDATABASE学生选课库GO Transact-SQL语言数据定义语言2.定义表CREATETABLE<表名>(<列名><类型>|AS<表达式>[<字段约束>][,……][<记录约束>])(1)字段约束1)[NOTNULL|NULL]:不允许或允许字段值为空。2)[PRIMARYKEYCLUSTERED|NONCLUSTERED:字段为主码并建立聚集或非聚集索引。3)[REFERENCE〈参照表〉(〈对应字段〉)]:定义被参照表及字段。4)[DEFAULT〈缺省值〉]:定义字段的缺省值。5)[CHECK(〈条件〉)]:定义字段应满足的条件表达式。6)[IDENTITY(〈初始值〉,〈步长〉)]:定义字段为数值型数据,并指出它的初始值和逐步增加的步长值。 Transact-SQL语言数据定义语言2.定义表CREATETABLE<表名>(<列名><类型>|AS<表达式>[<字段约束>][,……][<记录约束>])(2)记录约束CONSTRAINT<约束名><约束式>1)[PRIMARYKEY[CLUSTERED|NONCLUSTERED](<列名组>)]:定义表的主码并建立主码的聚集或非聚集索引;2)[FOREIGNKEY(<外码>)REFERENCES<参照表>(<对应列>)]:指出表的外码和被参照表;3)[CHECK(<条件表达式>)]:定义记录应满足的条件;4)[UNIQUE(<列祖>)]:定义不允许重复值的字段组 Transact-SQL语言(3)数据类型(如表)例:建立一个职工表CREATETABLE职工(编号smallintPRIMARYKEYCLUSTERED,姓名CHAR(8),基本工资smallmoney,实发工资AS基本工资+附加工资,部门代码smallintREFERENCES部门(代码),性别CHAR(2)DEFAULT"男"CHECK(性别IN("男","女"))) Transact-SQL语言数据定义语言3

.基本表的维护(1)修改基本表1)

修改字段的定义。ALTER

TABLE

〈表名〉ALTERCOLUMN

〈列名〉

〈新类型〉[NULL|NOT

NULL]

〈约束定义〉2)

增加字段和表约束规则。ALTER

TABLE

〈表名〉

ADD{

〈列定义〉|[

〈表约束定义〉

]}3)

删除字段或约束规则。ALTERTABLE

〈表名〉

DROP{[CONSTRAINT]

〈约束名〉|COLUMN

〈列

名〉

}4)

使约束有效或无效。ALTERTABLE

〈表名〉{CHECK|NOCHECK}CONSTRAINT

{ALL|

〈约束名组〉

}(2)

删除基本表

:DROP

TABLE

〈表名〉 Transact-SQL语言数据定义语言3.基本表的维护例如:在S表中增加一个班号列和住址列。USESTUDENTALTERTABLESADDCLASS_NOCHAR(6),ADDRESSCHAR(40)例如:在SC表中增加完整性约束定义,使SCORE在0-100之间。USESTUDENTALTERTABLESCADDCONSTRAINTSCORE_CHKCHECK(SCOREBETWEEN0AND100) Transact-SQL语言数据定义语言3.基本表的维护例如:删除S表中的AGE_CHK约束USESTUDENTALTERTABLESDROPCONSTRAINTAGE_CHK改变基本表的名字使用RENAME命令,可以改变基本表的名字,其语法格式为:ENAME<旧表名>TO<新表名>例如:将S表的名字更改为STUDENTUSESTUDENTRENAMESTOSTUDENT Transact-SQL语言数据定义语言4.创建和管理索引(1)创建索引CTEATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX〈索引名〉ON〈表名〉(〈索引列组〉)(2)删除索引DROPINDEX〈表名〉.〈索引名〉例如:为表SC在SNO和CNO上建立唯一索引。USESTUDENTCREATEUNIQUEINDEXSCIONSC(SNO,CNO)例如:为教师表T在TN上建立聚集索引。CREATECLUSTERINDEXTIONT(TN) Transact-SQL语言数据定义语言5.创建和管理视图(1)创建视图创建视图的语法为:CREATEVIEW〈视图名〉[(〈列名组〉)][WITHENCRYPTIOPN]AS〈子查询〉[WITHCHECKOPTION](2)删除视图DROPVIEW〈视图名组〉 Transact-SQL语言数据定义语言6.创建和管理缺省(1)创建缺省CREATEDEFAULT〈缺省名〉(2)绑定缺省EXECsp_bindfault‘〈缺省名〉’,‘〈表名〉.〈列名〉’系统存储过程执行时的格式为:EXEC〈存储过程名〉〈参数组〉如果参数是常量,则要加定界符‘’。(3)解除缺省EXECsp_unbinddefault‘〈缺省名〉’,‘〈表名〉.〈列名〉’(4)删除缺省DROPDEFAULT〈缺省名组〉 Transact-SQL语言数据定义语言6.创建和管理缺省例如:createdefaultaddress_defaultas‘unknown’例如:将默认值address_default绑定到student表的address列ExecSp_bindefault‘address_default’,‘student.address’例如:execsp_unbindefault‘student.address’例如:dropdefaultaddress_defa Transact-SQL语言数据定义语言7.创建和管理规则(1)创建规则CREATERULE〈规则名〉AS〈规则表达式〉规则表达式是WHERE子句中的有效表达式。(2)绑定规则EXECsp_bindrule‘〈规则名〉’,‘〈对象名〉’(3)解除规则EXECsp_unbindrule‘〈规则名〉’,‘〈对象名〉’(4)删除规则DROPRULE〈规则名组〉 Transact-SQL语言数据定义语言7.创建和管理规则例如:将规则range_rule绑定到student表的grade列execsp_bindrule‘range_rule’,’student.grade’例如:execsp_unbindrule‘student.grade’例如:droprulerange_rule Transact-SQL语言数据定义语言8.创建和管理存储过程(1)创建存储过程和调用存储过程CREATEPROCEDURE〈过程名〉[;〈版本号〉][@〈参数名〉〈参数类型〉[=〈缺省值〉][OUTPUT]…][WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]AS〈SQL语句组〉1)版本号是可选的整数,它用于将有相同名字的存储过程编为不同的组。2)OUTPUT选项用于给调用者返回值。3)RECOMPILE为重编译选项。它要求每次执行都要对过程重编译和优化,并创建新的查询计划。 Transact-SQL语言数据定义语言8.创建和管理存储过程(1)创建存储过程和调用存储过程4)ENCYPTION为加密选项。5)参数前加“@”为局部变量,参数前加“@@”则说明为全局变量。过程的调用语句为:EXE[UTE]〈过程名〉[[@〈参数名〉=]〈参数〉…[〈版本号〉](2)删除存储过程DROPPROCEDURE〈存储过程名组〉 Transact-SQL语言数据定义语言9.创建和管理触发器CREATETRIGGER〈触发器名〉ON〈表名〉[WITHENCRYPTION]FOR{[DELETE][,][INSERT][,][UPDATE]}[WITHAPPEND][NOTFORREPLICATION]AS〈SQL语句组〉1)WITHENCRYPTION为加密选项。2)DELETE触发器是当对表执行DELETE操作时删除元组,将删除的元组放入deleted表中。检查delete表中的数据,确定该如何处理。 Transact-SQL语言数据定义语言9.创建和管理触发器CREATETRIGGER〈触发器名〉ON〈表名〉[WITHENCRYPTION]FOR{[DELETE][,][INSERT][,][UPDATE]}[WITHAPPEND][NOTFORREPLICATION]AS〈SQL语句组〉3)INSERT触发器在对执行插入数据操作时,将插入表中的数据拷贝并送入inserted表中,根据inserted表中的值决定如何处理。4)UPDATE触发器仅在更新数据操作时将要被更新的原数据移入deleted表中,将更新后的数据备份送入inserted表中,对deleted和inserted表进行检查,并决定如何处理。5)NOTFORREPLICATION项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。 Transact-SQL语言【例6-21】设有member表(成员表)、loan表(借书表)和reservation表(预定书表)。通过触发器定义未还图书的成员不能从成员表中删除,当删除成员时,该成员在的预定书表(reservation表)中的记录也将全部被删除。CREATETRIGGERmember_deleteONmemberFORDELETEASIF(SELECTCOUNT(*)FROMloan,deletedWHEREloan.member_no=deleted.member_no)>0ROLLBACKTRANSACTIONELSEDELETEreservationFROMreservation,deletedWHEREreservation.member_no=deleted.member_no Transact-SQL语言Transact-SQL的数据操纵1.数据检索语句的语句格式SELECT〈查询列〉[INTO〈新表名〉][FROM〈数据源〉][WHERE〈元组条件表达式〉][GROUPBY〈分组条件〉][HAVING〈组选择条件〉][ORDERBY〈排序条件〉][COMPUTER〈统计列组〉][BY〈表达式〉] Transact-SQL语言Transact-SQL的数据操纵1.数据检索语句的语句格式SELECT[ALL|DISTINCT][TOP〈数值〉[PERCENT]]〈查询列组〉查询列为:〈查询列〉::=*|〈表或视图〉.*|〈列名或表达式〉[AS]〈列别名〉|〈列别名〉=〈表达式〉1)ALL|DISTINCT:ALL为返回所有行,DISTINCT为仅显示结果集中的惟一行。该项不选时,ALL是缺省值。2)TOP〈数值〉:仅返回结果集中的前〈数值〉行。如果有[PENCENT],则返回结果集中的百分之〈数值〉行记录。3)“*”:指明返回表和视图的全部列。4)〈表或视图〉.*:指明返回指定表或视图的全部列。5)〈列别名〉:用来代替出现在结果集中的列名或表达式,别名可以在ORDERBY子句中出现,但不能在WHERE、GROUPBY或HAVING子句中出现。 Transact-SQL语言Transact-SQL的数据操纵1.数据检索语句的语句格式INTO子句将查询结果添加到创建表中。INTO不能与COMPUTE子句同时使用。如果创建表是临时表,在表名前加“#”字符。FROM语法格式为:FROM〈数据源组〉数据源的语法为:〈数据源〉::=〈表名〉[[AS]〈表别名〉][WITH(〈表线索组〉)]|〈视图名〉[[AS]〈视图别名〉]|〈行集合函数〉[[AS]〈别名〉]|〈嵌套的SELECT语句〉[[AS]〈别名〉]|〈连接表〉连接表的语法为:〈连接表〉::=〈数据源〉〈连接类型〉〈数据源〉ON〈连接条件〉|〈数据源〉CROSSJOIN〈数据源〉|〈连接表〉〈连接类型〉::=[INNER|{{LEFT|RIGHT|FULL}[OUTER]}]JOIN1)INNER为内连接,它返回所有连接匹配的行。LEFT[OUTER]为左外连接。RIGHT[OUTER]为右外连接。FULL[OUTER]为完全外连接。2)ON〈连接条件〉指定连接条件:〈列名〉〈比较符〉〈列名〉3)CROSSJOIN为交叉连接,即对两个表进行笛卡儿积运算。 Transact-SQL语言Transact-SQL的数据操纵1.数据检索语句的语句格式(4)WHERE子句WHERE〈查询条件〉|〈旧格式外连接理条件〉〈旧格式外连接条件〉::=〈列名〉{*=|=*}〈列名〉(5)GROUPBY子句GROUPBY[ALL]〈分组表达式组〉(6)HAVING子句。HAVING〈分组或汇总筛选条件〉(7)ORDERBYORDERBY〈排序项〉[ASC|DESC][,…n](8)COMPUTE子句。产生汇总值,在结果集中后将汇总值放入摘要列,COMPUTE与BY配合,起到换行控制和分段小计的作用。COMPUTE〈统计函数组〉[BY〈分组项〉]其中:BY〈分组项〉表示在结果集中产生换行控制及分段小计。COMPUTEBY必须和ORDERBY配合使用。 Transact-SQL语言Transact-SQL的数据操纵2.查询实例设图书借阅数据库中包括:图书(书号,类别,出版社,作者,书名,定价);读者(书证号,姓名,单位,性别,电话);借阅(书号,读者书证号,借阅日期).【例6-22】将计算机类的书存入永久的计算机图书表,将借书日期在99年以前的借阅记录存入临时的超期借阅表。SELECT*INTO计算机图书FROM图书WHERE类别=’计算机’GOSELECT*INTO#超期借阅FROM借阅WHERE借阅日期<’1999-01-01’ Transact-SQL语言Trans

温馨提示

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

评论

0/150

提交评论