资源描述
2022-10-4机械工业出版社机械工业出版社6.1 SQL Server 2000系统结构系统结构6.2 SQL Server 2000的管理功能的管理功能6.4 SQL Server 2000数据库操作工具数据库操作工具6.3 Transact-SQL功能及实例功能及实例 1.桌面型数据库系统和客户机桌面型数据库系统和客户机/服务器型数据库系统服务器型数据库系统桌面型数据库系统:桌面型数据库系统:SQL Server 2000安装在客户端计算机中,数据库存安装在客户端计算机中,数据库存储在客户端计算机中。储在客户端计算机中。客户机客户机/服务器型数据库系统:服务器型数据库系统:系统安装在网络服务器中,数据库为网络系统安装在网络服务器中,数据库为网络中的客户机应用程序共享。中的客户机应用程序共享。2.客户机客户机/服务器的结构和功能服务器的结构和功能 可以通过网络连接产品将多台计算机连接为企业内部网,能够与可以通过网络连接产品将多台计算机连接为企业内部网,能够与Internet相连并发布网页。相连并发布网页。3.N-Tier客户机客户机服务器结构服务器结构 后端服务器、中间端服务器和客户机:客户机应用程序负责建立用户界后端服务器、中间端服务器和客户机:客户机应用程序负责建立用户界面,通过用户界面让用户向数据库添加、修改、删除、查询数据;数据面,通过用户界面让用户向数据库添加、修改、删除、查询数据;数据库服务器执行数据库的存储、检索、管理、安全性及数据备份工作;中库服务器执行数据库的存储、检索、管理、安全性及数据备份工作;中间端服务器可以是多层的,管理一个或多个独立的数据库,为客户机或间端服务器可以是多层的,管理一个或多个独立的数据库,为客户机或前级服务器提供事务服务和数据预处理;后端服务器是中间服务器的后前级服务器提供事务服务和数据预处理;后端服务器是中间服务器的后台,管理多个中间服务器,提供整个数据库系统的事务管理功能。台,管理多个中间服务器,提供整个数据库系统的事务管理功能。6.1.2.与与Internet高度集成功能高度集成功能 SQL Server 2000可以作为Internet或内部网服务器的后端数据库,它与Web服务器协作,为Web服务器和浏览器提供信息。SQL Server 2000通过Web站点共享数据,它可以发布Web网页和接收电子邮件,使用Web浏览器可以直接访问SQL Server 2000数据库的数据,且易于学习和使用。6.1.4 数据库对象数据库对象1.数据库的类别数据库的类别(1)物理数据库和逻辑数据库物理数据库和逻辑数据库 物理数据库由构成数据库的物理文件构成。物理数据库由构成数据库的物理文件构成。SQL Server 2000的一个物理数据库中至少有一个数据库信息文件和一个数据库事务的一个物理数据库中至少有一个数据库信息文件和一个数据库事务日志文件。物理数据库由日志文件。物理数据库由DBA(数据库管理员)负责创建和管理。(数据库管理员)负责创建和管理。逻辑数据库是数据库中用户可视的表或视图,用户利用逻辑数据逻辑数据库是数据库中用户可视的表或视图,用户利用逻辑数据库的数据库对象,存储或读取数据库中的数据。库的数据库对象,存储或读取数据库中的数据。(2)(2)系统数据库和用户数据库系统数据库和用户数据库 系统数据库是由系统创建和维护的数据库。系统数据库中记录系统数据库是由系统创建和维护的数据库。系统数据库中记录着着SQL Server 2000的配置情况、任务情况和用户数据库的情况等系的配置情况、任务情况和用户数据库的情况等系统管理的信息,它实际上就是我们常说的数据字典。统管理的信息,它实际上就是我们常说的数据字典。用户数据库是根据管理对象要求创建的数据库,用户数据库中用户数据库是根据管理对象要求创建的数据库,用户数据库中保存着用户直接需要的数据信息。保存着用户直接需要的数据信息。2.SQL Server 2000的数据库对象的数据库对象(1)表和视图:表和视图:表是在数据库中存放的实际关系。视图是为了用户查表是在数据库中存放的实际关系。视图是为了用户查询方便或根据数据安全的需要而建立的虚表。询方便或根据数据安全的需要而建立的虚表。(2)角色:角色:由一个或多个用户组成的单元,也称职能组。一个用户可由一个或多个用户组成的单元,也称职能组。一个用户可以成为多个角色中的成员。以成为多个角色中的成员。(3)索引:索引:来加速数据访问和保证表的实体完整性的数据库对象。的来加速数据访问和保证表的实体完整性的数据库对象。的索引有群聚和非群聚索引两种。群聚索引会使表的物理顺序与索索引有群聚和非群聚索引两种。群聚索引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。理顺序无关,一个表可以建立多个非群聚索引。(4)存储过程存储过程:通过:通过Transact-SQL编写的程序。包括系统存储过程和编写的程序。包括系统存储过程和用户存储过程:系统存储过程是由用户存储过程:系统存储过程是由SQL Server 2000提供的,其过提供的,其过程名均以程名均以SP开头;用户过程是由用户编写的,它可以自动执行过开头;用户过程是由用户编写的,它可以自动执行过程中安排的任务。程中安排的任务。(5)触发器:触发器:一种特殊类型的存储过程,当表中发生特殊事件时执行。一种特殊类型的存储过程,当表中发生特殊事件时执行。触发器主要用于保证数据的完整性。触发器主要用于保证数据的完整性。(6)约束:约束:约束规则用于加强数据完整性。约束规则用于加强数据完整性。3.数据库结构(1)SQL Server 2000的三种物理文件的三种物理文件1)基本数据文件:基本数据文件用于容纳数据库对象,它使用基本数据文件:基本数据文件用于容纳数据库对象,它使用.mdf作作为文件扩展名。为文件扩展名。2)辅助数据文件:当数据库中的数据较多时需要建立辅助数据文件。辅助数据文件:当数据库中的数据较多时需要建立辅助数据文件。一个数据库中可以没有、也可以有一个或多个辅助数据文件。辅助数据一个数据库中可以没有、也可以有一个或多个辅助数据文件。辅助数据文件的扩展名为文件的扩展名为.ndf。3)日志文件:用于存放数据库日志信息的文件。一个数据库可以有一日志文件:用于存放数据库日志信息的文件。一个数据库可以有一个或多个日志文件。日志文件的扩展名为个或多个日志文件。日志文件的扩展名为.ldf。(2)数据库文件的两种组件数据库文件的两种组件1)页:使用的最小数据单元,一页可以容纳页:使用的最小数据单元,一页可以容纳8k的数据。共有的数据。共有8种页:种页:数据页、索引页、文本数据页、索引页、文本/图像页、全局分配映射表页、页空闲空间、索图像页、全局分配映射表页、页空闲空间、索引分配映射表页、大容量更改映射表页和差异更改映射表页。引分配映射表页、大容量更改映射表页和差异更改映射表页。2)扩展盘区:扩建表和索引的基本单位,一个扩展盘区由扩展盘区:扩建表和索引的基本单位,一个扩展盘区由8个相邻页的个相邻页的构成。构成。(3)文件组:多个文件可以归纳成为一个文件组。文件组:多个文件可以归纳成为一个文件组。6.1.5 SQL Server 2000的系统数据库的系统数据库1.Master数据库数据库Master数据库的主文件名为数据库的主文件名为Master.mdf,日志文件为,日志文件为Masterlog.ldf。Master中内含许多系统表,用来跟踪和记录中内含许多系统表,用来跟踪和记录SQL Server相关信息。相关信息。2.Msdb数据库数据库Msdb的主文件名为的主文件名为Msdb.dbf,日志文件名为,日志文件名为Msdb.ldf。Msdb由由SQL Server企业管理器和代理服务器使用。企业管理器和代理服务器使用。Msdb中记录着任务计划信息、中记录着任务计划信息、事件处理信息、数据备份及恢复信息和警告及异常信息。事件处理信息、数据备份及恢复信息和警告及异常信息。3.Model数据库数据库Model数据库的主文件是数据库的主文件是model.mdf,日志文件为,日志文件为model.ldf。Model数数据库是据库是SQL Server 2000为用户数据库提供的样板,新的用户数据库都为用户数据库提供的样板,新的用户数据库都以以model数据库为基础。数据库为基础。4.tempdb数据库数据库tempdb的主文件名和日志文件名分别为的主文件名和日志文件名分别为tempdb.dbf和和tempdb.ldf。tempdb是一个共享的工作空间,是一个共享的工作空间,SQL Server 2000中的所有数据库都可中的所有数据库都可以使用它,它为临时表和其他临时工作提供了一个存储区。以使用它,它为临时表和其他临时工作提供了一个存储区。6.2 SQL Server 2000的管理工具1.查询分析器查询分析器编辑编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显,将其发送到服务器,并将执行结果及分析显示出来。通过测试查询成本,判断该查询是否需要增加索引以提高示出来。通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。查询速度,并可以实现自动建立索引的功能。2.导入和导出数据导入和导出数据 导入和导出数据通过一个向导程序导入和导出数据通过一个向导程序“数据转换服务(简称数据转换服务(简称DTS)”实现,其作用是使实现,其作用是使SQL Server 与任何与任何OLE DB、ODBC、JDBC或或文本文件等多种不同类型的数据库之间实现数据传递。文本文件等多种不同类型的数据库之间实现数据传递。3.服务管理器服务管理器 服务管理器(服务管理器(Service Manger)用于开启、暂停和停止)用于开启、暂停和停止SQL服务服务工作,同时,也可以通过它设置服务是否自动启动。工作,同时,也可以通过它设置服务是否自动启动。4.客户机网络连接工具和服务器网络连接工具客户机网络连接工具和服务器网络连接工具 客户机网络连接工具用于设置本机作为服务器或客户机所使用客户机网络连接工具用于设置本机作为服务器或客户机所使用的缺省网络链接库,并可为不支持缺省网络库的的缺省网络链接库,并可为不支持缺省网络库的SQL服务器设置连服务器设置连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接协议,以支持不同配置的客户端。接协议,以支持不同配置的客户端。5.联机丛书联机丛书 联机丛书是联机丛书是SQL Server 2000为用户提供的在线帮助功能。在为用户提供的在线帮助功能。在联机丛书中,全面而详细地介绍了有关联机丛书中,全面而详细地介绍了有关SQL Server2000的功能、的功能、管理及开发方法、管理及开发方法、TSQL语法等。语法等。6.企业管理器企业管理器 企业管理器窗口的左边是以树形结构组织的管理对象,右边称为明企业管理器窗口的左边是以树形结构组织的管理对象,右边称为明细窗口,其内容是是左边选中对象的详细内容。企业管理器可以实现细窗口,其内容是是左边选中对象的详细内容。企业管理器可以实现对管理对象的定义、改动、删除等各种操作。对管理对象的定义、改动、删除等各种操作。7.事件探查器事件探查器 用于监视与分析用于监视与分析SQL Server活动、服务器的网络进出流量或发出活动、服务器的网络进出流量或发出在在SQL Server上的事件。事件探查器把一个操作序列保存为一上的事件。事件探查器把一个操作序列保存为一个个.trc文件,然后在本机或其他机器上按原来的次序重新执行一遍。文件,然后在本机或其他机器上按原来的次序重新执行一遍。8.在在IIS中配置中配置SQL XML支持支持 SQLServer 2000含有含有SQL Server的的IIS虚拟目录管理器,通过它虚拟目录管理器,通过它在在IIS定义一个与定义一个与SQL Server 2000实例相关的虚拟目录。实例相关的虚拟目录。Internet应应用程序便可以编写出能够引用虚拟目录。用程序便可以编写出能够引用虚拟目录。9.分析管理器分析管理器 提供用户界面以访问分析服务器及其元数据知识库的控制台应用程序。提供用户界面以访问分析服务器及其元数据知识库的控制台应用程序。实现:管理分析服务器,锁定被编辑的对象和它们的从属对象;创建数实现:管理分析服务器,锁定被编辑的对象和它们的从属对象;创建数据库和指定数据源;生成并处理多维数据集;创建并处理数据挖掘模型;据库和指定数据源;生成并处理多维数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能;管理安全性;浏览数据源、共享维度、指定存储选项并优化查询性能;管理安全性;浏览数据源、共享维度、安全角色和其它对象。安全角色和其它对象。6.3 SQL Server 2000数据库操作工具 6.3.1 用企业管理器创建数据库用企业管理器创建数据库 1)选择企业管理器。选择企业管理器。2)选中需要在其上创建数据库的服务器选中需要在其上创建数据库的服务器 3)选中选中“数据库数据库”文件夹,单击右键,在弹出上选择文件夹,单击右键,在弹出上选择“新建数据库新建数据库”。在常规页面中,输入数据库名,选择在常规页面中,输入数据库名,选择SQL 服务器。服务器。4)选择数据文件页面,输入数据文件属性;再选择事物日志选择数据文件页面,输入数据文件属性;再选择事物日志页面,输入数据库的日志文件属性。页面,输入数据库的日志文件属性。5)单击单击“确定确定”按钮,关闭对话框。按钮,关闭对话框。6.3.2 在企业管理器中定义和管理表在企业管理器中定义和管理表 1.新建表新建表选中数据库中的表文件夹,击鼠标右健。在弹出的选中数据库中的表文件夹,击鼠标右健。在弹出的菜单中选择新建表。随后输入表结构对话框。菜单中选择新建表。随后输入表结构对话框。在对话框中单击右键,出现一个弹出框在对话框中单击右键,出现一个弹出框。字段输入完后,关闭建表对话框。在对话框中输入表名,单击字段输入完后,关闭建表对话框。在对话框中输入表名,单击“确定确定”按钮。按钮。2.定义表的完整性约束和索引(1)定义索引和键定义索引和键(2)定义表间关联定义表间关联选择选择“索引索引/键键”页面,选择表页面页面,选择表页面 6.4 Transact-SQL语言 6.4.1 数据定义语言定义语言1.创建和管理数据库创建和管理数据库 CREATE DATABASE数据库名数据库名 ON PRIMARY(NAME=逻辑数据文件名,逻辑数据文件名,FILENAME=操作数据文件路径和文件名操作数据文件路径和文件名 ,SIZE=文件长度文件长度 ,MAXSIZE=最大长度最大长度 ,FILEROWTH=文件增长率文件增长率),n LOG ON(NAME=逻辑日志文件名,逻辑日志文件名,FILENAME=操作日志文件路径和文件名操作日志文件路径和文件名 ,SIZE=文件长度文件长度),n FOR RESTORE 子句中:子句中:PRIMARY指明主文件名指明主文件名;SIZE说明文件的大小,数据库文件最说明文件的大小,数据库文件最小为小为1MB,默认值为,默认值为3MB;FILEROWTH说明文件的增长率,默认值说明文件的增长率,默认值为为10%。FOR RESTORE子句说明重建一个数据库,该重建的数据库子句说明重建一个数据库,该重建的数据库用于数据恢复操作。用于数据恢复操作。2.定义表:定义表:CREATE TABLE表名表名(列名类型列名类型|AS表达式表达式 字段约束字段约束,记录约束记录约束)(1)字段约束字段约束1)NOT NULL|NULL:不允许或允许字段值为空。:不允许或允许字段值为空。2)PRIMARY KEY CLUSTERED|NON CLUSTERED:字段为主码并建立聚:字段为主码并建立聚集或非聚集索引。集或非聚集索引。3)REFERENCE参照表参照表(对应字段对应字段):定义被参照表及字段。:定义被参照表及字段。4)DEFAULT缺省值缺省值:定义字段的缺省值。:定义字段的缺省值。5)CHECK(条件条件):定义字段应满足的条件表达式。:定义字段应满足的条件表达式。6)IDENTITY(初始值,步长初始值,步长):定义字段为数值型数据,并指出它:定义字段为数值型数据,并指出它的初始值和逐步增加的步长值。的初始值和逐步增加的步长值。(2)记录约束记录约束 CONSTRAINT约束名约束式约束名约束式1)PRIMARY KEY CLUSTERED|NON CLUSTERED(列名组列名组)2)FOREIGN KEY(外码外码)REFERENCES参照表参照表(对应列对应列):3)CHECK(条件表达式条件表达式):定义记录应满足的条件。:定义记录应满足的条件。4)UNIQUE(列组列组):定义不允许重复值的字段组。:定义不允许重复值的字段组。3.基本表的维护(1)(1)修改基本表修改基本表1)修改字段的定义。修改字段的定义。ALTER TABLE表名表名 ALTER COLUMN列名列名新类型新类型 NULL|NOT NULL约束定义约束定义2)增加字段和表约束规则。增加字段和表约束规则。ALTER TABLE表名表名ADD列定义列定义|表约束定表约束定义义 3)删除字段或约束规则。删除字段或约束规则。ALTER TABLE表名表名DROPCONSTRAINT约约束名束名|COLUMN列名列名4)使约束有效或无效。使约束有效或无效。ALTER TABLE表名表名CHECK|NOCHECK CONSTRAINT ALL|约束名组约束名组(2)(2)删除基本表删除基本表:DROP TABLE表名表名 4.创建和管理索引 (1)创建索引创建索引 CTEATE UNIQUE CLUSTERED|NON CLUSTERED INDEX索引名索引名ON表名表名(索引列索引列组组)(2)删除索引删除索引 DROP INDEX表名表名.索引名索引名 5.创建和管理视图 (1)创建视图创建视图创建视图的语法为:创建视图的语法为:CREATE VIEW视图名视图名(列名组列名组)WITH ENCRYPTIOPN AS子查询子查询 WITH CHECK OPTION(2)删除视图删除视图 DROP VIEW 视图名组视图名组 6.创建和管理缺省(1)创建缺省创建缺省 CREATE DEFAULT缺省名缺省名(2)绑定缺省绑定缺省 EXEC sp_bindfault 缺省名缺省名,表名表名.列列名名系统存储过程执行时的格式为:系统存储过程执行时的格式为:EXEC存储过程名参数组存储过程名参数组 如果参数是常量,则要加定界符如果参数是常量,则要加定界符 。(3)解除缺省解除缺省EXEC sp_unbinddefault 缺省名缺省名,表名表名.列列名名(4)删除缺省删除缺省 DROP DEFAULT 缺省名组缺省名组7.创建和管理规则(1)创建规则创建规则 CREATE RULE规则名规则名AS规则表达式规则表达式规则表达式是规则表达式是WHERE子句中的有效表达式。子句中的有效表达式。(2)绑定规则绑定规则 EXEC sp_bindrule 规则名规则名,对象对象名名(3)解除规则解除规则EXEC sp_unbindrule 规则名规则名,对象对象名名(4)删除规则删除规则 DROP RULE规则名组规则名组 8.创建和管理存储过程(1)创建存储过程和调用存储过程创建存储过程和调用存储过程 CREATE PROCEDURE过程名过程名;版本号版本号 参数名参数参数名参数类型类型=缺省值缺省值OUTPUTWITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION ASSQL语句组语句组1)版本号是整数,它用于将有相同名字的存储过程编为不同的组。版本号是整数,它用于将有相同名字的存储过程编为不同的组。2)OUTPUT用于给调用者返回值。用于给调用者返回值。3)RECOMPILE为重编译。为重编译。4)ENCYPTION为加密选项。为加密选项。5)参数前加参数前加“”为局部变量,加为局部变量,加“”则说明为全局变量。则说明为全局变量。过程的调用语句为:过程的调用语句为:EXEUTE过程名过程名参数名参数名=参数参数版本号版本号(2)删除存储过程删除存储过程 DROP PROCEDURE存储过程名组存储过程名组 9.创建和管理触发器CREATE TRIGGER触发器名触发器名ON表名表名 WITH ENCRYPTION FORDELETE,INSERT,UPDATE WITH APPEND NOT FOR REPLICATION ASSQL语句组语句组1)WITH ENCRYPTION为加密。为加密。2)DELETE触发器是当对表执行触发器是当对表执行DELETE操作时删除元组,将删除的元操作时删除元组,将删除的元组放入组放入deleted表中。检查表中。检查delete表中的数据,确定该如何处理。表中的数据,确定该如何处理。3)INSERT触发器在对执行插入数据操作时触发器在对执行插入数据操作时,将插入表中的数据拷贝并送将插入表中的数据拷贝并送入入inserted表中,根据表中,根据inserted表中的值决定如何处理。表中的值决定如何处理。4)UPDATE触发器仅在更新数据操作时将要被更新的原数据移入触发器仅在更新数据操作时将要被更新的原数据移入deleted表中,将更新后的数据备份送入表中,将更新后的数据备份送入inserted表中,对表中,对deleted和和inserted表进行检查,并决定如何处理。表进行检查,并决定如何处理。5)NOT FOR REPLICATION项说明当一个复制过程在修改一个触发器项说明当一个复制过程在修改一个触发器表时,表时,与该表相关联的触发器不能被执行。与该表相关联的触发器不能被执行。【例【例6-21】设有】设有member表(成员表)、表(成员表)、loan表(借书表)和表(借书表)和reservation表(预定书表)。通过触发器定义未还图书的成员不能从成员表中删除,当删表(预定书表)。通过触发器定义未还图书的成员不能从成员表中删除,当删除成员时,该成员在的预定书表(除成员时,该成员在的预定书表(reservation表)中的记录也将全部被删除。表)中的记录也将全部被删除。CREATE TRIGGER member_delete ON member FOR DELETE AS IF(SELECT COUNT(*)FROM loan,deleted WHERE loan.member_no=deleted.member_no)0 ROLLBACK TRANSACTION ELSE DELETE reservation FROM reservation,deleted WHERE reservation.member_no=deleted.member_no6.4.2 数据操纵语言数据操纵语言1.数据检索语句的语句格式 SELECT查询列 INTO新表名 FROM数据源 WHERE元组条件表达式 GROUP BY分组条件HAVING组选择条件 ORDER BY排序条件 COMPUTER统计列组BY表达式(1)SELECT子句SELECT ALL|DISTINCT TOPSELECT ALL|DISTINCT TOP数值数值PERCENTPERCENT查询列组查询列组查询列为:查询列为:查询列查询列:=:=*|表或视图表或视图.*|列名或表达式列名或表达式ASAS列别名列别名|列别名列别名=表达式表达式1)ALL|DISTINCT1)ALL|DISTINCT:ALLALL为返回所有行为返回所有行,DISTINCT,DISTINCT为仅显示结果集为仅显示结果集中的惟一行。该项不选时,中的惟一行。该项不选时,ALLALL是缺省值。是缺省值。2)TOP2)TOP数值:仅返回结果集中的前数值行。如果有数值:仅返回结果集中的前数值行。如果有PENCENTPENCENT,则返回结果集中的百分之数值行记录。,则返回结果集中的百分之数值行记录。3)“3)“*”:指明返回表和视图的全部列。:指明返回表和视图的全部列。4)4)表或视图表或视图.*:指明返回指定表或视图的全部列。:指明返回指定表或视图的全部列。5)5)列别名:用来代替出现在结果集中的列名或表达式,别名列别名:用来代替出现在结果集中的列名或表达式,别名可以在可以在ORDER BYORDER BY子句中出现,但不能在子句中出现,但不能在WHEREWHERE、GROUP BYGROUP BY或或HAVINGHAVING子句中出现。子句中出现。(2)INTO子句和FROM子句 INTOINTO子句将查询结果添加到创建表中。子句将查询结果添加到创建表中。INTOINTO不能与不能与COMPUTE COMPUTE 子句子句同时使用。如果创建表是临时表,在表名前加同时使用。如果创建表是临时表,在表名前加“#”#”字符。字符。FROMFROM语法格式为:语法格式为:FROMFROM数据源组数据源组数据源的语法为:数据源的语法为:数据源数据源:=:=表名表名ASAS表别名表别名WITH(WITH(表线索组表线索组)|视图名视图名ASAS视图别名视图别名|行集合函数行集合函数ASAS别名别名|嵌套的嵌套的SELECTSELECT语句语句ASAS别名别名|连接表连接表连接表的语法为:连接表的语法为:连接表连接表:=:=数据源连接类型数据源数据源连接类型数据源ONON连接条件连接条件|数据源数据源CROSSJOINCROSSJOIN数据源数据源|连接表连接表连接类型连接类型:=INNER|LEFT|RIGHT|FULLOUTER JOIN:=INNER|LEFT|RIGHT|FULLOUTER JOIN1)INNER1)INNER为内连接,它返回所有连接匹配的行。为内连接,它返回所有连接匹配的行。LEFT OUTERLEFT OUTER为左外为左外连接。连接。RIGHT OUTERRIGHT OUTER为右外连接。为右外连接。FULL OUTERFULL OUTER为完全外连接。为完全外连接。2)ON2)ON连接条件指定连接条件:列名比较符列名连接条件指定连接条件:列名比较符列名3)CROSS JOIN3)CROSS JOIN为交叉连接,即对两个表进行笛卡儿积运算。为交叉连接,即对两个表进行笛卡儿积运算。(4)WHERE子句子句 WHERE查询条件查询条件|旧格式外连接理条件旧格式外连接理条件 旧格式外连接条件旧格式外连接条件:=列名列名*=|=*列名列名(5)GROUP BY子句子句 GROUP BY ALL分组表达式组分组表达式组(6)HAVING子句。子句。HAVING分组或汇总筛选条件分组或汇总筛选条件(7)ORDER BY ORDER BY排序项排序项ASC|DESC,n(8)COMPUTE子句。子句。产生汇总值产生汇总值,在结果集中后将汇总值放入摘要列,在结果集中后将汇总值放入摘要列,COMPUTE与与BY配合,配合,起到换行控制和分段小计的作用。起到换行控制和分段小计的作用。COMPUTE统计函数组统计函数组BY分组项分组项 其中:其中:BY分组项表示在结果集中产生换行控制及分段小计。分组项表示在结果集中产生换行控制及分段小计。COMPUTE BY必须和必须和ORDER BY配合使用。配合使用。2 Transact-SQL查询实例设图书借阅数据库中包括:设图书借阅数据库中包括:图书图书(书号,类别,出版社,作者,书名,定价书号,类别,出版社,作者,书名,定价);读者读者(书证号,姓名,单位,性别,电话书证号,姓名,单位,性别,电话);借阅借阅(书号,读者书证号,借阅日期书号,读者书证号,借阅日期).【例【例6-22】将计算机类的书存入永久的计算机图书表,】将计算机类的书存入永久的计算机图书表,将借书日期在将借书日期在99年以前的借阅记录存入临时的超期借阅表。年以前的借阅记录存入临时的超期借阅表。SELECT*INTO 计算机图书计算机图书 FROM 图书图书 WHERE 类别类别=计算机计算机 GO SELECT*INTO#超期借阅超期借阅 FROM 借阅借阅 WHERE 借阅日期借阅日期1999-01-01 GO查询例子【例【例6-246-24】查找类别中最高的图书定价不低于全部按类别分组】查找类别中最高的图书定价不低于全部按类别分组的图书平均定价的的图书平均定价的2 2倍的图书。倍的图书。SELECT A.SELECT A.*FROM FROM 图书图书 A A GROUP BY A.GROUP BY A.类别类别 HAVING MAX(A.HAVING MAX(A.定价定价)=ALL(SELECT 2=ALL(SELECT 2*AVG(B.AVG(B.定价定价)FROM FROM 图书图书 B GROUP BY B.B GROUP BY B.类别类别)【例【例6-276-27】列出计算机类图书的书号、名称及价格,并求出各】列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。出版社这类书的总价格,最后求出全部册数和总价格。SELECTSELECT书号,名称,定价书号,名称,定价 FROM FROM 图书图书 WHERE WHERE 类别类别=计算机类计算机类 ORDER BY ORDER BY 书号书号 ASCASC COMPUTE COUNT(COMPUTE COUNT(*),SUM(SUM(定价定价)BY)BY 出版社出版社 COMPUTE COUNT(COMPUTE COUNT(*),SUM(SUM(定价定价)
展开阅读全文