DB2基本知识.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WHERE Column=Value
UPDATE
UPDATE
Table
SET Value
WHERE Column=Value
DELETE
DELETE
FROM Table
WHERE Column=Value
INSERT
INSERT INTO Table
VALUES(..,..,..,)
12 2020/4/30
EXEC SQL FETCH K9 INTO :EMPNO,:NAME END-EXEC.
CLOSE CURSOR when finished
EXEC SQL CLOSE K9 END-EXEC.
注意:游标操作在open时才对数据库中的table进行选择处 理。
15 2020/4/30
SQLCA-SQL Communication Area
VALIDATE(BIND) ISOLATION(CS) EXPLAIN(YES) QUALIFIER(NASE001) OWNER(IBMUSER)
END
11 2020/4/30
DB2 的 SQL 编程
基本 SQL 语句:
SELECT
SELECT Column,Column
FROM Table
10 2020/4/30
BIND PACKAGE
//PH02CS04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) //DBRMLIB DD DSN=VGUSR.MVSCICS.DBRMLIB,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //REPORT DD SYSOUT=* //SYSIN DD DUMMY //SYSTSIN DD * DSN SYSTEM(DSN1) BIND PACKAGE(NASE001) MEMBER(NAH2020) ACT(REP) -
DATABASE : 逻辑数据库定义
TABLESPACES : 定义数据库表的物理存放
STORAGE GROUP : 定义物理卷空间分配
TABLE :
关系数据库的基本表
INDEX :
建立在TABLE上的索引
VIEW :
视图,建立在TABLE上的虚表
4 2020/4/30
TABLE/TABLE SPACES
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
MERGECOPY TABLESPACE NASEDB.NSPATEL COPYDDN(SYSCOPY1)
NEWCOPY YES
20 2020/4/30
在使用可能定义为 NULL 的域时,应当使用指针变量 来判断值域是否是 null 值,如下例: SELECT COLA INTO :A:AIND 其中,AIND 定义为指针变量 s9(4) comp。 如果该值域为null , 返回的指针变量值将小于零。
13 2020/4/30
Cursors
在查询数据库可能返回多条数据记录时,
Load MODULE
BIND
DB2 Directory PLAN (Package)
EXECUTE
When executing , system will check the
Timestamp(Consistency Token) of Load
MODULE and Plan which is made by Pre-compiler.
TABLE SPACES
Table space 可以分为三种基本类型: Partitioned :在一个 Table space 中只有一个表
(table),实际的数据还可以存放在不同的 数据集中(按照某种键值区分); Segmented :在一个 Table space 中允许有一个 或多个Table,空间的分配以段(segment)来 组织,但在每一个段中只存放同一个表; Simple :允许一个或者多个表存放于同一个 Table space 中,空间分配以 page 来组织。
应用程序调用 DB2 时使用的系统通讯 区,其中的返回代码域可以用来判断 SQL调用是否成功。常用的返回代码域 有: SQLCODE(INTEGER) –调用执行返回代 码(000-成功;<0-调用失败,例如:-530 New foreign key value is invalid ; >0-调用 警告,例如:+100 Row not found); SQLSTATE –调用返回代码详细说明。
19 2020/4/30
DB2 online utility –MERGECOPY
MERGECOPY -建立(或合并)数据的完全拷贝(full image copies )或增量拷贝(incremental image copies);
//STEP1 EXEC DSNUPROC,PARM=‘FJDB,CPY1',COND=(4,LT),REGION=0M
IMS Attach
2 2020/4/30
DB2 Object
DB2 SUBSYSTEM
CATALOG DIRECTORY OTHER SYSTEM OBJECTS
DATABASE 1 TABLE SPACES1
DATABASE2.etc. TABLE SPACES2
TABLE1
TABLE2. etc.
Action 可以为 GO TO :Lable 或者是 CONTINUE.
17 2020/4/30
Coding Aids
DSNTIAR/DANTIR
SQL错误返回代码解释例程,在应用程序中调 用该例程以获得系统标准的错误解释。
CALL DSNTIAR
DCLGEN
根据DB2中的Table定义将表的定义描述生成 到指定的数据集中。
主机变量(Host variables)
嵌入式语言中定义的变量,在SQL语句中可以使用,如 下例: EXEC SQL UPDATE TMPTABLE SET Salary = Salary * :PERCENT WHERE Jobcode = :JCODE END-EXEC. 使用时在变量前必须使用冒号(:)来标示主机变量。
//wenku.baidu.com
REGION=6500K,CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//STEP1 EXEC DSNUPROC,PARM='FJDB,COPY',COND=(4,LT),REGION=1024K
//DSNTRACE DD SYSOUT=*
//SYSCOPY1 DD DSN=DBA1.IMAGCOPY.INC1.NSPATEL, DISP=(NEW,CATLG),
Include statement
18 2020/4/30
DB2 online utility –COPY/IMAGE
COPY-将一个tablespace拷贝到顺序数据集中,
– FULLCOPY / INCREMENTAL COPY;
//IMGINC JOB (ACCTNUM,EXP),'PGMRNAME', TIME=1440, NOTIFY=&SYSUID,
使用“游标”(Cursors)来完成对记录 的处理。使用的语句包括:
DECLARE -声明一个游标
OPEN
-打开游标
FETCH
-读取游标中的一条记录
CLOSE CURSOR -关闭游标
14 2020/4/30
游标(CURSOR)使用例程
DEFINE A CURSOR
----- Definition
EXEC SQL
DECLARE K9 CURSOR FOR
SELECT EMPNO,LASTNAME
FROM TEMP1
WHERE DEPNO = :DPT
END-EXEC.
OPEN the CURSOR
---- Execution
EXEC SQL OPEN K9 END-EXEC.
FETCH RESULT ROWS ONE AT A TIME
Source Program ..
EXEC SQL …
Language Interface
DB2 Pre-Compile
Source
DBRM SQL
STMNTS
DB2 CATALOG Table/Column Description Authorization SYSDBRM
Compile and Linkedit
6 2020/4/30
DB2 数据库的基本建立过程
建立存储组 ( Storage Group); 建立逻辑数据库 (DataBase); 定义表空间 (Tablespace); 建立表 (Table); 在表的基础上建立索引 (Index) ; 装载、处理数据 (LOAD/INSERT);
//
UNIT=3390,VOL=SER=NGDAT1,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
COPY TABLESPACE NASEDB.NSPATEL COPYDDN SYSCOPY1
FULL NO SHRLEVEL REFERENCE
16 2020/4/30
Coding Aids
Whenever statement
用来处理可能出现的例外状况,在程序中一 旦定义全程使用。
EXEC SQL WHENEVER condition action END-EXEC.
Condition 包括: SQLERROR– SQLCODE 小于零; SQLWARNING – SQLCODE 大于零; NOT FOUND – SQLCODE = 100;
DB2/OS390
➢DB2 系统介绍 ➢DB2 编程 ➢DB2 的常用UTILITY
1 2020/4/30
DB2 系统架构示意
在OS/390系统中,DB2作为独立的数据库 应用系统,通过与其他应用间的接口 (ATTCHMENT)进行数据交换。
CICS Attach
DB2
TSO
Attach
OS/390
INDEX1
INDEX2.etc.
VIEW1
VIEW2
VIEW3.etc
STORAGE GROUP1 VOLUME1 VOLUME2
STORAGE GROUP2 VOLUME3
3 2020/4/30
DB2 Objects 概述
CATALOG : DB系统定义信息
DIRECTORY : DB系统管理信息
➢ UPDATE
SELECT
➢ DELETE
INSERT
DCL(Data Control Language):资源控制管理
➢ GRANT
REVOKE
8 2020/4/30
SQL 程序的预编译
DB2 的预编译(Pre-compile):
- 将SQL语句与非SQL语句分离; - 建立数据库访问模块(DBRM); - 检测语法错误;
Bind:
– 使用数据库的catalog信息 , 检测错误(资源 的授权、DB2的关系数据库规则);
– 对每一个SQL语句采取相应的调用策略(资 源锁、索引的使用);
– 将访问策略存储为plan(或是一个package); – Plan 由集成的一系列DBRMs组成。
9 2020/4/30
应用程序的编译以及运行过程
//DSNTRACE DD SYSOUT=*
//SYSCOPY1 DD DSN=NASE.MERGCOPY.NSPATEL.NO3,
//
DISP=(NEW,CATLG),
//
UNIT=3390,SPACE=(TRK,(3,1)),
//
VOL=SER=DB2VOL
//SYSPRINT DD SYSOUT=*
7 2020/4/30
DB2 SQL 语言
SQL(Structured Query Language),在DB2中包括:
DDL(Data Definition Language):用于数据库对象 的定义
➢ CRATE
ALTER
➢ COMMENT ON
LABEL ON
DML(Data Manipulation Language):用于数据库 的数据操作
在DB2的中,PAGE是最小的存储单元, 也是I/O的基本单位,大小为4K或32K;
TABLE中的一行(ROW)必须存放在 单个PAGE中,一个PAGE中可以存放多 个行(必须是同一个TABLE);
在资源管理中,Tablespaces, table, 或 page 都可以作为资源锁的单元;
5 2020/4/30
相关文档
最新文档