引言本专刊主要针对于刚刚加入用友维护队伍、希望快速提高个人面向U8软件维护工作的SQLServer应用能力的人员而编写,特别适用于SQLServer初学者。注意:本专刊是为SQLServer快速入门而编写,内容简单概括,读者要使自己的SQLServer水平有质的提高,在实际工作中要充分利用SQLServer联机帮助,它是最具权威的参考资料。本专刊主要内容:第一章概述U8数据库特点、常用的SQL工具、语法格式,以及SQLServer数据库中的一些常用的术语。第二章和第三章主要介绍SQL的基础、高级应用。第四章简要介绍事件探查器的使用。事件探查器是U8维护工作中最为常用的分析工具。附录内容包括组成数据库对象的概念、SQLSERVER的系统组成以及Transact_SQL小手册,可以作为查询SQLServer信息的快速参考。U8产品支持部2信息反馈:由于时间和水平有限,不当之处和错误在所难免,如果在阅读中发现本专刊有错误之处,恳请读者批评指正!如果读者对本刊的编制或SQLServer学习方面有好的意见或建议,敬请email至如下地址:陈媛cheny@ufsoft.com.cn陈湘林gccxl@ufsoft.com.cn马大刚mdg@ufsoft.com.cn致谢:本期SQLServer专刊是在两期新员工、部分分公司维护人员进行的SQLServer培训的基础上整理而成。参与培训人员对本专刊的编制提供了很多有益的意见和建议,在这里对他们积极支持和配合(特别是新员工李丹,对最后定稿的排版、勘误做了大量工作)致以衷心的感谢!SQLServer专刊3目录第一章概述.........................................................................................4第一节U8数据库简述....................................................................4第二节常用的SQL工具简介.........................................................6第三节数据库中的常用术语和概念..............................................7第四节SQL语法格式说明..............................................................8第二章SQL基础应用.......................................................................10第一节简单的SELECT查询.......................................................11第二节SELECT语句中的常用子句及函数...................................11第三节连接(JOIN)语句.............................................................13第四节数据操作语句....................................................................17第五节SELECT子查询语句...........................................................18第三章SQL高级应用.......................................................................21第一节创建、删除数据库和表....................................................21第二节创建视图和索引................................................................22第三节创建和执行存储过程、触发器和游标............................24第四节系统存储过程、系统表....................................................27第四章事件探查器...........................................................................30第一节创建跟踪............................................................................30第二节事件探查器的精确跟踪....................................................34第三节实际工作中事件探查器的应用........................................35附录:...................................................................................................37U8产品支持部4第一章概述SQL(StructuredQueryLanguage,结构化查询语言)是一种现今流行的数据库语言,目前主流的数据库产品都支持这种语言,如常见的MicrosoftAccess、MicrosoftSQLServer、Oracle、Sybase、MySQL等,并且这些数据库产品都不同程度上对标准的SQL进行了扩展,以使SQL应用更为高效。用友产品以MicrosoftAccess(如8.12A版本)或MicrosoftSQLServer(如U8以上版本)作为后台数据库,目前(8.x、U8)不支持其他的数据库产品。第一节U8数据库简述1.1U8数据库用友U8系列产品的后台数据库是采用MicrosoftSQLServer。U8系列产品的数据库按功能主要可分为三类:A.系统数据库UFSystem;B.账套数据库UFData_xxx_xxxx(如UFData_999_2003,其中999表示账套号,2003表示会计年度);C.模板数据库UFModel。其中UFSystem库用于存储一些公共系统信息,如操作员信息、账套系统信息等,UFData_xxx_xxxx库用于存储账套数据,UFModel库在新建账套时作为模板数据库使用。每个SQLServer数据库是由两类文件组成:一类是数据文件,包括主数据文件(扩展名为mdf)和次要数据文件(扩展名为ndf,该类文件不是必须的,U8数据库通常没有该文件);一类是日志文件(扩展名为ldf)。1.28.X数据库用友早期产品以Access为后台数据库,这些产品(如8.12A)SQLServer专刊5目前仍有很多用户在使用。大部分8.X产品的系统库和账套数据库都是Access数据库类型。每个Access数据库只对应一个文件,以mdb为扩展名。以Access为后台数据库的产品,用Access软件可以直接打开对应的数据库文件,该数据库文件可以作为参考的数据字典使用(点击每个表的设计模式,内有详尽的字段含义解释)。另外,以Access为后台数据库的产品安装盘中有压缩的演示账套数据库文件,直接用Winzip解压缩后,手工将该文件扩展名更改为以.mdb为结尾,就可以作为参照的数据字典使用。1.3SQLServer和MSDE的关系MSDE是SQLServer的一个简版,该版本是免费使用的,功能和SQLServer基本相同,只是在多用户条件下运行效率低于SQLServer产品,而且,MSDE本身没有一个可视化的操作界面,只是在后台运行,不过,SQLServer等数据库软件仍可以在远程访问控制该数据库。虽然用友支持SQLServer的产品也支持MSDE,但用友产品需要的某些数据库高级功能则要求用户必须使用SQLServer作为后台数据库(如数据库的数据抽取功能)。而且在实际的维护实践中,也会发现,MSDE出现异常的情况远多于SQLServer。所以,在维护中如果遇到以MSDE作为后台数据库的情况应多加注意此方面的问题。1.4MicrosoftSQLServer、MSDE与Access数据库的比较MicrosoftSQLServer和MSDE支持的功能远多于Access,Access通常不支持SQL的高级功能,如:存储过程、触发器等。MicrosoftSQLServer配有强大的辅助工具,特别是事件探查器工具,而Access产品没有实现此类功能的工具。另外,Access的产品的安全性也远低于SQLServer产品。U8产品支持部6第二节常用的SQL工具简介SQL本身是一种语言,需要在特定的环境中运行。U8产品的MicrosoftSQLServer、MSDE以及8.12A产品的Access都为SQL提供了运行环境。为了使8.X、U8系列产品正常运行,必须要先安装好对应的后台数据库产品(关于MicrosoftAccess和MicrosoftSQLServer如何安装,请参阅安装盘帮助文件)。2.1MicrosoftSQLServerSQLServer中常用的工具包括:企业管理器、查询分析器、事件探查器等。如图1所示:图1企业管理器:可进行各种可视化的操作,功能强大,但由于其运行时消耗资源较大,所以当计算机硬件条件不好或者SQLServer负载太大时,会有操作反映迟钝等问题。查询分析器:是交互式图形工具,它使数据库管理员或开发人员能够编写查询、,同时执行多个查询、,查看结果、,分析查询计划和获SQLServer专刊7得提高查询性能的帮助。事件探查器:是图形工具,使系统管理员得以监视Microsoft®SQLServer™实例中的事件。可以捕获有关每个事件的数据并将其保存到文件或SQLServer表中供以后分析。2.2MicrosoftAccess快捷方式如图1所示。第三节数据库中的常用术语和概念本节主要介绍一些常用的SQLServer术语和概念,更多术语请参考联机帮助中的“词汇表”内容,查询位置如图2所示。图2数据库(database):为特定目的(如搜索、排序和重新组织数据)而组织和提供的信息、表和其它对象的集合。数据库存储在文件中。U8产品支持部8如:UFData_999_2003就是一个数据库。表(table):一种二维数据对象,由行和列组成,用于存储关系数据库中的数据。每个表存储有关由数据库建模的一类对象的信息。例如,某个教育数据库将具有一个教师表、一个学生表和一个课程表。字段(field):存储单个数据值的窗口或记录中的某个区域。某些数据库(如MicrosoftAccess)将字段用作列的同义词。如Accinformation表中的cSysID字段。记录(record):视作一个单元信息的一组相关字段(列)。在SQL数据库中记录更经常被称作行。第四节SQL语法格式说明在SQLServer联机帮助中,可看到如下语句语法:SELECT[ALL|DISTINCT][TOPn[PERCENT][WITHTIES]]select_listselect_list::={*|{table_name|view_name|table_alias}.*|{column_name|expression|IDENTITYCOL|ROWGUIDCOL}[[AS]column_alias]|column_alias=expression}[,...n]如何理解上句中的各种符号的涵义呢?在联机帮助中搜索“Transact-SQL语法规则”,会找到如图3所示内容,其中包含了SQLServer专刊9详细的SQL语法符号的具体涵义。图3本章小结:本章只是简要介绍了一些比较基础的术语和概念,目的是使读者对SQ