DB2基础知识

DB2基础知识
DB2基础知识

DB2基础知识

周光辉

E-mail:symbol@https://www.360docs.net/doc/3e1625616.html,

广东金宇恒科技有限公司

2004年3月

摘要:本文主要向您介绍了DB2的一些基础知识。要理解本教程中所描述的概念,您应该了解关系数据库概念方面的基础知识(包括数据库、表、列、行、关系等),会使用简单的DML(SELECT、INSERT、UPDATE、DELETE)。在本文中,您将了解到有关下面的主题:如何学习DB2?、DB2数据库由什么组成?、如何编目数据库?、如何创建/删除数据库?、如何连接数据库?、如何移动数据库?、如何获取数据库中对象的DDL?、如何批量的执行DDL?、如何构建存储过程?、如何理解模式-SCHEMA?、如何利用DB2返回的错误信息?、如何取表中第n至n+m条记录?、如何手工操作表中数据?、如何理解SELECT 中的连接?。

关键词:数据库、DB2

本文所有例子,如不特殊说明均在以下环境下运行:Win2000 Server、IBM? DB2? Universal Database? for Windows? V7.1+补丁包10a。

比较SQL Server、Oracle与DB2

开放性

SQL Server

只能在Windows 上运行。

Oracle

能在所有主流平台上运行(包括 Windows)。完全支持所有的工业标准。采用完全开放策略。

DB2

能在所有主流平台上运行(包括Windows)。最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器。

安全性

SQL server

没有获得任何安全证书。

Oracle Server

获得最高认证级别的ISO标准认证。

DB2

获得最高认证级别的ISO标准认证。

性能

SQL Server

多用户时性能不佳

Oracle

性能最高,保持WindowsNT下的TPC-D和TPC-C的世界记录。

DB2

适用于数据仓库和在线事物处理,性能较高。客户端支持及应用模式。

易用性

SQL Server

操作简单,但只有图形界面。

Oracle

较复杂,同时提供GUI和命令行,在Windows NT和Unix下操作相同。

DB2

较复杂,同时提供GUI和命令行,在Windows NT和Unix下操作相同。

例子1

在开始学习DB2之前,让我们先看一看一个很小的实例。

任务:创建一个数据库MY_DB_1,在数据库中创建一个表TAB_1(COL_1 INT),在表中插入一些数据,在DB2CLP(DB2命令行处理器)中依次执行以下命令:CREATE DATABASE MY_DB_1

CONNECT TO MY_DB_1

CREATE TABLE TAB_1(COL_1 INT)

INSERT INTO TAB_1 VALUES(1)

INSERT INTO TAB_1 VALUES(2)

SELECT * FROM TAB_1

这里我们只需要有个很粗略的认识就够了。

DB2中常用工具的缩写

注意:英文解释仅仅是为了帮助你更好的记住缩写,仅此而已。

如何学习DB2?

在开始下面的学习之前,我们要有心理准备,DB2的学习和使用可没有MS SQL Server那么轻松,在使用过程中,会不断遇到这样那样的问题,这一节我们要学的,就是在遇到问题的时候,应该怎么做?

下面的资源或方法,将对学习DB2、解决使用DB2中遇到的问题非常有帮助:

DB2信息中心

本地信息中心:DB2IC

网上信息中心:https://www.360docs.net/doc/3e1625616.html,/infocenter/db2help/index.jsp?topic=/c

om.ibm.db2.udb.doc/welcome.htm

(信息中心是IBM关于DB2最权威的文档,其中网上信息中心提供了更强的搜索功能。)

DB2论坛

https://www.360docs.net/doc/3e1625616.html,

(在遇到用其它方法都无法解决的问题时,这里往往会给你惊喜,特别是根据DB2返回的错误代码进行搜索,当然,前提是你英语要过关或者熟悉金山词霸。)

https://www.360docs.net/doc/3e1625616.html,/Expert/Forum.asp

(论坛主要用在解决疑难杂症)

DB2开发者园地

https://www.360docs.net/doc/3e1625616.html,/developerWorks/cn/dmdd/index.shtml

(里边的文档库、技术教程、认证教学、技术支持都非常有用,这里适合较系统的学习DB2,特别是认证教学,其中考试号700的认证教程很适合初学者。本教程中的很多内容,也是来自上述教程。)

?

在DB2CLP中,一些常用的命令可以使用“? 命令”来查看其详细的使用用法,如:上面例子1中用到的创建数据库命令“? CREATE DB”、连接数据库命令“? CONNECT TO”,都可以通过这样来查看其较详细的语法。单独执行“?”命令,会列出常用的命令。

其它

还有一种很快捷的方法是问其它熟悉DB2的人。

DB2数据库由什么组成?

图1

系统:整个DB2环境。

实例:一个逻辑数据库管理器环境,可在其中编目数据库并设置配置参数。根据需要,可创建多个实例。每一个实例都是一个完整的环境,它有独立的安全性,不受同一机器(系统)上其他实例的影响。每一个实例都对应一个实例目录,实例目录存储着与一个实例相关的所有信息。该目录包含:数据库管理器配置文件、系统数据库目录、节点目录、节点配置文件(db2nodes.cfg)、包含调试信息的任何其它文件。在Windows操作系统上,该实例目录位于/sqllib 子目录,即安装DB2的目录。在安装期间,要创建一个DB2的初始实例,称为

“DB2”。

(如果不出意外的话,我想您还是不理解什么是实例,不要紧,您现在只需要知道有这么个东西存在就行了)

数据库:关系数据库将数据表示成表的集合。表由数目已定的列和任意数目的行组成。

数据库分区组:数据库分区组是一个或多个数据库分区的集合。

(我们一般使用的是单分区数据库,数据库分区组涉及到并行数据库系统,此处我们不详细讨论)

表空间:数据库由称为表空间的部件组成。表空间是用来存储表的位置。当创建表时,您可以决定将特定对象(如索引和大对象(LOB))数据与其余表数据分开存放。表空间也可以分布在一个或多个物理存储设备上。

OK,上图只是粗略的向您展示了DB2数据库的逻辑组成,其中的每一个对象引申下去都可以单独写一篇文章,如果您有兴趣可以在如何学习DB2?中介绍的资料中获取它们的详细信息。

