首页>参考读物>计算机科学与技术>数据库

DB2通用数据库SQL开发人员指南
作者 : Roger E.Sanders
译者 : 杨正洪等译
丛书名 : IBM/Lotus技术丛书
出版日期 : 2001-08-01
ISBN : 7-111-08967-7
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 734
开本 : 16开
原书名 : DB2 Universal Database SQL Developer's Guide
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是DB2 7.1的SQL参考手册,包含了迄今为止最详细的SQL命令及其解释。主要内容包括:数据库基本概念、DB2应用程序开发基础、SQL语句详解等。本书还提供了大量C++和Java示例代码,帮助建立、测试和调试嵌入式SQL应用程序。本书内容详实、深入浅出,既包含了数据库基本知识,又包含了SQL应用程序中的高级技巧。配套光盘包含书中样例的代码,以及IBM UDB版本6.1。

图书前言

概述 DB2通用数据库是一个健壮的数据库管理系统,它可以在不同的系统环境中完成各种任务。 DB2通用数据库并不是一个新产品,1989年它就已经存在了。最早期的版本叫做数据库管理器,这个版本集成在OS/2中,称为OS/2扩展版。这是IBM第一次尝试将数据库产品放在PC机上(在1983年已经实现了放在IBM主机上的MVS操作系统中)。多年来,IBM的PC版DB2已经发展成一个与众多平台兼容的成熟的数据库产品。 DB2通用数据库提供了大量的编程接口(结构化查询语言、调用接口或大量的应用编程接口函数调用),这些接口可以开发各种应用程序。本书主要提供一个对DB2通用数据库概念上的纵览,同时为DB2的结构化查询语言(SQL)提供一个综合参考。 写这本书的原因 尽管DB2通用数据库在1989年就开始使用了,说明这个产品的使用方法的书却很少。DB2在不断发展,许多书却没有及时修正以反映产品的变化,最终只得停止印刷。到1993年,DB2/2 GA正式产品发布时(DB2/6000也随之发布),没有一本书来专门讨论DB2应用程序开发。Robert Orfali和Dan Harkey的《Client/Server Programing with OS|2 2.1》(OS/2 2.1上的客户/服务器编程)用了4章讲述数据库管理器的扩展服务版本1.0和后来的DB2/2。尽管如此,因为书名是“客户/服务器编程”而不是“DB2应用编程”,所以其中关于DB2开发的内容也不多。这种情况就意味着,IBM的产品手册和在线帮助是应用开发者编写DB2/2应用程序的唯一参考。 1992年夏天,当我们需要用大量DB2的应用程序接口(API)调用来开发一个专门的DB2应用程序(就是后来的数据库管理器扩展服务1.0)时,我才发现关于这个产品的使用手册太缺乏了(特别是缺少实例)。因为没有别的参考书可用,我不得不进行大量的实验以完成我的DB2应用程序。我立刻意识到一本好的DB2编程参考书的必要性。 这个灵感最终促成了我的第一本书—《The Developer誷 Handbook to DB2 for Comman Servers》。 从那本书写完以后,DB2又经历了三次修正,原本已经很丰富的应用程序开发工具增加了一些新的特点。当我开始修改我的原作时,我发现要在一本书中完全地介绍所有工具是不可能的。我的编辑—Simon Yates又有了一个杰作:编写系列丛书,而每一本书介绍DB2通用数据库众多开发工具的一个方面。 本书适合的读者 本书面向那些对使用SQL语句编写DB2通用数据库应用程序感兴趣的用户。本书主要是写给那些不熟悉SQL并且正在设计和编写访问DB2数据库软件程序的数据库应用程序员和分析员的。有一些开发DB2应用程序经验的C/C++和Java程序员将从这本书中获益最多,因为这本书详细描述了在后来版本的DB2才有的新特点,所以,有经验的熟悉早期DB2版本的应用程序开发者也会从这本书中收益。不管怎样,这本书的目标是:为使用DB2 SQL来设计和开发DB2数据库应用程序的人员讲授全面的知识。 要更好地从这本书中获得收益,必须有C++语言编程经验,对关系数据库概念的理解和使用Java的经验也将有助于理解本书的内容。 本书的结构 这本书分为三个主要部分。第一部分讨论了基本的关系数据库概念。在你能成功开发DB2数据库应用程序之前,首先必须对基本的数据库结构和数据一致性机制有很好的理解。在这部分中,用两章讲述这方面内容,即第1章和第2章。 第1章解释了关系数据库的概念,并讲述了DB2通用数据库的各个组成部分。这一章也讲述了DB2内部文件结构(DB2使用它来存储数据和数据库对象)。第2章讨论了DB2提供的保证数据完整性的机制。这些机制包括事务、隔离级别、行锁和表锁、事务日志。这两章是书中其他部分的基础。 第二部分讨论了DB2数据库应用程序开发基础。当你对基本的数据库结构和数据一致性机制有了很好的理解后,也应该了解DB2数据库应用程序的开发步骤。第二部分包含了4章:从第3章到第6章,讲述了DB2中可开发的不同类型的应用程序和用DB2的SQL开发应用程序的方法。 第3章讨论了DB2应用程序的开发过程。这一章讲述了基本的DB2应用程序设计,并指明了一个DB2程序中的主要元素。这一章也解释了在数据库应用程序开始开发之前,如何建立程序开发和测试环境。 第4章讲述了怎样编写结构化查询语言(SQL)应用程序,并指出了SQL程序中的主要组成部分。这一章也讲述了将SQL应用程序源代码文件转化成可执行程序的必要步骤。 第5章讲述在复杂环境中开发嵌入式SQL应用程序必须考虑的一些问题。这一章讨论了一些如本地语言支持、多语言支持、多线程应用程序和数据库的分区等问题。 第6章讨论了一些如何提高嵌入式SQL应用程序性能的技巧。 第三部分包括了在一个应用程序中可能用到的每种DB2 SQL语句的相关信息。这部分是一个详细的SQL语句说明,其中的十个章节按SQL语句的功能将其进行了分类总结。 第7章讲述了用于构造嵌入式SQL应用程序的SQL语句,以及动态SQL语句。这一章还包括用来构造静态和动态嵌入式SQL应用程序的每条语句的详细说明。这一章中的每条语句都备有一个Visual C++程序示例,以说明在嵌入式SQL应用程序中怎样编写SQL语句。 第8章讲述了用嵌入式SQL应用程序去建立DB2数据库的连接以及终止连接建立时自动启动的事务的过程。这一章还包括用来建立DB2数据库的连接以及终止连接和事务的每条SQL语句的详细说明。该章中的每条语句都备有一个Visual C++程序示例,以说明在嵌入式SQL应用程序中怎样编写SQL语句。 第9章讲解了DB2提供的安全级别。这一章还包括用来授予和撤销用户权限的每条SQL语句的详细说明。本章中的每条语句都备有一个Visual C++程序示例,以说明在嵌入式SQL应用程序中怎样编写SQL语句。 第10章讲述了用来创建和删除数据库对象的数据定义语言语句(DDL)。这一章还包括用来创建和删除数据库对象的DDL语句的详细说明。该章中的每条语句都备有一个Visual C++程序示例,以说明在嵌入式SQL应用程序中怎样编写SQL语句。 第11章讨论了怎样修改已创建的数据库对象。这一章也包括了用于修改已有数据库对象的SQL语句的详细说明。该章中的每条SQL语句都备有一个Visual C++程序示例以说明如何在嵌入式应用程序中编写SQL语句。 第12章讲述了用于从数据库表或视图中查询、添加、修改和删除数据的数据操纵语言(DML)语句。这一章还包括了用于操纵和查询数据库中数据的DML语句的详细说明。该章中的每条SQL语句都备有一个Visual C++程序示例,以说明如何在嵌入式应用程序中编写SQL语句。 第13章讲述了怎样创建和使用用户自定义数据类型、用户自定义函数及存储过程,这一章还详细介绍用来创建用户自定义数据类型的SQL语句,用户自定义函数及存储过程的SQL语句。该章中的每条SQL语句都备有一个Visual C++程序示例,以说明如何在嵌入式应用程序中编写SQL语句。 第14章讲解了触发器,并且说明触发器是如何实现商务规则的。这一章还包括了用于定义触发器或编写触发器主体的SQL语句的详细说明。该章中的每条SQL语句都备有一个Visual C++程序示例,以说明如何在嵌入式应用程序中编写SQL语句。 第15章讲述了数据库的事件监视器,并且说明了它是如何定位和改善数据库系统中的“瓶颈”。这一章还包括了用于创建和激活事件监视器的SQL语句的详细说明。该章中的每条SQL语句都备有一个Visual C++程序示例,以说明如何在嵌入式应用程序中编写SQL语句。 第16章讲述了DB2使用的专用寄存器。这一章还包括用来修改DB2专用寄存器中的值的SQL语句的详细说明。该章中的每条SQL语句都备有一个Visual C++程序示例,以说明如何在嵌入式应用程序中编写SQL语句。 本书中的语法规则 本书始终都遵循SQL语句的语法。在编写特定SQL语句时,应该使用这些基本格式。以下这些规则适用于所有SQL语句的语法: [参数]:方括号中的参数是必须的,要求给定。 <参数>:尖括号中的参数是可选的,不要求必须给定。 参数|参数:被一道竖线隔开的参数或其他项目,表示必须从列出的项目中选择一项。 参数,...:参数后面跟着“,”和三个记号(省略号),表示语句中可包含多个这种参数。 下面举例说明这些语法规则。 例1 CONNECT TO [ServerName] 在这个例子中,在尖括号中,所以都是可选的。ServerName、AuthorizationID和Password在方括号中,因而是必须的。但是,只有USER [AuthorizationID] USING [Password]被指定后,AuthorizationID和Password才要求给定。 例2 RELEASE [ServerName | CURRENT | ALL ] 在这个例子中,竖线的含义是,ServerName、CURRENT或ALL 都可以被选定。但由于有方括号,这些项中必有一个被选定。如果ALL被选中,也可以加上SQL项(就是ALL SQL);不过由于在尖括号里,所以不是必须的。 例3 CREATE INDEX [IndexName] ON [TableName] ([ColumnName ,...]) 在这个例子中,方括号中的IndexName、TableName和至少一个ColumnName必须指定。尖括号中的UNIQUE、ASC和DESC是可选项。ASC、DESC都可以选定,但不能被同时选中(因为被竖线隔开)。ColumnName后面有“,...”,表示有多个ColumnName可供选择。 关于示例 程序示例是这本书不可缺少的一部分,因此,它们必须非常准确。为了使每一个DB2 SQL程序的用法清楚,我只在每个例子中加了必要的说明并提供了一些错误检查。我也同时设计了程序示例用来确认提供的SQL程序在正常进行。例如,一个说明如何创建视图的程序也许要从视图中查询数据,以证实用来创建视图的SQL程序工作正确。 我使用Visual C++6.0编译和测试了本书中的所有示例。这些示例都使用DB2通用数据库中的SAMPLE数据库。在附录F中,提供了创建测试环境的步骤,也提供了重建和测试本书所有程序的步骤。 反馈及CD上的源代码 我尽力使书中提供的信息和例子准确无误,但是不可能十全十美。如果你在本书的内容或示例中发现了错误,请把正确结果寄给我,以便在以后的印刷中修正。另外欢迎读者提出对本书的任何意见。和我联系的最好方法是通过电子邮件r-bsanders@midspring.com。 如前所述,书中所有的程序示例都经过测试。因此,如果你输入正确,它们就会成功编译和执行。为了避免手工输入程序,随书光盘中提供了程序的电子版。 责任范围和保证声明 无论出版商还是作者本人都为准备这本书竭尽所能。这些努力包括从IBM收集技术信息、以及开发和测试示例程序以验证其有效性和正确性。我们不对本书中的文档和程序做任何保证,无论是明确表达还是暗示性的。我们也对执行和使用书中文档和程序造成的偶然或必然损坏不负任何责任。

