91.如何创建DB2的概要表?
% M! q+ p% U2 B: z% T! g! O' _1 |- U DB2的概要表功能类似于ORACLE的实体化视图!
2 c% B! ^% h8 q# s 语法为:
, b+ c/ V( g4 V9 a; c1 F CREATESUMMARYTABLETABLE_NAMEAS(FULLSELECT)...
/ \& {8 d5 Q& h- H) `) B
例如:
a5 L2 D% V3 v1 {' @1 Z, w 定义一个可以刷新的概要表:
0 `/ k' y. {6 z/ [& @) W, f CREATESUMMARYTABLETABLE_NAMEAS(SELECT*FROMTABLE_NAME1WHERECOL1='AAA')
+ m( w v D) I" [# b% i
DATAINITIALLYDEFERREDREFRESHDEFERRED
& p5 f6 ]5 |# e
其中DATAINITIALLYDEFERRED规定不能将数据作为CREATETABLE语句的一部分插入表中.
+ \0 P$ z9 O$ N' u, {2 W REFRESHDEFERRED规定表中的数据可以在任何使用了REFRESHTABLE语句的时候获得刷新!
$ T& s& Q$ W& b# }
E# n+ v/ p/ w8 S0 D: ^4 _+ }
92.如何刷新概要表?
4 \/ z& T B4 V" S, I1 s$ { REFRESHTABLESUM_TABLE
5 `$ I$ \/ e. j. U2 D% h7 r% D* l
其中SUM_TABLE为概要表.
# Y/ {% x, |1 V8 @1 c
5 [. G& X% _0 ^# L# u 93.如何修改概要表?
9 a: H, j& r4 M8 `1 c- c1 e
ALTERTABLESUM_TABLE...
7 G+ G: Y4 r( c6 X* @8 D
* g1 m. j) b, U! a+ h9 _
94.如何创建临时表?
s, I0 x: `5 U. Z6 v W% E 语法:
1 [/ ^8 o; d. d* P4 P* K
DECLAREGLOBALTEMPORARYTABLETABLE_NAME
% O n# H/ D! f2 O4 J: L
AS(FULLSELECT)DEFINITIONONLY
' ]. m3 h! x, g" {/ H! H) `
EXCLUDINGIDENTITYCOLUMNATTRIBUTES
4 e+ b9 _2 K, A# V4 ^
ONCOMMITDELETEROWS
( T- {! N8 q: [% e. Z1 h- S1 {7 l
NOTLOGGED
* b% D% N# i; ~: b! y, U
第一行规定临时表的名称.
5 V- v- j" Q% J2 C, v 第二行规定临时表的列的定义.
; I; u4 t" x6 c7 _ 第三行规定不是从源结果表定义中复制的恒等列.
! _3 d7 v5 D, M1 e; l- r: T
第四行规定如果没有打开WITHGOLD光标,将会删除表的所有行.
: i1 Q8 g/ `/ Q! }' s8 E1 F" Y0 p 第五行规定不对表的改变进行记录.
/ S6 V$ o$ ]0 f7 ~' w) q/ X4 ^4 Z
例如:
! w; x8 t1 s9 p/ a3 E5 t DECLAREGLOBALTEMPORARYTABLEDEC_BSEMPMS
" k" ` c( }4 k( v, c
AS(SELECT*FROMBSEMPMS)DEFINITIONONLY
- H! o3 m3 G1 B" A; }1 G EXCLUDINGIDENTITYCOLUMNATTRIBUTES
3 x }; b! b, i3 ?
ONCOMMITDELETEROWS
. _ Q& ^. J z& v2 e NOTLOGGED
; h5 q, F$ S1 n R
# A- y( r8 ]1 {# z 95.视图的管理?
0 r+ f' I7 }( P* Y# V
如何创建视图:
8 Y& w; J$ \6 o+ v9 u6 z CREATEVIEWVIEW_NAMEASSELECT*FROMTABLE_NAMEWHERE...
( C' u* l( Y5 q
删除视图:
* O* V I; L) B7 r+ `* g) } DROPVIEWVIEW_NAME
7 z6 o5 }* H2 m% g. G- k
" @4 S0 B* ?. u- N, U+ J* n 96.如何知道视图定义的内容?
3 j5 |5 d% W; e SELECT*FROMSYSCAT.VIEWS中的TEXT列中.
7 t% C, t" S( j7 u4 T& z+ d/ U
( m4 [2 f% n+ F% H8 { 97.如何创建别名?
4 i9 x" b0 [2 t! x! ~7 Q/ }) X CREATEALIASALIAS_NAMEFORPRO_NAME
6 }6 T! b& e# P+ q, D5 L& f 后面的PRO_NAME可以是TABLE,VIEW,ALIAS,NICKNAME等.
8 n4 o, t5 p5 M; M7 O( u2 v& G
2 S+ @ F5 S& a5 f- n' q 98.如何创建序列?
+ C. ~/ y- g& |- C5 _ 例如:
2 d2 y& O& K9 P5 \& A5 P# S
CREATESEQUENCESEQUENCE_NAME
4 _0 V6 k( J; E! d/ v5 v9 {
STARTWITHSTART_NUMBER
I1 Q8 n' N- l! D& Q& n* U5 i INCREMENTBYVALUE1
7 e- A3 g; L. S' {3 g* n9 f+ j NOMAXVALUE
( V" A0 {4 S, d6 R: A1 _8 D7 f8 |4 N
NOCYCLE
, \! N( ^" C' G6 j# c CACHEMAXIMUMNUMBEROFSEQUENCEVALUES
* O$ A: X7 E9 q% M0 }% k# ?
第一行规定序列的名称.
* N) }4 a3 {! h# I. i 第二行规定序列的开始数值.
8 ~: h; a" V5 t" B. K# h
第三行规定每次新增的幅度.
/ i' P& S: U/ K7 x' F+ h% a# M
第四行规定没有最大数值限制.
$ t4 S; P3 E) |6 ?, r 第五行规定最大数值限制.
" V8 M* L) z) I( `6 N6 m6 J" }
( j; J6 n" i* r: g7 \ 99.如何更改序列?
2 _" K. k* I/ {5 p2 J ALTERSEQUENCESEQUENCE_NAME...
" R( @) ]/ L; @
可以修改的参数
. E& o8 L- h0 T3 k" i+ l STARTWITH的START_NUMBER
' B: o8 A) Z* T2 a2 e. b; \3 k
INCREMENT的VALUE1
( z# z5 r P4 Y: O0 e6 c NOMAXVALUE的数值
! U0 c4 y l( e4 Y) @/ Y) N4 U NOCYCLE属性
8 H- S5 R9 Q0 p/ j' _
MAXIMUMNUMBEROFSEQUENCEVALUES最大数值
5 L% W: u; G( j. t9 f5 ]6 \. |
; W6 f" q0 h$ P+ K$ C0 R$ U) t 100.如何删除序列?
( P+ v1 b1 p4 G# W& J
DROPSEQUENCESEQUENCE_NAME
. {: }$ l C& G- }+ V
; ^. H* k$ p+ p
101.DB2支持导入(IMPORT)的文件格式有?
& O6 d3 @+ K9 V) y0 ^
有

EL,ASC,IXF,WSF等
) |, o) V9 G. S. {; E
S( g1 n* K# n6 _' s; f) K 102.DB2支持导出(EXPORT)的文件格式有?
. T& Y0 Y( m2 i( K/ I7 B
有

EL,IXF,WSF等.
' g( z4 k* l0 k: ], z0 a
不支持ASC格式.
+ B9 E$ F0 Y. g: u8 L* v) l
# d+ c% n( c7 [6 S) } y4 }
103.DB2支持载入(LOAD)的文件格式有?
9 h' d7 f! m8 I% _% v! m 有

EL,ASC,IXF等.
7 w0 Y* B/ m6 u$ ]; V( e 不支持WSF格式.
" x3 w. |1 ^' L/ ?" w
* j! L0 {# I( F0 O: u, x; ~ 104.DB2支持DB2MOVE的文件格式有?
" i; W- I9 Q3 D' V1 o
有:IXF等.
/ n/ f |) Q3 l! Q7 @0 Y) {7 D 不支持ASC,DEL,WSF格式.
& p) B5 K4 l5 h8 J$ V & M0 ? s2 B+ p8 K2 n$ r3 @
105.DB2数据库监控的两个组成部分?
4 Y: T% e# O% z3 @" K) N3 E3 j 快照监控(SNAPSHOTMONITOR)可返回特定时间点的数据库活动的快照.
' M- G7 S- B4 d: g+ J/ d
事件监控(EVENTMONITOR)记录事件发生的数据.
- `2 ^! i V9 _7 B4 }) [" a
! q# L# a9 S' ~ 106.系统监控的数据元素类型?
4 l" U3 W) w2 d7 S5 J 计数器(COUNTER)记录活动发生的次数.
% x+ u6 u# O( {) h) Q: C% T6 [ 测量(GAUGE)测量条目的当前值.
1 W4 {4 X) m Z* o% T3 P( ^. Q
水线(WATERMARK)从监控来元素达到的最大或最小数值.
% Z0 h4 N1 C/ d: M) L9 v8 L 信息(INFORMATION)监控活动的参照类型细节.
% L4 {% T: a; b 时间点(TIMESTAMP)活动发生的日期时间.
& {" ~, g" `" ]4 J- M+ i! p) X
时间(TIME)返回一个活动花费的时间.
; H: s3 d7 g- C7 ]3 F * L$ s( H7 m6 x" m; ]0 ^. M
107.如何知道监控堆所需的页的数量?
5 m* }! D) p: j( X7 ] I! I8 X (NUMBEROFMONITORINGAPPLICATIONS 1)*(NUMBEROFDATABASES*(800 (NUMBEROFTABLES
$ w& A$ x" _; z
; _+ b' K7 g) t* v8 j- E: t
ACCESSED*20) ((NUMBEROFAPPLICATIONSCONNECTED 1)*(200 (NUMBEROFTABLE
- B4 L# e9 a0 |! f! q' _
) j$ g- {8 t# ^6 ~' o" S0 l8 n SPACES*100)))))/4096
+ s$ Z$ X$ j1 Z h J/ `0 w
其大小受参数MON_HEAD_SZ控制.
3 s1 M5 N, ~' L# c7 r; k# p3 y ) X" e/ t5 a, l: y
108.如何建立事件监控器?
; \2 {2 K# n% ^ B4 G6 }
CREATEEVENTMONITORTABLEMONFORTABLESWRITETOFILE'D:\TEMP'
! E) {- y" }* \6 [
9 _/ L0 y( y& a2 e/ r
109.如何激活事件监控器?
* |1 t1 G0 L1 I3 D: W+ F8 b
SETEVENTMONITORTABLEMONSTATE1
8 c/ [$ {8 s4 N- s$ M% W7 E( f
. Z5 Q0 ?; v( P8 Q( e5 t
110.如何停止事件监控器?
! E% p4 l. J( g7 |, W& P
SETEVENTMONITORTABLEMONSTATE0
. g, K" G0 k; \1 N% J- W7 }! E
. z8 N# H: z2 U* r/ ? 111.如何查询监控器的状态?
& C% @- b" i2 U' J: t# c SELECTEVMONNAME,EVENT_MON_STATE(EVMONNAME)FROMSYSCAT.EVENTMONITORS
7 I$ c B" a2 `
& P/ m: Q, T1 U; @2 k! _) r 112.如何删除事件监控器?
' L% t) R" B2 P3 _, n; f
DROPEVENTMONITORTABLEMON
& a1 ^2 T) X4 P: F0 J
/ U/ P$ X: [3 b- u" A3 q 113.UNIX和WINDOWS上创建管道事件监控器(PIPE意EVNT见MONITOR)的不同?
4 L v" B3 A/ \: d- o 第一步:定义事件监控器
! @$ |6 d! S* r UNIX:
0 @- I) u( W- P& ?7 x8 P& E CONNECTTOSAMPLE
- t7 j/ X# Z( w+ t2 B8 h# w0 ?
CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'/TMP/EVPIPE1'
$ g5 ]9 Y: [9 z+ S WINDOWS:
, A4 M2 `: h% U i" b
CONNECTTOSAMPLE
/ R% g$ a8 I* D" H9 ~4 d4 O CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'\\.\TMP\EVPIPE1'
) n' N& p3 F1 \& ~
% P; p% u8 C1 n; s; u 第二步:建立命名管道
( U6 E# I! ?8 D" y$ v UNIX:
$ F3 W9 ]6 A8 p# z, e( ] 可以使用MKFIFO()函数或者MKFIFO命令.
$ c, y0 x0 t+ F- D* V7 S2 ~ WINDOWS:
) U3 g; W( h" x
可以使用CREATENAMEDPIPE()函数,管道名称与CREATEEVENTMONITOR规定名称相同.
+ F% b: q3 }4 _
! S% Y5 e1 q6 M7 y
第三步:打开命名管道
% Y& a ~3 o$ }
UNIX:
9 j' Z- g* @8 C y8 g
使用OPEN()函数.
; C- `3 c# d0 k0 M" P# j% j
WINDOWS:
3 q2 H4 U9 s/ Q/ F# }* w0 C" i
使用CONNECTNAMEDPIPE()函数.
; W4 g6 S2 o* K& _1 z/ s 也可以用DB2EVMON命令,如:
7 z' I% j; U A& t DB2EVMON-DBSAMPLE-EVMSTMB2
$ t7 x, e2 ^& `, S/ z0 n + Q: Q" Q4 ]3 r& m# z9 I% N
第四步:激活命名管道事件监控器
- I$ X4 m- X- }" @$ A
除非自动激活命名管道事件监控器,否则
B3 E" r% K& q1 e
SETEVENTMONITORSTMB2STATE1
# e% x- D& u3 x5 O' d! M0 ]
y# a6 U9 J3 } 第五步:从命名管道读取数据
/ [+ G5 ?" P/ X1 y( h
UNIX:
! K+ [) x) o) U. i; G! F2 ?
可以使用READ()函数.
; t! S. U2 D! s: T+ F# _, K" C WINDOWS:
$ o1 H6 k+ x( N 可以使用READFILE()函数.
; q( o. k, w5 H6 l' H% n% t
t% W& c) ]) J7 ~ 第六步:停止事件监控器
& [# v, V: k% i: T
SETEVENTMONITORSTMB2STATE0
' C4 t( @! l# I$ i0 G2 ?3 a 1 l4 D6 |1 [0 W. o1 E
第七步:关闭命名管道
7 C. k0 C; U5 J, S0 D& k
UNIX:
' D) V' w9 _0 y" j- n4 R: e, ?0 H) u3 E 可以使用CLOSE()函数.
; I2 N6 X6 z1 W4 b) ? [* o- C
WINDOWS:
% n2 L5 o5 F% i4 M3 V! f" O( W 可以使用DISCONNECTNAMEDPIPE()函数.
% z! O, Q5 G4 F - H4 \% d, p7 Q* F1 A4 `$ n" _
第八步:删除命名管道
1 C b2 {; S: r1 C! E- j
UNIX:
0 i1 ~( }" c, D+ B 可以使用UNLINK()函数.
$ t+ a6 U, P* y' s
WINDOWS:
8 A' {8 L) e" {' s1 ? h- G* T$ D 可以使用CLOSEHANDLE()函数.
/ D: g- d8 g0 X: L ! y% t$ t8 H ^
114.DB2的SQL语句的类别
( g; \6 g% E, C6 K: ]9 ^7 K DCL:数据控制语言,提供对数据库对象的访问权限.
- U0 s4 e8 P9 u1 R7 K+ I# ] DDL:数据定义语言,创建,修改,删除数据库对象的.
$ n7 Q) C7 |( t" M
DML:数据操纵语言,用来插入,更新,删除数据的.
$ K/ j( _4 ^' M/ F8 h* T- ]" _* Q1 X7 e; T7 s
115.DCL的权限有哪些?
9 ]6 X( A; v, U3 C# l3 h/ v CONTROL权限:如果用户创建一个对象,则改用户能完全访问该对象.
$ m+ `- l% Z F& D, @ GRANT语句将权限授予给用户.
1 G: p# C1 {# k9 B2 c1 J5 `
REVOKE语句撤销一个用户的权限.
- _9 P4 X- H$ { o J* p" I1 f" p, F) ]" {5 Q
116.DDL有哪些?
2 e* }0 o2 [" H; b2 m4 ]" r CREATE
8 L/ K& ^: O! N) G
DECLARE
) o2 o3 _. F/ @7 O+ J
ALTER
' q8 C- t# e" B0 P- ^ DROP
, [1 S ^6 r9 D7 F& t
等
) P7 W2 Q6 _7 Y, e+ ?% R: R9 O" d+ x$ V5 q* t
117.DML有哪些?
$ p4 _/ P6 _7 {- q* u+ i; B4 C
INSERT
7 r! G7 M6 O$ S! i$ I, w2 Z
SELECT
) i4 Z4 ^9 k1 f2 `% h" Z$ J
UPDATE
k0 k5 h/ F6 p6 M% k* J DELETE
7 z* C1 v0 F6 x: v
等
0 _$ o% }: u7 A( T: R
; [6 o2 v% \& Z- p9 ? 118.DB2有没有布尔类型?
, E) i3 e# y- d f P; j1 t
没有
1 S7 H: v, L& {4 [ ; G8 c) y, ?2 a0 j+ S) _8 a
119.如何查询DB2的内置函数?
( x% {; y6 K7 r d3 h) z
自带文档ADMINISTION--SQLREFERENCE--FUNCTIONS内
% Y! c' T/ q" g' D$ i
% C8 P+ h) B& s! [; V9 A 120.如何执行DB2的脚本文件?
) ?. A5 k; b- Q7 _/ [$ ~) _. Z DB2-VTFFILENAME
# o& M& J! {. m5 \- r$ k
7 N; k9 U% C& ^8 J0 D) {/ w 121.DB2中象ORACLE的ROWNUM()是?
; ?8 x" C, Q3 Z m9 |
ROW_NUMBER()OVER()
8 P. q( ?4 N( X8 n! c ; N4 z W9 v k- F7 o
122.DB2如何得到错误代码的说明?
* \# m: F% B0 k- u0 y2 {* M& t1 F DB2?SQLCODE
; j1 o+ X' |4 z# J/ Z* g7 C2 |5 Z+ h& h# m1 Q( D0 u* c
123.DB2中的VARCHAR转换为INTEGER的函数为?
" }6 ?$ h. @6 g3 Z: |' @2 l* n CAST()
( k8 S9 a) D+ U( W7 F" B6 }: } 4 k' [* ?/ L! t9 }: \9 N
124.DB2中的INTEGER转换为VARCHAR的函数为?
. b# n& d& g9 V# ?
CHAR()
' {4 ~3 C# k. f" t
$ i. T3 ]( Y+ l& P9 ~& }4 n
125.DB2中的VARCHAR转换为DATE的函数为?
5 K, Q. N1 C& |, d DATE()
" X3 y1 |9 W6 b8 d
& R8 _% n' D' z, t+ ?8 ~ 126.DB2中的DATE转换为VARCHAR的函数为?
6 H7 e# V, m3 b) p7 k
CHAR()
9 n# e0 x0 `0 l1 o $ ^# Q2 S; w! o' h' r$ s% s: o9 |
127.DB2中的TRIGGER能否修改?
; p9 n' O7 i$ c 不能,只能删除重建
+ i7 N- Q* Q1 g' A& `5 _ u- [& d* h ( B6 I8 L3 K/ Z! |8 B* g
128.WINDOWS下如何知道DB2的端口号?
' S/ [- @: g, ?" W" C* ?
\WINNT\SYSTEM32\DRIVERS\ETC\SERVICES
5 V1 j* o; V, h
$ j) H7 [$ ?$ q" d! h; O! N4 L3 ?6 c 129.DB2如何执行存储过程?
o, R0 e' \0 e8 z+ C+ W1 b
可以DB2CALLPROCEDURE_NAME
$ m" F* a. B/ y- K1 a 6 [4 P: c8 L: p3 L7 ^1 [! ^
130.如何进入DB2的DOS命令方式?
2 E9 p4 B* I) D6 ?$ R6 X+ B
DB2CMD
% N& @: u2 i0 @# L0 Q, N0 { ^ R) h6 h3 E9 k5 N1 ]; z
131.如何得到DB2的进程号?
4 b; X- W. ?9 [% t DB2LISTAPPLICATIONS
! T# {, p; H1 \# L/ b! U, i
/ n0 O: Q h6 l 132.如何杀DB2的进程?
' a' k3 m' ]1 }7 f
FORCEAPPLICATION(ID)
. K$ }/ V: l" p$ \' Y 9 O! K/ A, J( }: Z
133.A用户安装DB2后,如何用B用户启动DATABASE?
% g" q$ U% p1 e, ?. @1 m 在B用户下的.PROFILE中加上
. x3 _! |/ x. w$ A ./HOME/DB2INST/SQLLIB/DB2PROFILE
1 d# t/ z2 I! P! P1 A
4 a0 _7 `7 {8 L6 V. w 134.DB2中类似ORACLE的快照是?
: P3 Q/ S+ r$ W5 c SUMMARYTABLE