开始操作数据库之前

在开始下面内容之前,我们举例来试一下用如何学习DB2?中介绍的方法来学习一些常用的DB2命令。

CATALOG DATABASE database-name [AS alias] [ON drive | AT NODE node-name]

这是一条编目数据库的命令,以上列出的,只是它部分常用的参数,放心,你不需要全部记住它,你只需要记住它前面的前几个关键字就行了,比如记住

“编目数据库”对应“CATALOG DATABASE”就行了。好,我们开始来获取它的完整信息:

1.在DB2CLP中执行“?”,你会发现,控制台列出了许多常用的命令(主要是数据库级别的),其中包含了我们要的“CATALOG DATABASE”,这一步,在你连命令的前几个单词都忘了的情况下,或许会有帮助;

2.接下来我们执行“? CATALOG DATABASE”,你将得到有关该命令的详细语法,如果您第一次使用该方法获取命令的语法,也许会觉得语法复杂难懂。不要紧,让我们来看看如何阅读语法,执行“? HELP”命令,你将看到以下窗口:

图2

回头再看一下“? CATALOG DATABASE”,尝试一下能不能看懂。如果您真的是DB2的初学者,可能你的回答是“好一点了,但还是看不懂”,不要紧,让我们继续寻求其它帮助;

3.打开DB2IC(DB2信息中心),并定位到“引用”标签页,按“标题”显示,你会很容易找到“CATALOG DATABASE”命令,如下图。剩下的事,就是双击它了。非常抱歉,又是全英文的。

图3

相信你现在已经具备获取有关“CATALOG DATABASE”足够信息的能力了,其实“CATALOG DATABASE”的绝大多数参数都是可选的,而且我们平时使用这些参数的机会也很少,我们只需要大概的了解就足够了。关于该命令的详细语法、作用,大家可以下去再看。这里我们先解释一下该命令。

语法:

CATALOG DATABASE database-name [AS alias] [ON drive | AT NODE node-name]

解释:

编目数据库,将数据库位置的信息存储于系统数据库目录中。数据库可以定位到本地机器或远程节点(机器)。

我们可以这样理解,所有的数据库都物理的存储在存储器上(我们这里是

硬盘),比如你可以打开C:\DB2\NODE0000目录(假设你的DB2是装在C:,且没有改过默认设置),下面有若干个目录“SQL XXXXX”,其中每个目录对应一个物理数据库。

我们在这里之所以要提到编目数据库,是因为在绝大多数对数据库进行的操作(包括连接)之前,都必须确保数据库已经进行过编目,即该物理数据库已经在系统数据库目录中登记了它的位置、别名等等信息,且我们对数据库的操作都是通过它的别名来进行的。我们有时发现不需要编目就可以操作数据库,其实是因为在其它很多操作中隐含了编目操作,比如用命令“CREATE DATABASE”创建数据库的时候,它就会自动帮你编目数据库,且别名默认和数据库名一致。见下图4或许会帮助你理解这一切(这里我们暂时只看“数据库目录”和“本地硬盘”两块)。

图4

每执行一条“CATALOG DATABASE”命令,其实就是往数据库目录中添加一条记录,仅此而已。但有以下4点要注意:

1.由于对数据库的操作一般都是通过其别名来进行的,所以在一台机上,数据库别名是不允许重复的;

2.一个数据库可以以不同别名的形式在数据库目录中存在多条条目(如图4中C:下的数据库MY_DB_1有两条条目,别名分别为MY_DB_1、DB_1_C);

3.一个数据库可以不进行编目(如图4中D:下的数据库MY_DB_3)4.同一实例中,在不同驱动器下,允许有相同名的数据库,但同样不允许别名相同。

提到编目数据库,我们不得不提及一些其相关命令:

语法:

LIST DATABASE DIRECTORY [ON drive]

解释:

查看当前系统数据库目录,加参数[ON drive]可以查看指定驱动器上的本地物理数据库目录(注意:包括没有编目的数据库)。执行以上命令,你将看到和图4中“数据库目录”类似的信息。

语法:

UNCATALOG DATABASE database-alias

解释:

反编目数据库。顾名思义,就是将数据库的指定别名从系统数据库目录中卸下来。

语法:

TERMINATE

解释:

显性的停止DB2CLP的后端进程,我们这里只需要理解为刷新就行了。

好了,你可以用本节中介绍的4条命令对实例1中创建的数据库MY_DB_1

进行试验。

这里不得不提一下DB2的一个工具——DB2CCA(DB2客户机配置辅助程序),在你理解了编目数据库之后,在你需要编目数据库时,使用DB2CCA或许会更方便。

接下来...

接下来,我们会具体讲解实际工作中使用DB2的若干个主题,如没特别声明,都是指在DB2CLP(DB2命令行处理器)中执行命令,当然,你也可以通过DB2控制中心来完成,但它本质上是调用相同的接口,用命令来介绍有助于你对DB2的理解。各主题中所列出的命令语法只包含常用参数,详细信息可以参照DB2信息中心。

如何创建/删除数据库?

语法:

CREATE DATABASE database-name [ON drive]

DROP DATABASE database-alias

例子:

CREATE DATABASE MY_DB_2

DROP DATABASE MY_DB_2

解释:

database-name:数据库名

database-alias:数据库别名

drive:指定在哪个硬盘分区上创建数据库,缺省时使用该实例的数据库管理器配置参数“DFTDBPATH”(缺省数据库路径)指定的硬盘分区。

对于Windows而言,在一个硬盘分区上最多只能有一个同名的数据库,但在不同的分区上可以有同名的数据库,但编目时必须使用不同的别名来区分。其它:

数据库管理器配置参数可以用“GET DBM CFG”获取,用“UPDATE DBM CFG”更新。

如何连接数据库?

语法:

CONNECT TO database-alias [USER username USING password]

例子:

CONNECT TO MY_DB_1

解释:

username:用户名

password:密码

以上两个参数缺省时使用当前操作系统登陆使用的用户名和密码。前提是DB2关于安全方面的默认设置没有被改动。

其它:

正如开始操作数据库之前中介绍编目数据库命令时所说的,其实我们连接时使用的是数据库的别名,根据别名去数据库目录中搜索数据库的位置等信