图书序言

IBM研究机构发明关系数据库技术已经20多年了。1983年,IBM为MVS(多重虚拟系统)开创了第一代DB2数据库。1997年,IBM在AS/400和OS/2平台上开发出其主流关系技术。在我们跨入21世纪时,IBM继续拓展其优越的数据库技术,使其拥有更多的功能,支持更多的平台。今天,DB2通用数据库是世界上最先进的数据库,并且支持世界上最多的系统平台(IBM OS/390,IBM OS/400,IBM RS/6000,IBM OS/2,SUN Solaris,HP-UX、Microsoft Windows NT,SCO Openserver和Linux)。 传统的企业正在将其主要业务转向互联网,新的电子化企业正在形成,基于网络应用的新产品也就应运而生了。大家可能会问“到底什么是电子商务呢”?电子商务就是在因特网上进行交易。电子商务可以一周七天,每天24小时持续工作而不必总有人在那里值守。电子商务将带来新的客户,人们以不同的方式一起工作。有些人认为电子商务改变了一切,甚至认为它无所不能。 电子商务需要具有高兼容性、可用性、安全性和可靠性的系统,需要工业化的数据库技术。而DB2在过去15年中已在全球拥有了四亿用户。IBM的DB2通用数据库开发人员为加强DB2通用数据库使其成为电子商务的基础进行了大量工作。今天,用户可以从网上访问数据库,应用开发人员可以用Java或者JDBC来编写DB2应用程序和过程。数据库管理员可以通过网络浏览器管理数据库,同时DB2还拥有最好的兼容性、可用性和健壮性。 电子商务对数据库提出了一些新的要求,其中之一是能从任何设备上访问数据库。新的、普遍使用的设备将用来访问DB2。电子商务对大量信息和知识的需求将会不断增长,这将需要太字节(1012字节)直至拍字节(1015字节)级的数据库产品,才能支持商务智能和知识的应用。这些应用需要数据库支持更高级的分析能力,同时需要访问丰富的内容,如文件、图形、文本、视频和空间数据。今天,DB2通用数据库已经发展到可以传输这些内容。 下一个千年将会发生巨大的变化,下个世纪也将为信息技术专业人员和数据库系统支持人员带来难以置信的机遇。新的经济将建立在信息交换的基础上,数据库专家将成为公司关键资源的管理者。我希望读者能够抓住Roger Sanders提供的机会,多学一点DB2通用数据库,并从中受益;我也希望读者能够取得DB2的认证,阅读本书的时间绝对花得值得。今天,DB2通用数据库已经成为数千家公司电子商务的基础,但这只是我们的开始。 Janet Perna IBM公司数据管理部门总经理 序   言 IBM研究机构发明关系数据库技术已经20多年了。1983年,IBM为MVS(多重虚拟系统)开创了第一代DB2数据库。1997年,IBM在AS/400和OS/2平台上开发出其主流关系技术。在我们跨入21世纪时,IBM继续拓展其优越的数据库技术,使其拥有更多的功能,支持更多的平台。今天,DB2通用数据库是世界上最先进的数据库,并且支持世界上最多的系统平台(IBM OS/390,IBM OS/400,IBM RS/6000,IBM OS/2,SUN Solaris,HP-UX、Microsoft Windows NT,SCO Openserver和Linux)。 传统的企业正在将其主要业务转向互联网,新的电子化企业正在形成,基于网络应用的新产品也就应运而生了。大家可能会问“到底什么是电子商务呢”?电子商务就是在因特网上进行交易。电子商务可以一周七天,每天24小时持续工作而不必总有人在那里值守。电子商务将带来新的客户,人们以不同的方式一起工作。有些人认为电子商务改变了一切,甚至认为它无所不能。 电子商务需要具有高兼容性、可用性、安全性和可靠性的系统,需要工业化的数据库技术。而DB2在过去15年中已在全球拥有了四亿用户。IBM的DB2通用数据库开发人员为加强DB2通用数据库使其成为电子商务的基础进行了大量工作。今天,用户可以从网上访问数据库,应用开发人员可以用Java或者JDBC来编写DB2应用程序和过程。数据库管理员可以通过网络浏览器管理数据库,同时DB2还拥有最好的兼容性、可用性和健壮性。 电子商务对数据库提出了一些新的要求,其中之一是能从任何设备上访问数据库。新的、普遍使用的设备将用来访问DB2。电子商务对大量信息和知识的需求将会不断增长,这将需要太字节(1012字节)直至拍字节(1015字节)级的数据库产品,才能支持商务智能和知识的应用。这些应用需要数据库支持更高级的分析能力,同时需要访问丰富的内容,如文件、图形、文本、视频和空间数据。今天,DB2通用数据库已经发展到可以传输这些内容。 下一个千年将会发生巨大的变化,下个世纪也将为信息技术专业人员和数据库系统支持人员带来难以置信的机遇。新的经济将建立在信息交换的基础上,数据库专家将成为公司关键资源的管理者。我希望读者能够抓住Roger Sanders提供的机会,多学一点DB2通用数据库,并从中受益;我也希望读者能够取得DB2的认证,阅读本书的时间绝对花得值得。今天,DB2通用数据库已经成为数千家公司电子商务的基础,但这只是我们的开始。 Janet Perna IBM公司数据管理部门总经理