息,对于本地的数据库,一般情况下,创建数据库后DB2会自动帮你编目。但如果是远程数据库,就引出了另外一个话题,如何编目远程数据库?

在介绍编目远程数据库之前,我们得先介绍一个新概念――NODE(节点)NODE(节点)我们可以理解为某台机器上(可以是本地机或远程机)的一个DB2实例在本地的一个映射,通过这个映射,可以操作该实例内的许多内容,包括数据库。由于我们通常通过TCP/IP来连接远程数据库,所以我们在这里只介绍如何通过TCP/IP来编目节点。

语法:

CATALOG TCPIP NODE node-name REMOTE hostname SERVER service-name [REMOTE_INSTANCE instance-name]

解释:

node-name:节点名

hostname:主机名,也可以是IP地址

service-name:服务名,也就是端口号,一般是“50000”,可以查看服务器上的文件“\WINNT\system32\drivers\etc\ services”中的“db2cDB2”

instance-name:实例名,缺省时是“DB2”

从这些参数可以看出来,已经提供了足够定位网络上DB2实例位置的信息(如IP地址等),从DB2数据库由什么组成?中的图1可以看出来,一旦可以定位到DB2的实例,定位实例中的数据库也就成为可能。

例子:

CATALOG TCPIP NODE NODE126 REMOTE 192.168.1.126 SERVER 50000

ATTACH TO NODE126 USER gever USING gevermis

第二条命令只是测试能否正常连到该节点上。

现在我们回头再看一下编目数据库的命令:

CATALOG DATABASE database-name [AS alias] [ON drive | AT NODE node-name]

我们发现,最后蓝色部分的参数,正是指定编目哪个节点上的数据库,有了节点之后,我们就可以编目远程的数据库。

CATALOG DATABASE DB_126 AT NODE NODE126

(“DB_126”是存在远程机器上的一个数据库)

回头看一下图4中的“数据库目录”和“节点目录”,或许会帮助你理解。其它:

如何查看当前系统节点目录:

LIST NODE DIRECTORY

该命令将帮助我们看到和图4中“节点目录”类似的信息。

如果你使用DB2CCA来编目远程结点,它本质上也是主要使用“CATALOG TCPIP NODE”和“CATALOG DATABASE”命令来实现的。

如何移动数据库?

在开发过程中,我们经常会遇到要将数据库从一台机器上转移到另一台机上,这一节我们主要介绍两种移动数据库的方法:

在相同操作系统间移动

最常用的是使用备份/恢复数据库实现,我们这里只介绍完全脱机备份,即产生备份时间点上的数据库副本,再将该备份副本到转移到目标机器上恢复。

注意:脱机备份是不允许其它应用程序对数据库进行操作的,即要断开所有对该数据库的连接。

语法:

BACKUP DATABASE database-alias [TO dir/dev]

例子:

BACKUP DATABASE MY_DB_1 TO C:

解释:

database-alias:要进行备份的数据库的别名

dir/dev:指定数据库备份存放的目录

以上操作将数据库“MY_DB_1”备份到C:,如无意外,我们将可以在C:下找到以下文件(蓝色部分可能会不一致,因为它是备份时的一个时间戳,即:“...\年月日\时分秒.001”)

C:\MY_DB_1.0\DB2\NODE0000\CATN0000\20040325\161435.001

我们如果再执行上面一条命令,你会发现“C:\MY_DB_1.0\DB2\NODE0000\CATN0000\”目录下又多了一个类似的文件,它们都是数据库的一个副本。现在,我们就可以移动整个“C:\MY_DB_1.0”目录了,以用于在需要的时候进行恢复。

语法:

RESTORE DATABASE source-database-alias [FROM dir/dev] [TAKEN AT date-time] [INTO target-database-alias]

解释:

dir/dev:指定从那里获取数据库的备份。

date-time:指定如果指定备份目录下有多个备份,使用哪一个备份(通过上面介绍的时间戳来指定,即“年月日时分秒”),如果备份目录下只有一个备份,通常该参数缺省。

target-database-alias:指定恢复到哪个数据库中,这在想对数据库进行换名时有用。

例子:

RESTORE DATABASE MY_DB_1 FROM C: TAKEN AT 20040325161435

其它:

其实到这里,这一小节同时涵盖了备份/恢复的内容。本文其它地方就不在专门讲解备份/恢复主题了。

在异构操作系统间移动

备份/恢复一般情况下是不适合在不同操作系统间使用的。异操作系统间数据库的移动(如从Windows移到Linux下)我们一般采用工具db2move,使用这个工具大致分为3个步骤:

1.用db2move将数据库的结构、数据等导出来

2.将导出来的文件移到目标操作系统下

3.在目标操作系统下创建数据库后用db2move将数据库的结构、数据等导进去

由于涉及到多操作系统,这里就不举例了。但要注意,在移动较大型或复杂的数据库的时候,往往会出现很难预料的错误,一般集中在自增列、二进制大对象等地方。有时候需要借助其它工具,如db2look,这里就不深入探讨了。

如何获取数据库中对象的DDL?

我们这里说的数据库对象是指包括表、视图、索引和数据库中的其它对象。

实际工作中,经常会遇到需要从数据库中获取某些表的DDL(数据定义语言),即创建表的SQL语句,比如在某一表中减少列或更改列的数据类型等,因为DB2是不允许在已有的表上做这样的修改的,我们能做的,一般是将该表删除后重新创建,这时,获取该表原有DDL语句就显得有必要了。对于其它数据库对象,也存在类似的问题。这时,我们可以采用DB2的工具db2look来获取。

注意:db2look需要在DB2CMD(DB2命令窗口)下执行

语法:

db2look -d DBname [-a] [-e] [-td x] [-t Tname1 Tname2...TnameN] [-c] [-o Fname] [-i userID] [-w password]

例子:

db2look -d MY_DB_1 -a -e -c -o c:\tables.ddl

解释:

-d: 数据库名:这必须指定

-a: 为所有创建程序生成统计信息

-c: 不要生成模拟的 COMMIT 语句

-e: 抽取复制数据库所需要的 DDL 文件

-o: 将输出重定向到给定的文件名

-t: 生成指定表的统计信息

-td: 为 -td 选项给定的定界符必须仅为一个字符

-i: 登录到数据库驻留的服务器时所使用的用户标识