作者简介

Roger E.Sanders:暂无简介

译者简介

杨正洪等译:暂无简介

译者序

在70年代初,IBM的San Jose 研究中心的E.F.Codd先生第一个提出了关系数据库模型(恰巧,我明天也将去IBM的San Jose研究中心参加一个会议)。1983年,IBM为MVS开创了第一代DB2数据库。在我们跨入21世纪时,IBM继续拓展其优越的数据库技术,使其拥有更多的功能、支持更多的平台。今天,DB2通用数据库是世界上最先进的数据库,并且同时支持世界上最多的系统平台(IBM OS/390、IBM OS/400、IBM RS/6000、IBM OS/2、SUN Solaris、HP-UX、Microsoft Windows NT、SCO Openserver和Linux)。当然,在2001-2002年,也会在AIX5L上推出DB2产品。 传统的企业正在将其主要业务转向电子商务。电子商务需要具有高兼容性、可用性、安全性和可靠性的系统,更需要工业化的数据库技术。而DB2在过去15年中已在全球拥有了4亿用户。IBM的DB2通用数据库开发人员为加强DB2通用数据库使其成为电子商务的基础进行了大量工作。今天,用户可以从网上访问数据库,应用开发人员可以用Java来编写DB2应用程序,数据库管理员可以通过网络浏览器管理数据库。同时DB2还拥有最好的兼容性、可用性和健壮性。电子商务对大量信息和知识的需要将会不断增长,这将需要terabyte直至petabyte级的数据库产品,才能支持商务智能和基于知识的应用。这些应用需要数据库支持更高级的分析能力,同时需要访问丰富的内容—文件、图形、文本、视频和空间数据。今天,DB2通用数据库已经发展到可以支持这些内容。 下一个千年将带来巨大的变化,下个世纪也将为信息技术专业人员和数据库系统支持人员带来难以置信的机遇。新的经济将建立在信息交换的基础上,数据库专家将成为公司关键资源的管理者。今天,DB2通用数据库已经成为数千家公司电子商务的基础,但这只是开始。 这本书是DB2 7.1的SQL参考手册。它包含了迄今为止最详细的SQL命令的解释。本书还提供了丰富的C++/Java示例,帮助你建立、测试和调试嵌入式SQL应用程序。 在本书的第1章和第2章,介绍了DB2 UDB的基本概念;接着,在第3章和第4章详细描述了DB2应用程序的组成成分和编写步骤;然后,在第5章和第6章讨论了如何在复杂环境下开发DB2应用程序和优化DB2应用程序。从第7章到第16章,按照功能的不同,详细讲解了每个SQL语句的完整语法和各个参数的意义,并配有详细的程序示例。最后,提供了7个附录。在附录A中,介绍了SQLCA、SQLDA的结构;在附录B中,讲解了所有的SQL函数;在附录C中,解释了联合体数据库的概念;在附录D中,讲解了DB2的数据库链接管理器;在附录E中,介绍了访问数据库的Java程序的开发步骤;在附录F中,讲解了如何使用书中的各个程序示例。 在使用本书前,读者应该具有一定的数据库基本概念,应该使用过Java或C++。本书是基于DB2 UDB7.1编写的。这个产品是在2000年6月发布的。本书的作者Roger E.Sanders是一位具有15年软件经验的专家。他编写了很多DB2书籍。 参加本书翻译的人除封面署名外还有:郑齐健、张剑、周林、马燕、陈尧、白云、张国新、李蔚明、胡彬、张重、刘丽、王驰、丁旭东、潘宇、孙延辉、胡建、刘晓霞、陆强、吕明光、赵庆昕、肖练刚、王小蓉、马骐、韩欧、马赞、许志巍、林岩、杨剑、杨小东、余洪明、赵旭、谢翔、丁向武、刘江涛、王新、贾立东、施昭、胡钛、陈勃、陈天越、张利平、聂华、罗毅、张巍、张申、王秦霞等同志。 书中不足之处,请读者批评指正。杨正洪的e_mail地址是:yangzhenghong@yahoo.com。欢迎读者来信指正,谢谢。 杨正洪 2001年1月8日于北京

图书目录

译者序 序言 前言 第一部分  数据库基本概念 第1章  DB2数据库结构 1 1.1  关系数据库 1 1.2  关系数据库的对象 1 1.2.1  数据库 2 1.2.2  表空间 3 1.2.3  表 3 1.2.4  索引 6 1.2.5  视图 7 1.2.6  程序包 8 1.2.7  触发器 8 1.2.8  别名 9 1.2.9  事件监视器 9 1.2.10  模式 9 1.2.11  系统目录视图 10 1.2.12  恢复日志文件和恢复历史文件 10 1.2.13  配置文件 11 1.3  DB2数据库目录 11 1.3.1  物理数据库目录 12 1.3.2  卷目录 12 1.3.3  系统目录 13 1.3.4  工作站目录 13 1.3.5  数据库连接服务目录 13 1.4  小结 14 第2章  数据库一致性机制 15 2.1  什么是数据一致性 15 2.2  事务 15 2.3  并发性和事务隔离级别 17 2.3.1  可重复读 18 2.3.2  读稳定性 18 2.3.3  游标稳定性 18 2.3.4  未提交读 19 2.3.5  指定隔离级别 19 2.4  锁定 19 2.4.1  锁定属性 20 2.4.2  锁定状态 20 2.4.3  锁定和应用程序性能 22 2.4.4  事务日志 28 2.4.5  数据库恢复 29 2.5  小结 30 第二部分  应用程序开发基础 第3章  DB2应用程序开发入门 33 3.1  什么是DB2数据库应用程序 33 3.2  设计一个DB2数据库应用程序 34 3.3  DB2数据库应用程序的元素 35 3.3.1  高级编程语言 35 3.3.2  SQL语句 36 3.3.3  CLI函数调用 38 3.3.4  API函数调用 39 3.4  建立DB2数据库应用程序开发环境 40 3.5  建立DB2数据库应用程序测试环境 41 3.5.1  创建测试数据库 41 3.5.2  创建测试表和视图 41 3.5.3  产生测试数据 42 3.6  管理事务 42 3.7  创建并准备源代码文件 43 3.8  小结 43 第4章  编写嵌入式SQL应用程序 44 4.1  关于嵌入式SQL语句的原型 44 4.2  嵌入式SQL源代码文件的主要部分 44 4.2.1  创建程序头 44 4.2.2  创建程序体 48 4.2.3  创建程序尾 49 4.3  创建使用常用错误处理程序 50 4.4  使用异常处理程序、信号程序 和中断处理程序 51 4.5  创建可执行程序和包 51 4.5.1  预编译源代码文件 52 4.5.2  编译源代码文件 53 4.5.3  链接目标程序 54 4.5.4  创建和绑定包 54 4.6  时间戳 54 4.7  运行、测试和调试嵌入式SQL应用程序 55 4.8  小结 55 第5章  在复杂的环境下的编程 57 5.1  母语支持 57 5.1.1  整理顺序 57 5.1.2  本国语言环境 58 5.1.3  代码页 59 5.2  对日语和繁体中文 EUC 代码集的支持 61 5.3  多个数据库的两阶段提交处理 61 5.4  两阶段提交的处理过程 62 5.4.1  两阶段提交期间的错误恢复 63 5.4.2  两阶段提交的限制 64 5.5  DRDA服务器的存取 65 5.6  多线程数据库的存取 65 5.6.1  编程的考虑 66 5.6.2  防止死锁的发生 67 5.7  并发事务 68 5.8  X/Open XA 接口支持 68 5.9  网络环境下的大宗数据的移动 71 5.10  节点组和数据分区 71 5.10.1  并行性的类型 72 5.10.2  启用数据分区 74 5.10.3  使用直接的DSS和本地旁路 75 5.10.4  使用缓存插入 75 5.10.5  处理分区数据库环境中的错误 78 5.11  小结 79 第6章  改进应用程序的性能 80 6.1  协调嵌入SQL查询 80 6.1.1  包含SELECT语句的查询 80 6.1.2  存取两个或更多个的表的查询 82 6.1.3  复合查询 82 6.2  索引管理 82 6.2.1  创建索引的准则 83 6.2.2  优化索引性能 85 6.3  表空间管理 87 6.4  使用预编译器的优化特征 89 6.4.1  设置优化级别 91 6.4.2  确定使用哪种优化级别 92 6.5  行分块 93 6.6  锁和应用程序性能 94 6.7  代码页的选择 96 6.8  数据分区 96 6.8.1  表并置 96 6.8.2  选择正确的分区键 97 6.9  小结 97 第三部分  SQL  语  句 第7章  应用编程语言构建语句 99 7.1  SQL预编译器指令 99 7.2  动态SQL支持 100 7.3  动态SQL和参数标志 100 7.4  高速缓存 103 7.5  DB2编程语言构建SQL语句 105 7.6  BEGIN DECLARE SECTION 106 7.7  END DECLARE SECTION 109 7.8  FREE LOCATOR 109 7.9  INCLUDE 112 7.10  WHENEVER 113 7.11  BEGIN COMPOUND 117 7.12  END COMPOUND 123 7.13  PREPARE 123 7.14  DESCRIBE 129 7.15  EXECUTE 134 7.16  EXECUTE IMMEDIATE 139 7.17  EXPLAIN 143 第8章  数据库连接和事务控制语句 148 8.1  连接管理 148 8.2  应用的状态 149 8.3  连接状态 150 8.4  影响连接管理的SQL预编译程序选项 151 8.5  事务管理 152 8.6  DB2数据库的连接及事务 控制SQL语句 153 8.7  CONNECT 153 8.8  SET CONNECTION 163 8.9  RELEASE 164 8.10  DISCONNECT 167 8.11  LOCK TABLE 168 8.12  COMMIT 171 8.13  ROLLBACK 175 第9章  数据存取和修改控制语句 180 9.1  授权和权限 180 9.2  实例级授权 180 9.2.1  系统管理授权 180 9.2.2  系统控制授权 180 9.2.3  系统维护授权 180 9.3  数据库级授权 181 9.3.1  数据库管理授权 181 9.3.2  BINDADD授权 181 9.3.3  CONNECT授权 181 9.3.4  CREATETAB授权 181 9.3.5  CREATE_NOT_FENCED授权 181 9.3.6  IMPLICIT_SCHEMA授权 181 9.4  权限 182 9.4.1  ALTER权限 182 9.4.2  ALTERIN权限 182 9.4.3  BIND权限 182 9.4.4  CONTROL权限 182 9.4.5  CREATEIN权限 183 9.4.6  DELETE权限 183 9.4.7  DROPIN权限 183 9.4.8  EXECUTE权限 183 9.4.9  INDEX权限 183 9.4.10  INSERT权限 183 9.4.11  PASSTHRU权限 183 9.4.12  REFERENCES权限 183 9.4.13  SELECT权限 183 9.4.14  UPDATE权限 184 9.5  授予和撤消授权和权限 184 9.6  DB2数据存取和修改控制的SQL语句 184 9.7  GRANT:数据库授权 185 9.8  GRANT:表、视图和别名权限 190 9.9  GRANT:索引权限 197 9.10  GRANT:包权限 201 9.11  GRANT:模式权限 206 9.12  REVOKE:数据库授权 211 9.13  REVOKE:表、视图和别名权限 213 9.14  REVOKE:索引权限 216 9.15  REVOKE:包权限 216 9.16  REVOKE:模式权限 218 第10章  数据定义语言语句 220 10.1  概述 220 10.1.1  创建缓冲池 220 10.1.2  创建节点组 221 10.1.3  创建表空间 221 10.1.4  创建表 221 10.1.5  创建视图 222 10.1.6  创建索引 225 10.1.7  创建模式 226 10.1.8  创建别名 226 10.1.9  给一个数据库对象添加注解 227 10.1.10  删除一个对象 227 10.2  DB2 的DDL语句 227 10.3  CREATE BUFFERPOOL 228 10.4  CREATE NODEGROUP 234 10.5  CREATE TABLESPACE 238 10.6  CREATE TABLE(Normal) 248 10.7  CREATE TABLE(Typed) 268 10.8  CREATE TABLE(Summary) 284 10.9  CREATE VIEW(Normal) 294 10.10  CREATE VIEW(Typed) 302 10.11  CREATE INDEX 312 10.12  CREATE SCHEMA 319 10.13  CREATE ALIAS 324 10.14  COMMENT ON 329 10.15  DROP 337 第11章  修改数据对象的定义 346 11.1  修改节点组 346 11.2  修改表空间 346 11.3  修改表的结构 346 11.4  重命名表 347 11.5  控制完整性检查 347 11.6  修改DB2 数据定义的SQL语句 348 11.7  ALTER BUFFERPOOL 348 11.8  ALTER NODEGROUP 354 11.9  ALTER TABLESPACE 359 11.10  ALTER TABLE 367 11.11  ALTER VIEW 386 11.12  RENAME TABLE 395 11.13  REFRESH TABLE 400 11.14  SET INTEGRITY 405 第12章  数据操纵语言语句 419 12.1  查询 419 12.2  SELECT语句和它的子句 419 12.2.1  From 子句 420 12.2.2  WHERE子句 420 12.2.3  GROUP BY 子句 423 12.2.4  HAVING 子句 424 12.2.5  UNION子句 424 12.2.6  ORDER BY子句 425 12.3  什么是子查询 425 12.4  使用一个游标检索多行记录 425 12.5  INSERT 语句 427 12.6  UPDATE语句 428 12.7  DELETE语句 428 12.8  DB2数据操纵语言SQL语句 428 12.9  SELECT INTO 429 12.10  VALUES INTO 432 12.11  DECLARE CURSOR 435 12.12  OPEN 442 12.13  FETCH 444 12.14  CLOSE 447 12.15  INSERT 448 12.16  UPDATE 454 12.17  DELETE 463 第13章  用户自定义数据类型、用户自定义 函数和存储过程 470 13.1  用户自定义数据类型 470 13.1.1  用户自定义单值数据类型 471 13.1.2  用户自定义结构数据类型 472 13.2  为什么使用用户自定义数据类型 472 13.3  用户自定义函数 473 13.3.1  有源函数 473 13.3.2  外部标量函数 474 13.3.3  外部表函数 474 13.3.4  外部OLE DB函数 475 13.3.5  创建函数映射 476 13.3.6  创建函数模板 476 13.4  为什么使用用户自定义函数 477 13.5  存储过程 477 13.5.1  编写存储过程 478 13.5.2  编写存储过程的规则 479 13.6  DB2用户自定义数据类型、用户自定义 函数和存储过程的SQL定义语句 480 13.7  CREATE DISTINCT TYPE 481 13.8  CREATE TYPE(Structured) 488 13.9  ALTER TYPE(Structured) 499 13.10  CREATE FUNCTION (Source or Template) 505 13.11  CREATE FUNCTION (External Scalar) 514 13.12  CREATE FUNCTION (External Table) 537 13.13  CREATE FUNCTION (OLE DB Exteranl Table) 558 13.14  CREATE PROCEDURE 568 13.15  CALL 587 第14章  触发器 594 14.1  触发器的用途和定义 594 14.1.1  在被触发事件中使用函数 597 14.1.2  多触发器的顺序 597 14.2  使用转换变量 598 14.3  触发器中的错误处理 598 14.4  触发器的级联 599 14.5  递归触发器 599 14.6  约束和触发器之间的比较 590 14.7  约束和触发器之间的配合 600 14.8  定义DB2触发器的SQL语句 600 14.9  CREATE TRIGGER 601 14.10  SET(Transition Variation) 610 14.11  SIGNAL SQLSTATE 612 第15章  数据库事件监控器 616 15.1  事件监控器 616 15.2  创建事件监控器 616 15.2.1  事件记数 617 15.2.2  事件监控器的输出 617 15.2.3  事件监控器的数据流格式 618 15.3  DB2控制数据库事件监控器 的SQL语句 618 15.4  CREATE EVENT MONITOR 619 15.5  SET EVENT MONITPR STATE 627 15.6  FLUSH EVENT MONITOR 631 第16章  设置DB2的专用寄存器 636 16.1  DB2专用寄存器 636 16.1.1  CURRENT DATE专用寄存器 (数据类型:DATE) 636 16.1.2  CURRENT DEGREE专用寄存器 (数据类型:CHAR(5)) 637 16.1.3  CURRENT EXPLAIN MODE专用寄存 器(数据类型:VARCHAR(254)) 637 16.1.4  CURRENT EXPLAIN SNAPSHOT专 用寄存器(数据类型:CHAR(8)) 637 16.1.5  CURRENT NODE专用寄存器 (数据类型:INTERGER) 637 16.1.6  CURRENT PATH专用寄存器 (数据类型:VARCHAR(254)) 638 16.1.7  CURRENT QUERY OPTIMIZATION专 用寄存器(数据类型:INTEGER) 638 16.1.8  CURRENT REFRESH AGE专用寄存器 (数据类型:DECIMAL(20,6)) 638 16.1.9  CURRENT SCHEMA专用寄存器 (数据类型:VARCHAR(128)) 638 16.1.10  CURRENT SERVER专用寄存器 (数据类型:VARCHAR(18)) 639 16.1.11  CURRENT TIME专用寄存器 (数据类型:TIME) 639 16.1.12  CURRENT TIMESTAMP专用寄存器 (数据类型:timestamp) 639 16.1.13  CURRENT TIMEZONE专用寄存器 (数据类型:DECIMAL(6,0)) 639 16.1.14  USER专用寄存器(数据类型:VARCHAR(128)) 639 16.2  修改DB2专用寄存器的SQL语句 639 16.3  SET PATH 640 16.4  SET SCHEMA 644 16.5  SET CURRENT DEGREE 647 16.6  SET CURRENT QUERY OPTIMIZATION 650 16.7  SET CURRENT PACKAGESET 656 16.8  SET CURRENT EXPLAIN MODE 660 16.9  SET CURRENT EXPLAIN SNAPSHOT 664 16.10  SET CURRENT REFRESH AGE 668 第四部分  附   录 附录A  SQL数据结构 673 附录B  SQL函数 683 附录C  联合体系统 696 附录D  DB2数据库链接管理器 703 附录E  开发JDBC应用程序和applet 709 附录F  程序示例是怎样开发的 725

教学资源推荐
作者: [葡]路易斯· 托尔戈(Luís Torgo)著
作者: 沈楠 孔令志 王立伟 编著 沈朝辉 主审
作者: [比利时]维尔弗里德·勒玛肖(Wilfried Lemahieu) 赛普·凡登·布鲁克(Seppe vanden Broucke) 巴特·巴森斯(Bart Baesens) 著
作者: Gerhard Weikum,Gottfried Vossen