-w: 登录到数据库驻留的服务器时所使用的口令

其它:

注意:参数[-td x]指每一完整语句的结束符,缺省时为分号“;”,但有时你会发现换成其它结束符是有用的(如换成“@”),在下面一节我们将会详细讲解。

如何批量的执行DDL?

上一节我们介绍了如何获取数据库中对象的DDL?,这一节我们介绍一下如何在数据库中批量的执行DDL。

实际工作中,我们可以用工具或自己编程实现批量的执行DDL,我们这里只介绍如何用命令DB2简单的执行批量的执行DDL。

注意:以下命令需要在DB2CMD(DB2命令窗口)下执行

语法:

db2 –t[d x] –[v]f Fname

解释:

[d x]: x为定界符,即标志一条完整语句的结束符,如“d;”、“d@”等,缺省为“;”

-f Fname: 存放DDL的文件的文件名

[v]: 是否输出所执行的命令

例子:

这里我们使用上一节产生的DDL文件,先在该文件的“CREATE TABLE”语

句前加一条相应的“DROP TABLE”语句,目的只是为了可以重复的执行。

db2 -t -f c:\tables.ddl

db2 -t -vf c:\tables.ddl

db2 -td; -f c:\tables.ddl

解释:

我们这里重点再解释一下定界符[d x]。我们知道定界符是标志一条完整语句的结束符,即从上一定界符到本定界符(或从文件开始到第一个定界符),都将被解释为一条完整的语句。我们上面提到缺省的定界符是“;”,这在一般情况下是够用,但我们考虑一下,如果我们一条完整的语句中需要出现“;”,那会出现什么情况?默认情况下DB2是否会出错呢?回答是肯定。我们是否能解决这个问题呢?回答同样是肯定的。我们举例来说明一下,下面是一个简单的触发器:

CREATE TRIGGER TRI_TAB_1 AFTER DELETE ON TAB_1 REFERENCING OLD AS OLD_DEL FOR EACH ROW MODE DB2SQL

BEGIN ATOMIC

INSERT INTO TAB_1 VALUES(OLD_DEL.COL_1 + 10000);

INSERT INTO TAB_1 VALUES(OLD_DEL.COL_1 + 99999);

END @

我们知道,我们是希望DB2将整个触发器的创建语句当成一条语句解释的,但也注意到,创建触发器的语句中包含了多条普通的SQL语句,且使用“;”来定界,这就存在我们上面描述的问题了,默认情况下DB2会将从开始的“CREATE TRIGGER TRI_TAB_1……INSERT INTO TAB_1 VALUES(OLD_DEL.COL_1 + 10000);”作为一条完整语句解释,显然这不是我们要的。我们的解决办法

DB2开发基础

DB2开发基础 在进行DB2应用开发之前,了解DB2应用程序的结构,掌握相关概念,设置开发环境是很必要的。本章主要介绍这几个方面的内容。 1.1 DB2应用程序开发概述 1.1.1 程序结构 DB2应用程序包括以下几个部分: 1. 声明和初始化变量 2. 连接到数据库 3. 执行一个或者多个事务 4. 与数据库断开连接 5.结束程序 一个事务是一组数据库操作,在提交给数据库之前,必须确认完全成功执行。在嵌入式SQL应用程序中,当应用程序成功地连接到一个数据库时,一个事务就自动开始了,结束于执行一条COMMIT语句或者ROLLBACK语句。同时,下一条SQL语句开始一个新的事务。 每一个应用程序的开始必须包括: ● 数据库管理器用来与宿主程序交互的所有变量和数据结构的声明 ● 设置SQL通信区(SQLCA),提供错误处理的SQL语句

注意:用JAVA写的DB2应用程序在SQL语句出错时抛出一个SQLException 异常,需要在catch块里处理,而不是使用SQLCA。 每个应用程序的主体包括访问和管理数据的SQL语句。这些语句组成事务,事务必须包括下列语句: ● CONNECT语句,其建立一个与数据库服务器的连接 ● 一条或多条: ▲数据操纵语句(例如,SELECT语句) ▲数据定义语句(例如,CREATE语句) ▲数据控制语句(例如,GRANT语句) ● COMMIT或者ROLLBACK语句结束事务 应用程序的结束通常包括释放程序与数据库服务器的连接和释放其他资源的SQL语句。 1.1.2 开发方法选择 可使用几种不同的程序设计接口来存取 DB2 数据库。您可以: ● 将静态和动态 SQL 语句嵌入应用程序。 ● 在应用程序中编写“DB2 调用层接口”(DB2 CLI) 的函数调用,以调用动态 SQL 语句。 ● 开发调用“Java 数据库链接”应用程序设计接口 (JDBC API) 的 Java 应用程序和小程序。

db2数据库使用

一、db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:'’(一定用单引号),如果需要输入单引号,输入两个单引号即可。 语句结束:“;” 语法来源:PASCLE 转义字符: 如果你想查询字符串中包含'%’或'_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符 串’99%’的纪录: SELECT * FROM books WHERE book_title like '%99!%%’escape '!’ 后面的escape '!’是定一个转义字符'!’, 指明紧跟着转义字符’!'后的%不再是统配符。 DB2命令参数选项 Db2 list command options 可以查看 -a 显示 SQLCA OFF -c 自动落实 ON -e 显示 SQLCODE/SQLSTATE OFF -f 读取输入文件 OFF -l 将命令记录到历史文件中 OFF -n 除去换行字符 OFF -o 显示输出 ON -p 显示交互式输入提示 ON -r 将输出保存到报告文件 OFF -s 在命令出错时停止执行 OFF -t 设置语句终止字符 OFF -v 回送当前命令 OFF -w 显示 FETCH/SELECT 警告信息 ON -x 不打印列标题 OFF -z 将所有输出保存到输出文件 OFF 这些选项的具体功能及其缺省设置为: .a 显示 SQLCA 的数据,缺省为 OFF。 .c 是否自动落实 SQL 命令,缺省为 ON。

DB2存储过程快速入门.

1.1 SQL过程的结构 命名规则: 1、清洗过程名称命名: PROC_业务主题_目标表(PROC_JY_KJYRLJB 交易主题的卡交易日类聚表) 2、函数名称命名: PROC_业务主题_函数名(PROC_JY_GETYWZL 交易主题取得卡业务种类函数) 3、变量命名: VAR_变量描述(VAR_YWZL 业务种类变量) 4、游标命名: CUR_游标描述(CUR_KJYB 对卡交易表进行游标处理) 语法: CREATE PROCEDURE 过程名称 (参数列表 DYNAMIC RESULT SETS 结果集数量 是否允许SQL LANGUAGE SQL BEGIN SQL 过程体

END 范例“资产负债.sql ”中 第1行:Create Procedure admin.BalanceSheetDayly定义了过程名称 参数列表为Out ProcState varchar(100 其定义SQL 过程从客户应用获取,或返回客户应用的0个或多个参数,参数列表使用逗号侵害各个参数 参数类型有三种: l IN 从客户应用检索值。其不能够在SQL 过程体中修改 l OUT 向客户应用返回值 l INOUT 从客户应用检索值,并返回值 省略了结果集数量的定义,default 为0。即表示不返回结果集。 省略了是否允许SQL 的说明。其值指出了存储过程是否会使用SQL 语句,如果使用,其类型如何: l NO SQL 不能够执行任何SQL 语句 l COTAINS SQL 可以执行不会读取SQL 数据,也不会修改SQL 数据的SQL 语句 l READS SQL DATA 可以包含不会修改SQL 数据的SQL 语句 l MODIFIES SQL DATA 可以执行任何SQL 语句,除了不能够在存储过程中支持的语句以外。

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

DB2_数据库日志管理

1、load 方法装入数据: export to tempfile of del select * from tablename where not 清理条件; load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable; 说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率; tablename指待清理table的名称; modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容; nonrecoverable无日志方式装入; 2、查找当前的应用: db2 list application grep btpdbs; 3、删除当前正在使用的application: db2 "force application (id1,id2,id3)" id1,id2,id3 是list显示的应用号; 4、查看当前应用号的执行状态: db2 get snapshot for application agentid 299 grep row 5、查看数据库参数: db2 get db cfg for //当前数据库可以省略 6、修改数据库的log数据: db2 update db cfg using <参数名> <参数值> 7、db2stop force的用法: 在进行bind的时候出现如下错误: sql0082can error has occurred which has terminated processing. sql0092nno package was created because of previous errors. sql0091nbinding was ended with "3" errors and "0" warnings. 主要是表文件被加锁,不能继续使用; 在进行stop的时候报错:db2stop 8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.

db2培训笔记

1、Tablespace ●表空间分为dms与sms 设定后不可以修改,库中必定存在 syscatspace/systmpspace 两个sms类型的表空间。可创建userspace/usertmpspace(用户临时表空间用于临时表) ●Systmpspace: 在小根据使用情况自动分配动态伸缩,仅在需要时才分配磁盘空 间,并在使用后进行回收,pagesize=4 ●Syscatspace: 在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式 体现 ●Dms、sms、container Dms可以为对应多个container,不能为目录,而Sms只能提定一个目录且不能增加。 表空间是数据存储的逻辑位置定义,容器则是数据存储的物理位置定义 2、Instance ●在一个实例中数据库是完全独立的,各自有系统编目表(放在SysCatspace中) ●若为当前会话设置 DB2INSTANCE 环境变量,则其值为当前实例。要设置 DB2INSTANCE 环境变量,输入: set db2instance= ●若没有为当前会话设置DB2INSTANCE 环境变量,则DB2 UDB 使用系统环境变量 中DB2INSTANCE 环境变量的设置 ●如果根本没有设置 DB2INSTANCE 环境变量,则 DB2 UDB 使用注册表变量 DB2INSTDEF。要在注册表的全局级别设置 DB2INSTDEF 注册表变量,输入: db2set db2instdef= -g ●查询当前实例 db2 get instance ●实例命令(db2ilist db2icrt db2drop db2stop db2start) ●attach to nodename user username using password (在客户端登陆到实例上) ●当更新实例级别或数据库级别的参数后,有些可以立即生效,有些需要重新启动实例 才可生效。immediate 显式指明更改立即生效,deferred 显式指明更改在重起实例后生效。 3、在AIX中创建实例时必须有一个相同的用户名存上 4、关于在AIX小机上建库注意事现 ●需查询\etc\servise 中的开放端口与服务名称与dbm cfg 中的SVCENAME保持一致 database manager config file 数据库管理配置文件 db2 update dbm cfg using SVCENAME netstat –a|grep db2c_instname,看看监听是否起来 db2 get dbm cfg ●更改相关的注册表变量(在sqllib 下) Db2set db2codepage=1386 Db2set db2country=86 Db2set db2comm=tcpip Db2 terminate ●创建/usr/opt/db2_08_01/instance/db2icrt -u db2inst1 ●显示一个注册表变量的级别db2set rvn –all 显示一个实例级别概要文件设置的注册表值db2set -i (-g)

DB2存储过程--基础详解

DB2存储过程-基础详解 2010-12-20 来源:网络 简介 DB2 SQL Procedural Language(SQL PL)是SQL Persistent Stored Module 语言标准的一个子集。该标准结合了SQL 访问数据的方便性和编程语言的流控制。通过SQL PL 当前的语句集合和语言特性,可以用SQL 开发综合的、高级的程序,例如函数、存储过程和触发器。这样便可以将业务逻辑封装到易于维护的数据库对象中,从而提高数据库应用程序的性能。 SQL PL 支持本地和全局变量,包括声明和赋值,还支持条件语句和迭代语句、控制语句的转移、错误管理语句以及返回结果集的方法。这些话题将在本教程中讨论。 变量声明 SQL 过程允许使用本地变量赋予和获取SQL 值,以支持所有SQL 逻辑。在SQL 过程中,在代码中使用本地变量之前要先进行声明。 清单 1 中的图演示了变量声明的语法: 清单 1. 变量声明的语法 .-,-----------------. V | |--DECLARE----SQL-variable-name-+-------------------------------> .-DEFAULT NULL------. >--+-data-type--+-------------------+-+-------------------------| | '-DEFAULT--constant-' | SQL-variable-name 定义本地变量的名称。该名称不能与其他变量或参数名称相同,也不能与列名相同。 图 1 显示了受支持的DB2 数据类型:

sqc基础库使用手册

SqcLib库接口定义 新的sqc基础库采用c++封装,开发人员只需要从基础类Db2Tools派生自己的业务类。然后重载基础类的busiLogic方法,就可以完成自己业务逻辑处理。具体的处理流程为: 1、在基础类Db2Tools的run方法中完成对具体应用参数的解析。 2、run方法调用busiLogic方法,完成具体的业务逻辑 3、busiLogic方法中调用基础类的常用数据库访问方法,完成对数据库的操作。 4、在基础类的数据库访问方法中,除完成指定的数据库操作外,同时完成日志输出和相关事务控制。[日志的输出目录为profile文件中定义的AGENTTRACEDIR目录,如果没有定义,取默认路径] 1函数列表 1.1数据库类(Db2Tools) 该类有两个主要功能: 1、实现数据库访问 2、完成对具体业务逻辑调用和事务控制 ●connDb 函数原形:int connDb(const char *m_para_conn) 用途:连接数据库 参数:m_para_conn:数据库名dbname 返回:1.输入的数据库参数不对 2.密码参数环境变量设置错误 3.数据库连接失败 0.数据库连接成功 ●busiLogic 函数原形:int busiLogic(void) 用途:业务逻辑入口 参数: 返回: ●run 函数原形:int run(int argc,char *argv[]) 用途:实例开始入口 参数:argc:参数个数

Argv:参数数组 (通常取main函数入口参数) 返回:0:成功,其它:失败 ●db2RunstatTab 函数原形:int db2RunstatTab(char *tabname,char *file,int line) 用途:对表做runstats 参数:tabname:输入需要runstats的表名,schema.tabname或者tabname(schema默认为用户名) 返回:-1:失败 0:成功 ●db2Insert 函数原形:int db2Insert(char *sqlstr,char *tabname,char *file,int line) 用途:提交insert语句 参数: sqlstr:insert sql语句 file: line: 返回:-1:失败 0:成功 ●db2Update 函数原形:int db2Update(char *sqlstr,char *tabname,char *file,int line) 用途:提交update语句 参数: sqlstr:update sql语句 file: line: 返回:-1:失败 0:成功 ●db2Delete 函数原形:int db2Delete(char *sqlstr,char *tabname,char *file,int line) 用途:提交delete语句 参数: sqlstr:delete sql语句 file: line: 返回:-1.失败 0.成功 ●db2DropTab 函数原形:int db2DropTab(char *tabname,char *file,int line) 用途:删除表 参数: tabname:需要删除的表名,schema.tabname file:

db2培训资料

第一章DB2 UDB 概况 1.1、DB2 UDB的产品家族 UDB(Universal Database )的前身为DB2,是IBM公司开发的关系型数据库管理系统。从其诞生之日开始,DB2就定位于要为各种规模的企业提供稳定、高效的数据管理支持。可以说,DB2是当前适用范围最广泛的数据库产品。我们对DB2产品的划分通常分为两种方法:一种方法是按其所能支持的硬件和操作系统平台进行划分,另一种方法是按其所能支持的用户规模的不同进行划分。 DB2产品几乎覆盖了当前所有流行的硬件和操作系统平台。在大型机操作系统上,有DB2 for OS/390、DB2 for MVS/ESA、DB2 for VSE 和DB2 for VM等多种产品;在由IBM公司设计的小型机AS/400上,DB2已经嵌入在操作系统OS/400之中,成为其不可分割的一部分。DB2对UNIX操作系统的支持同样十分广泛,可以在AIX、HP-UX、Solaris、SCO-UNIX、SINIX 等多种系统上找到其相应的版本。另外,在PC操作系统上,DB2可以对Window 9x、Windows NT以及OS/2等多种操作系统提供支持。UDB 6.1还增加了对Linux操作系统的支持。以上我们所提到的只是DB2服务器所能运行的平台,DB2的客户端所能支持的平台更为广泛,除了以上提到的所有平台之外,DB2的客户端还能运行在Dos、Windows 3.x、Mac OS以及SGI公司的IRIS系统之上。 UDB产品除了能够对各种硬件和操作系统平台进行支持之外,为了适应不同用户群的需要,UDB提供了不同级别的产品,对小到个人用户,大到跨国企业的不同需求提供支持。以下是对UDB 6.1版本不同级别产品的特点介绍: UDB卫星版:是专门为移动用户设计的小型数据库产品。适合于偶尔连接DB2控 制服务器来与公司系统交换数据的单用户系统。它既能允许用户对 本地数据进行各种修改,又可以接受远程卫星控制器的集中管理, 减轻本地用户的管理负担。该版本只能运行在Windows平台。(该版 本属于UDB 6.1版本新增版本) UDB个人版:是专门为个人用户设计的功能完备的个人数据库产品,允许用户在本 地建立数据库、更改数据、开发应用程序从本地对数据库管理系统 进行存取以及通过内置的客户端对远程数据库服务器进行管理。。该 版本的限制在于不能对远程应用程序提供全面支持。该版本可以运 行在Windows、OS/2以及Linux平台。 UDB工作组版:适用于小型局域网的数据管理需求。具有UDB个人版的全部功能, 并能够对远程应用程序提供全面支持。该版本可以运行在Windows、 OS/2以及Linux平台。(UDB工作组版5.0可以运行在UNIX平台)UDB企业版:简称为UDB EE,适用于企业级的数据管理需求。具有UDB工作组 版的全部功能,并能够利用对称多处理(SMP)技术提高系统性能。 在它的程序包中,包含了DB2 Connect企业版,允许Intel平台和 UNIX平台的客户端应用程序访问大型机和AS/400上的数据库服 务。UDB企业版可以运行在Windows、OS/2、Linux以及UNIX平 台。 UDB企业扩展版:简称为UDB EEE,适用于大规模的企业应用。大规模的企业应

DB2数据库基础入门

IBM DB2数据库基础 基本命令集合 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 create alias db2admin.tables for sysstat.tables; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views;

6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables

DB2存储过程学习总结

Db2 存储过程学习总结 ●在命令窗口执行存储过程,可以方便看出存储过程在哪一行出现错误,方便修改。 ●db2 存储过程常用语句格式 ----定义 DECLARE CC VARCHAR(4000); DECLARE SQLSTR VARCHAR(4000); DECLARE st STATEMENT; DECLARE CUR CURSOR WITH RETURN TO CLIENT FOR CC; ----执行动态SQL不返回 PREPARE st FROM SQLSTR; EXECUTE st; ----执行动态SQL返回 PREPARE CC FROM SQLSTR; OPEN CUR; ----判断是否为空,使用值替代 COALESCE(判断对象,替代值)

----定义临时表 DECLARE GLOBAL TEMPORARY TABLE SESSION.TempResultTable ( Organization int, OrganizationName varchar(100), AnimalTypeName varchar(20), ProcessType int, OperatorName varchar(100), OperateCount int ) WITH REPLACE -- 如果存在此临时表,则替换 NOT LOGGED; DB2 9.x临时表使用总结 1). DB2的临时表需要用命令Declare Temporary Table来创建,并且需要创建在用户临时表空间上; 2). DB2在数据库创建时,缺省并不创建用户临时表空间,如果需要使用临时表,则需要用户在创建临时表之前创建用户临时表空间; 3). 临时表的模式为SESSION,SESSION即基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现 .; 4). 缺省情况下,在Commit命令执行时,DB2临时表中的所有记录将被删除; 这可以通过创建临时表时指定不同的参数来控制; 5). 运行ROLLBACK命令时,用户临时表将被删除; 下面是DB2临时表定义的一个示例: DECLARE GLOBAL TEMPORARY TABLE results ( RECID VARCHAR(32) , --id XXLY VARCHAR(100), --信息来源 LXDH VARCHAR(32 ), --信息来源联系电话 FKRQ DATE --反馈时间 ) ON COMMIT PRESERVE ROWS WITH REPLACE NOT LOGGED; ----字符串函数

DB2数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库(数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain on

DB2存储过程简单例子

DB2存储过程简单例子 客户在进行短信服务这个业务申请时,需要填写一些基本信息,然后根据这些信息判断这个用户是否已经存在于业务系统中。因为网上服务和业务系统两个项目物理隔离,而且网上数据库保存的客户信息不全,所以判断需要把数据交换到业务系统,在业务系统中判断。 解决方式是通过存储过程,以前也了解过存储过程,但没使用到项目中。不过经过一番努力最后还是完成了,期间遇到了一些困难,特写此文让对DB2存储过程还不熟悉的童鞋避免一些无谓的错误。 DROP PROCEDURE "PLName" @ CREATE PROCEDURE "PLName"(--存储过程名字 IN IN_ID BIGINT , --以下全是输入参数 IN IN_ENTNAME VARCHAR(200) , IN IN_REGNO VARCHAR(50), IN IN_PASSWORD VARCHAR(20), IN IN_LEREP VARCHAR(300), IN IN_CERTYPE CHARACTER(1), IN IN_CERNO VARCHAR(50), IN IN_LINKMAN VARCHAR(50), IN IN_SEX CHARACTER(1), IN IN_MOBTEL VARCHAR(30), IN IN_REQDATE TIMESTAMP, IN IN_REMITEM VARCHAR(300), IN IN_STATE CHARACTER(1), IN IN_TIMESTAMP TIMESTAMP ) BEGIN declare V_RESULT BIGINT; --声明变量 DELETE FROM TableNameA WHERE ID = IN_ID;

DB2 简明运维手册

DB2 简明运维手册 数据库启动 数据库正常启动的流程包括两个步骤, 首先启动数据库实例,在root用户下切换到实例用户su - db2inst1,执行命令db2start 然后激活对应的数据库,执行命令: db2 activate db 数据库名。 直到出现: 则数据库成功启动。 数据库停止 停止数据库使用如下命令: 在root用户下切换到实例用户su - db2inst1,执行命令db2stop force, 直到出现: 则数据库停止成功。 数据库参数 DB2的参数分为实例级参数和数据库级参数,以及实例注册变量 实例级参数:

主要设置实例使用的TCP/IP端口,查看实例端口通过命令:db2 get dbm cfg 数据库实例注册变量: 确认设置了通信协议为TCPIP,命令如下: 如果没有设置则通过命令db2set DB2COMM=tcpip进行设置。 数据库参数 确认内存自动调整已经打开, 否则连接到数据库并执行db2 update db cfg for sample using SELF_TUNING_MEM ON设置 数据库的缺省日志参数为

如果需要修改日志参数,可以通过命令 db2 udpate db cfg for 数据库名using 参数名参数值 例如增大备用日志文件数量到50,则可以通过命令修改 创建数据库 在实例用户下,执行 db2 "create <数据库名> on <目标路径> using codeset UTF-8 territory cn" 这样创建的数据库缺省页面大小(pagesize)为4K(4096),字符集为UTF-8,如果要使用GBK字符集,则把UTF-8修改为GBK即可。 创建缓冲池(bufferpool) 为了使用与缺省页面大小不一致的表空间,例如缺省页面大小为4K,但是需要使用32K页的表空间,就必须先创建页面大小为32K的缓冲池,命令如下:db2 "create bufferpool bp32k pagesize 32768" bp32k为缓冲池的名字,通常每种页面大小创建一个缓冲池即可,例如8K页面的缓冲池可以命名为bp8k。缓冲池缺省为自动调整大小,如果需要限定使用内存,则使用alter命令,如下: db2 "alter bufferpool bp32k size <页面数量> " <页面数量>为目标内存大小/页面大小,例如要为32K的bufferpool分配2GB内存,则: <页面数量>=2 * 1024 * 1024 / 32 = 65536 创建表空间 如果创建数据库默认页面大小的表空间,并且选择系统自动管理的模式,则使用命令: db2 "create tablespace <表空间名>"

db2培训资料

为 ( ( 第一章 DB2 UDB 概况 1.1、DB2 UDB 的产品家族 UDB(Universal Database )的前身为 DB2,是 IBM 公司开发的关系型数据库管理系 统。从其诞生之日开始,DB2 就定位于要为各种规模的企业提供稳定、高效的数据管理 支持。可以说,DB2 是当前适用范围最广泛的数据库产品。我们对 DB2 产品的划分通 常分为两种方法:一种方法是按其所能支持的硬件和操作系统平台进行划分,另一种方 法是按其所能支持的用户规模的不同进行划分。 DB2 产品几乎覆盖了当前所有流行的硬件和操作系统平台。在大型机操作系统上, 有 DB2 for OS/390、DB2 for MVS/ESA 、DB2 for VSE 和 DB2 for VM 等多种产品;在由 IBM 公司设计的小型机 AS/400 上,DB2 已经嵌入在操作系统 OS/400 之中,成为其不 可分割的一部分。DB2 对 UNIX 操作系统的支持同样十分广泛,可以在 AIX 、HP-UX 、 Solaris 、SCO-UNIX 、SINIX 等多种系统上找到其相应的版本。另外,在 PC 操作系统 上,DB2 可以对 Window 9x 、Windows NT 以及 OS/2 等多种操作系统提供支持。UDB 6.1 还增加了对 Linux 操作系统的支持。以上我们所提到的只是 D B2 服务器所能运行的平台, DB2 的客户端所能支持的平台更为广泛,除了以上提到的所有平台之外,DB2 的客户端 还能运行在 Dos 、Windows 3.x 、Mac OS 以及 SGI 公司的 IRIS 系统之上。 UDB 产品除了能够对各种硬件和操作系统平台进行支持之外, 了适应不同用户群 的需要,UDB 提供了不同级别的产品,对小到个人用户,大到跨国企业的不同需求提供 支持。以下是对 UDB 6.1 版本不同级别产品的特点介绍: UDB 卫星版:是专门为移动用户设计的小型数据库产品。适合于偶尔连接 DB2 控 制服务器来与公司系统交换数据的单用户系统。它既能允许用户对 本地数据进行各种修改,又可以接受远程卫星控制器的集中管理, 减轻本地用户的管理负担。该版本只能运行在 Windows 平台。 该版 本属于 UDB 6.1 版本新增版本) UDB 个人版:是专门为个人用户设计的功能完备的个人数据库产品,允许用户在本 地建立数据库、更改数据、开发应用程序从本地对数据库管理系统 进行存取以及通过内置的客户端对远程数据库服务器进行管理。 该 版本的限制在于不能对远程应用程序提供全面支持。该版本可以运 行在 Windows 、OS/2 以及 Linux 平台。 UDB 工作组版:适用于小型局域网的数据管理需求。具有 UDB 个人版的全部功能, 并能够对远程应用程序提供全面支持。该版本可以运行在 Windows 、 OS/2 以及 Linux 平台。 UDB 工作组版 5.0 可以运行在 UNIX 平台) UDB 企业版: 简称为 UDB EE ,适用于企业级的数据管理需求。具有UDB 工作组 版的全部功能,并能够利用对称多处理(SMP )技术提高系统性能。 在它的程序包中,包含了 DB2 Connect 企业版,允许 Intel 平台和 UNIX 平台的客户端应用程序访问大型机和 AS/400 上的数据库服 务。UDB 企业版可以运行在 Windows 、OS/2、Linux 以及 UNIX 平 台。 UDB 企业扩展版:简称为 UDB EEE ,适用于大规模的企业应用。大规模的企业应

DB2数据库SQL语法参考手册

DB2数据库SQL语法参考手册 DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。 一、资料定义DDL(Data Definition Language) 资料定义语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 1.建表格: CREATE TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE是资料的格式,详见表。 NUT NULL可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY是本表的主键。 2.更改表格 ALTER TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name)

DB2数据库参数详解配置

DB2数据库参数配置 数据库配置发行版级别= 0x0c00 数据库发行版级别= 0x0c00 数据库地域= CN 数据库代码页= 1208 数据库代码集= UTF-8 数据库国家/地区代码= 86 数据库整理顺序= IDENTITY 备用整理顺序(ALT_COLLATE) = 数字兼容性= OFF Varchar2 兼容性= OFF 数据库页大小= 4096 动态SQL查询管理(DYN_QUERY_MGMT) = DISABLE 对此数据库的发现支持(DISCOVER_DB) = ENABLE 限制访问= NO 缺省查询优化类(DFT_QUERYOPT) = 5 并行度(DFT_DEGREE) = 1 在算术异常时继续(DFT_SQLMATHWARN) = NO 缺省刷新有效期(DFT_REFRESH_AGE) = 0 缺省维护的选项(DFT_MTTB_TYPES)的表类型= SYSTEM 保留的高频值的数目(NUM_FREQVALUES) = 10 保留的分位点数目(NUM_QUANTILES) = 20 十进制浮点舍入方式(DECFLT_ROUNDING) = ROUND_HALF_EVEN 备份暂挂= NO

数据库是一致的= NO 前滚暂挂= NO 复原暂挂= NO 启用的多页文件分配= YES 恢复状态的日志保留= NO 日志记录状态的用户出口= NO 自调整内存(SELF_TUNING_MEM) = ON 数据库共享内存大小(4KB)(DATABASE_MEMORY) = AUTOMATIC 数据库内存阈值(DB_MEM_THRESH) = 10 锁定列表的最大存储量(4KB)(LOCKLIST) = AUTOMATIC 每个应用程序的锁定百分比列表(MAXLOCKS) = AUTOMATIC 程序包高速缓存大小(4KB)(PCKCACHESZ) = AUTOMATIC 共享排序的排序堆域值(4KB)(SHEAPTHRES_SHR) = AUTOMATIC 排序列表堆(4KB)(SORTHEAP) = AUTOMATIC 数据库堆(4KB)(DBHEAP) = AUTOMATIC 目录高速缓存大小(4KB)(CATALOGCACHE_SZ) = 260 日志缓冲区大小(4KB)(LOGBUFSZ) = 98 实用程序堆大小(4KB)(UTIL_HEAP_SZ) = 23665 缓冲池大小(页)(BUFFPAGE) = 250 SQL 语句堆(4KB)(STMTHEAP) = AUTOMATIC 缺省应用程序堆(4KB)(APPLHEAPSZ) = AUTOMATIC 应用程序内存大小(4KB)(APPL_MEMORY) = AUTOMATIC 统计信息堆大小(4KB)(STAT_HEAP_SZ) = AUTOMATIC 检查死锁的时间间隔(毫秒)(DLCHKTIME) = 10000 锁定超时(秒)(LOCKTIMEOUT) = -1

相关文档
最新文档