××××××××××××××××××××××××××××××××××××××××××××
IBM DB2 日常維護彙總
1.DB2 産品的級别有那些 ?
企業版的 NTERPRISEEDITION
工作組版 WORKGROUPEDITION
企業擴充版 ENTERPRISEEXTENDEDEDITION
個人版的 PERSONALEDITION
衛星版的 SATELLITEEDITION
微型版的 EVERYPLACE
2. 可以連接配接到 DB2 資料庫的産品有哪些 ?
DB2 用戶端
DB2CONNECT
DB2DATAPROPAGATOR
DB2NET.DATA
DB2DATAJOINER
DB2RELATIONALCONNECT
WEBSPHERE 應用伺服器
等
3.DB2 支援的通訊協定有哪些 ?
TCP/IP
NETBIOS
APPG
IPX/SPX
NAMEPIPE
等
4.DB2 用戶端産品有哪些 ?
DB2 運作時間用戶端 DB2RUNTIMECLIENT
DB2 管理用戶端 DB2ADMINISTRATIONCLIENT
DB2 應用程式開發用戶端 DB2APPLICATIONDEVELOPMENTCLIENT
DB2 瘦用戶端 DB2THINCLIENT
5. 一個資料庫是否可以安裝在多個資料庫伺服器上 ?
可以
6. 從哪個版本後存儲過程可以用 SQL 語句來建立 ?
7.1 版後
7.DB2 提供哪些關系擴充器 ?
文本擴充器 TEXTEXTENDER
圖象擴充器 IMAGEEXTENDER
音頻擴充器 AUDIOEXTENDER
視訊擴充器 VIDEOEXTENDER
空間資料擴充器 SPATIALEXTENDER
XML 擴充器 XML EXTENDER
網絡搜尋擴充器 NET.SEARCHEXTENDER
8.WINDOWS 和 OS/2 環境下的 DB2 安裝目錄結構 ?
用 SETUP.EXE 來安裝
SQLLIB 安裝的根目錄 , 包括 README 檔案
SQLLIBADSM 包含 ADSTAR 分布式存儲管理器檔案
SQLLIBBIN 包含 DB2 工具的可執行檔案
SQLLIBBND 包含 DB2 工具的綁定檔案
SQLLIBCC 包含運作控制中心所需的檔案
SQLLIBCFG 包含預設的系統配置檔案
SQLLIBCONV 包含代碼頁轉換表檔案
SQLLIBDB2 預設的執行個體目錄
SQLLIBDB2DAS00 預設的 DB2 管理伺服器目錄
SQLLIBDOC 包含 DB2 聯機手冊
SQLLIBFUNCTION 預設的使用者自定義函數目錄
SQLLIBFUNCTIONUNFENCED 預設的非隔離使用者自定義函授目錄
SQLLIBHELP 聯機幫助檔案
SQLLIBJAVADB2 所需的 JAVA 類庫
JAVA12 包含 JDK1.2 的支援程式
SQLLIBMISC 包含 HTML 搜尋伺服器檔案
SQLLIBMSGPRIME 包含資訊檔案
SQLLIBQP 包含 QUERYPATROLLER 的用戶端檔案
SQLLIBSAMPLES 包含樣例程式和樣例腳本
SQLLIBSPMLOG 包含 DB2 同步點管理器日志檔案
SQLLIBTHNSETUP 包含瘦用戶端安裝檔案
9.UNIX 和 LINUX 環境下的 DB2 安裝目錄結構 ?
用 DB2SETUP.EXE 來安裝
安裝的根目錄下還将建立以下目錄 :
README 安裝的根目錄 , 包括 README 檔案
ADM 包含系統管理工具檔案
ADSM 包含 ADSTAR 分布式存儲管理器檔案
BIN 包含 DB2 工具的二進制可執行檔案
BND 包含 DB2 工具的綁定檔案
CC 包含運作控制中心所需的檔案
CFG 包含預設的系統配置檔案
CONV 包含代碼頁轉換表檔案
DOC 包含 DB2 聯機手冊
FUNCTION 預設的使用者自定義函數目錄
FUNCTIONUNFENCED 預設的非隔離使用者自定義函授目錄
INSTALL 包含安裝程式
INSTANCE 包含執行個體腳本
JAVADB2 所需的 JAVA 類庫
LIBDB2 庫檔案
MAP 包含 DB2CONNECT 使用的映射檔案
MISC 包含 HTML 搜尋伺服器檔案
SAMPLES 包含樣例程式和樣例腳本
MSG 包含 DB2 資訊檔案
10.AIX 下用哪個指令來安裝 DB2?
INSTALLP 指令
11. 同一作業系統下可以安裝多個 DB2 資料庫 ?
可以的
12. 如何停止執行個體 ?
DB2STOP
13. 如何啟動執行個體 ?
DB2START
14. 如何修改注冊項的值 ?
DB2SET 可以修改
如 :
設定目前執行個體的一個參數
DB2SETPARAMETER=VALUE
設定一個全局級的參數
DB2SETPARAMETER=VALUE-G( 小寫 )
檢視能在配置檔案系統資料庫中設定的所有變量的清單
DB2SET-LR( 小寫 )
15. 如何在 CLP 執行作業系統的指令 ?
在指令前加 "!" 作為字首
DB2=>!DIRC:
16. 在 CLP 中指令過長怎麼辦 ?
用 "" 作為續行符号
17. 如何獲得 DB2 的指令的文法相關資訊 ?
DB2? 顯示所有 DB2 指令
DB2?COMMAND 顯示指令資訊
DB2?SQLnnnn 顯示這個 SQLCODE 的解釋資訊
DB2?DB2nnnn 顯示這個 DB2 錯誤的解釋資訊
18. 如何檢視目前 CLP 的設定 ?
DB2=>LISTCOMANDOPTIONS
19. 如何更新目前 CLP 會話的特定項設定 ?
DB2UPDATECOMMANDOPTIONSUSINGOPTIONS...
20.COMMANDWINDOWS 可以通過哪個指令調用 ?
DB2CMD 指令
21. 管理伺服器的預設名為 ?
UNIX 下為 DB2AS
WINDOWS 下為 DB2DAS00
22. 常用管理 DB2 伺服器執行個體的指令 ?
DB2ADMINSTART 啟動 DB2 管理伺服器執行個體
DB2ADMINSTOP 停止 DB2 管理伺服器執行個體
DASICRTUNIX 下建立 DB2 管理伺服器執行個體
DASIDROPUNIX 下删除 DB2 管理伺服器執行個體
DB2ADMINCREATEWINDOWSOROS/2 下建立 DB2 管理伺服器執行個體
DB2ADMINDROPWINDOWSOROS/2 下删除 DB2 管理伺服器執行個體
DB2GETADMINCFG 顯示 DB2 管理伺服器的配置參數
DB2UPDATEADMINCFG 修改 DB2 管理伺服器的配置參數
DB2RESETADMINCFG 将 DB2 管理伺服器的配置參數設為預設值
23.DB2 目錄分為哪幾種 ?
系統資料庫目錄
本地資料庫目錄
節點目錄
DCS 目錄
管理節點目錄
24. 如何檢視系統資料庫目錄 ?
LISTDBDIRECTORY
25. 如何檢視資料庫伺服器目錄 ?
LISTNODEDIRECTORY
26.DB2 執行個體的伺服器的預設端口是 ?
50000
伺服器名稱為 DB2CDB2
27.DB2UDB 伺服器端的認證類型有 ?
SERVER
SERVER_ENCRYPT
CLIENT
DCE
DCE_SERVER_ENCRYPT
KERBEROS
KRB_SERVER_ENCRYPT
28.DB2 用戶端的認證類型有 ?
SERVER
SERVER_ENCRYPT
DCS
DCS_ENCRYPT
CLIENT
DCE
29.DB2 中有哪幾種類型的權限 ?
SYSADM 系統管理權限
SYSCTRL 系統控制權限
SYSMAINT 系統維護權限
DBADM 資料庫管理權限
LOAD 對表進行 LOAD 操作的權限
30. 不能通過 GRANT 授權的權限有哪種 ?
SYSAM
SYSCTRL
SYSMAINT
要更該述權限必須修改資料庫管理器配置參數
31. 表的類型有哪些 ?
永久表 ( 基表 )
臨時表 ( 說明表 )
臨時表 ( 派生表 )
32. 如何知道一個使用者有多少表 ?
SELECT*FROMSYSIBM.SYSTABLESWHERECREATOR='USER'
33. 如何知道使用者下的函數 ?
select*fromIWH.USERFUNCTION
select*fromsysibm.SYSFUNCTIONS
34. 如何知道使用者下的 VIEW 數 ?
select*fromsysibm.sysviewsWHERECREATOR='USER'
35. 如何知道目前 DB2 的版本 ?
select*fromsysibm.sysvERSIONS
36. 如何知道使用者下的 TRIGGER 數 ?
select*fromsysibm.SYSTRIGGERSWHERESCHEMA='USER'
37. 如何知道 TABLESPACE 的狀況 ?
select*fromsysibm.SYSTABLESPACES
38. 如何知道 SEQUENCE 的狀況 ?
select*fromsysibm.SYSSEQUENCES
39. 如何知道 SCHEMA 的狀況 ?
select*fromsysibm.SYSSCHEMATA
40. 如何知道 INDEX 的狀況 ?
select*fromsysibm.SYSINDEXES
41. 如何知道表的字段的狀況 ?
select*fromsysibm.SYSCOLUMNSWHERETBNAME='AAAA'
42. 如何知道 DB2 的資料類型 ?
select*fromsysibm.SYSDATATYPES
43. 如何知道 BUFFERPOOLS 狀況 ?
select*fromsysibm.SYSBUFFERPOOLS
44.DB2 表的字段的修改限制 ?
隻能修改 VARCHAR2 類型的并且隻能增加不能減少 .
45. 如何檢視表的結構 ?
DESCRIBLETABLETABLE_NAME
OR
DESCRIBLESELECT*FROMSCHEMA.TABLE_NAME
46. 如何快速清除一個大表 ?
ALTERTABLETABLE_NAMEACTIVENOTLOGGEDINITALLYWITHEMPTYTABLE
ALTER TABLETABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTYTABLE
兩個 commit 之間的 delete 動作是不記日志的
commit
alter table ab activate not logged intially
delete ab where id >1000
commit
(建立的表 ab 不記錄日志: create table ab (id int) not logged initially )
47. 如何檢視資料庫的包 ?
select*fromsysCAT.PACKAGES
48. 如何檢視資料庫的存儲過程 ?
SELECT*FROMSYSCAT.PROCEDURES
49. 如何檢視表的限制 ?
SELECT*FROMSYSCAT.CHECKSWHERETABNAME='AAAA'
50. 如何檢視表的引用完整限制 ?
SELECT*FROMSYSCAT.REFERENCESWHERETABNAME='AAAA'
51. 安裝 DB2 預設的事例名稱是 ?
在 WINDOWS 或 OS/2 中預設的是 DB2
在 LINUX 或 UNIX 環境下預設的是 DB2INST1
52. 安裝後的預設帳戶是 ?
在 WINDOWS 或 OS/2 中預設的是 DB2ADMIN
在 LINUX 或 UNIX 環境下預設的是 DB2AS
53. 事例的類型有哪些 ?
CLIENT( 客戶 )
STANDALONE( 獨立的 )
SATELLITE( 衛星 )
EEDB2
EEE
54. 如何建立事例 ?
DB2ICRTINSTNAME<...PARAMETERS>
55. 如何列出系統上的所有可用事例 ?
DB2ILIST
56. 如何知道目前對話用的是哪個事例 ?
GETINSTANCE
57. 如何更新事例的配置 ?
DB2IUPDT
58. 如何删除事例 ?
DB2IDROPINSTANCE_NAME
具體步驟如下 :
停止事例上所有應用程式
在所有打開的指令行上執行 DB2TERMINATE
運作 DB2STOP
備份 DB2INSTPROF 注冊變量指出的事例目錄
退出事例所有登陸者
使用 DB2IDROP
也可以删除 ID
59. 如何列出本地系統上有許可資訊的所有産品 ?
DB2LICM-L
60. 如何增加一産品許可 ?
DB2LICM-AFILENAME
61. 如何删除一個産品的許可 ?
DB2LICM-RPRODUCTPASSWORD
62. 如何更新已購買的許可數量 ?
DB2LICM-U
63. 如何強制隻使用已經購買的數量 ?
DB2LICM-EHARD
64. 如何更新系統上所使用的許可政策類型 ?
DB2LICM-PREGISTEREDCONCURRENT
65. 如何更新系統上的處理器的數量 ?
DB2LICM-N
66. 如何查詢許可檔案記錄的版本資訊 ?
DB2LICM-V
67. 如何查詢 DB2LICM 的幫助資訊 ?
DB2LICM-H
68. 一個資料庫至少包括哪些表空間 ?
一個目錄表空間
一個或多個使用者表空間
一個或多個臨時表空間
69. 根據資料與存儲空間之間移動的控制方式不同 , 分哪兩種表空間 ?
系統管理的空間 (SMS)
資料庫管理的空間 (DMS)
70. 如何列出系統資料庫目錄的内容 ?
LISTDATABASEDIRECTORY
71.CREATEDATABASE 是 SQL 指令嗎 ?
不是 , 是系統指令
72. 如何檢視資料庫 ABC 的配置檔案的内容 ?
GETDATABASECONFIGURATIONFORABC
73. 如何将資料庫 ABC 的參數設定為預設數值 ?
RESETDATABASECONFIGURATIONFORABC
74. 如何修改資料庫 ABC 配置參數數值 ?
UPDATEDATABASECONFIGURATIONFORABC
USING
75. 如何重新啟動資料庫 ?
RESTARTDATABASEDATABASE_NAME
76. 如何激活資料庫 ?
ACTIVATEDATABASEDATABASE_NAME
77. 如何停止資料庫 ?
DEACTIVATEDATABASEDATABASE_NAME
78. 如何删除資料庫 ?
DROPDATABASEDATABASE_NAME
79. 如何建立模式 ?
CREATESCHEMASCHEMA_NAME
80. 如何設定模式 ?
SETSCHEMA=SCHEMA_NAME
81. 表的類型有哪些 ?
基本表
結果表
概要表
類型表
子類型
子表
聲明的臨時表
系統臨時表
82. 如何定義序列 ?
CREATESEQUENCEORDERSEQSTARTWITH1INCREMENTBY1NOMAXVALUENOCYCLECACHE24
83. 如何将表置于檢查挂起狀态 ?
SETINTEGRITYTABLE_NAMEOFF
84. 如何獲得表的排斥鎖 ?
LOCKTABLETABLE_NAMEINEXCLUSIVEMODE
85. 如何把表調整為沒有檢查資料的線上狀态 ?
SETINTEGRITYFORTABLE_NAMEALLIMMEDIATEUNCHECKED
86. 如何解除表的鎖定 ?
COMMIT
87. 如何關閉表的日志 ?
ALTERTABLETABLE_NAMEACTIVENOTLOGGEDINIALLY
88. 如何删除表 ?
DROPSCHEMA.TABLE_NAME
89. 如何重命名表 ?
RENAMETABLE_OLDTOTABLE_NEW
90. 如何取目前時間 ?
SELECTCURRENTTIMESTAMPFROMSYSIBM.SYSDUMMY1
91. 如何建立 DB2 的概要表 ?
DB2 的概要表功能類似于 ORACLE 的實體化視圖 !
文法為 :
CREATESUMMARYTABLETABLE_NAMEAS(FULLSELECT)...
例如 :
定義一個可以重新整理的概要表 :
CREATESUMMARYTABLETABLE_NAMEAS(SELECT*FROMTABLE_NAME1WHERECOL1='AAA')
DATAINITIALLYDEFERREDREFRESHDEFERRED
其中 DATAINITIALLYDEFERRED 規定不能将資料作為 CREATETABLE 語句的一部分插入表中 .
REFRESHDEFERRED 規定表中的資料可以在任何使用了 REFRESHTABLE 語句的時候獲得重新整理 !
92. 如何重新整理概要表 ?
REFRESHTABLESUM_TABLE
其中 SUM_TABLE 為概要表 .
93. 如何修改概要表 ?
ALTERTABLESUM_TABLE...
94. 如何建立臨時表 ?
文法 :
DECLAREGLOBALTEMPORARYTABLETABLE_NAME
AS(FULLSELECT)DEFINITIONONLY
EXCLUDINGIDENTITYCOLUMNATTRIBUTES
ONCOMMITDELETEROWS
NOTLOGGED
第一行規定臨時表的名稱 .
第二行規定臨時表的列的定義 .
第三行規定不是從源結果表定義中複制的恒等列 .
第四行規定如果沒有打開 WITHGOLD 光标 , 将會删除表的所有行 .
第五行規定不對表的改變進行記錄 .
例如 :
DECLAREGLOBALTEMPORARYTABLEDEC_BSEMPMS
AS(SELECT*FROMBSEMPMS)DEFINITIONONLY
EXCLUDINGIDENTITYCOLUMNATTRIBUTES
ONCOMMITDELETEROWS
NOTLOGGED
95. 視圖的管理 ?
如何建立視圖 :
CREATEVIEWVIEW_NAMEASSELECT*FROMTABLE_NAMEWHERE...
删除視圖 :
DROPVIEWVIEW_NAME
96. 如何知道視圖定義的内容 ?
SELECT*FROMSYSCAT.VIEWS 中的 TEXT 列中 .
97. 如何建立别名 ?
CREATEALIASALIAS_NAMEFORPRO_NAME
後面的 PRO_NAME 可以是 TABLE,VIEW,ALIAS,NICKNAME 等 .
98. 如何建立序列 ?
例如 :
CREATESEQUENCESEQUENCE_NAME
STARTWITHSTART_NUMBER
INCREMENTBYVALUE1
NOMAXVALUE
NOCYCLE
CACHEMAXIMUMNUMBEROFSEQUENCEVALUES
第一行規定序列的名稱 .
第二行規定序列的開始數值 .
第三行規定每次新增的幅度 .
第四行規定沒有最大數值限制 .
第五行規定最大數值限制 .
99. 如何更改序列 ?
ALTERSEQUENCESEQUENCE_NAME...
可以修改的參數
STARTWITH 的 START_NUMBER
INCREMENT 的 VALUE1
NOMAXVALUE 的數值
NOCYCLE 屬性
MAXIMUMNUMBEROFSEQUENCEVALUES 最大數值
100. 如何删除序列 ?
DROPSEQUENCESEQUENCE_NAME
101.DB2 支援導入 (IMPORT) 的檔案格式有 ?
有

EL,ASC,IXF,WSF 等
102.DB2 支援導出 (EXPORT) 的檔案格式有 ?
有

EL,IXF,WSF 等 .
不支援 ASC 格式 .
103.DB2 支援載入 (LOAD) 的檔案格式有 ?
有

EL,ASC,IXF 等 .
不支援 WSF 格式 .
104.DB2 支援 DB2MOVE 的檔案格式有 ?
有 :IXF 等 .
不支援 ASC,DEL,WSF 格式 .
105.DB2 資料庫監控的兩個組成部分 ?
快照監控 (SNAPSHOTMONITOR) 可傳回特定時間點的資料庫活動的快照 .
事件監控 (EVENTMONITOR) 記錄事件發生的資料 .
106. 系統監控的資料元素類型 ?
計數器 (COUNTER) 記錄活動發生的次數 .
測量 (GAUGE) 測量條目的目前值 .
水線 (WATERMARK) 從監控來元素達到的最大或最小數值 .
資訊 (INFORMATION) 監控活動的參照類型細節 .
時間點 (TIMESTAMP) 活動發生的日期時間 .
時間 (TIME) 傳回一個活動花費的時間 .
107. 如何知道監控堆所需的頁的數量 ?
(NUMBEROFMONITORINGAPPLICATIONS+1)*(NUMBEROFDATABASES*(800+(NUMBEROFTABLES
ACCESSED*20)+((NUMBEROFAPPLICATIONSCONNECTED+1)*(200+(NUMBEROFTABLE
SPACES*100)))))/4096
其大小受參數 MON_HEAD_SZ 控制 .
108. 如何建立事件監控器 ?
CREATEEVENTMONITORTABLEMONFORTABLESWRITETOFILE'D:TEMP'
109. 如何激活事件監控器 ?
SETEVENTMONITORTABLEMONSTATE1
110. 如何停止事件監控器 ?
SETEVENTMONITORTABLEMONSTATE0
111. 如何查詢監控器的狀态 ?
SELECTEVMONNAME,EVENT_MON_STATE(EVMONNAME)FROMSYSCAT.EVENTMONITORS
112. 如何删除事件監控器 ?
DROPEVENTMONITORTABLEMON
113.UNIX 和 WINDOWS 上建立管道事件監控器 (PIPE 意 EVNT 見 MONITOR) 的不同 ?
第一步 : 定義事件監控器
UNIX:
CONNECTTOSAMPLE
CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'/TMP/EVPIPE1'
WINDOWS:
CONNECTTOSAMPLE
CREATEEVENTMONITORSTMB2FORSTATEMENTSWRITETOPIPE'/.TMPEVPIPE1'
第二步 : 建立命名管道
UNIX:
可以使用 MKFIFO() 函數或者 MKFIFO 指令 .
WINDOWS:
可以使用 CREATENAMEDPIPE() 函數 , 管道名稱與 CREATEEVENTMONITOR 規定名稱相同 .
第三步 : 打開命名管道
UNIX:
使用 OPEN() 函數 .
WINDOWS:
使用 CONNECTNAMEDPIPE() 函數 .
也可以用 DB2EVMON 指令 , 如 :
DB2EVMON-DBSAMPLE-EVMSTMB2
第四步 : 激活命名管道事件監控器
除非自動激活命名管道事件監控器 , 否則
SETEVENTMONITORSTMB2STATE1
第五步 : 從命名管道讀取資料
UNIX:
可以使用 READ() 函數 .
WINDOWS:
可以使用 READFILE() 函數 .
第六步 : 停止事件監控器
SETEVENTMONITORSTMB2STATE0
第七步 : 關閉命名管道
UNIX:
可以使用 CLOSE() 函數 .
WINDOWS:
可以使用 DISCONNECTNAMEDPIPE() 函數 .
第八步 : 删除命名管道
UNIX:
可以使用 UNLINK() 函數 .
WINDOWS:
可以使用 CLOSEHANDLE() 函數 .
114.DB2 的 SQL 語句的類别
DCL: 資料控制語言 , 提供對資料庫對象的通路權限 .
DDL: 資料定義語言 , 建立 , 修改 , 删除資料庫對象的 .
DML: 資料操縱語言 , 用來插入 , 更新 , 删除資料的 .
115.DCL 的權限有哪些 ?
CONTROL 權限 : 如果使用者建立一個對象 , 則改使用者能完全通路該對象 .
GRANT 語句将權限授予給使用者 .
REVOKE 語句撤銷一個使用者的權限 .
116.DDL 有哪些 ?
CREATE
DECLARE
ALTER
DROP
等
117.DML 有哪些 ?
INSERT
SELECT
UPDATE
DELETE
等
118.DB2 有沒有布爾類型 ?
沒有
119. 如何查詢 DB2 的内置函數 ?
自帶文檔 ADMINISTION-->SQLREFERENCE-->FUNCTIONS 内
120. 如何執行 DB2 的腳本檔案 ?
DB2-VTFFILENAME
121.DB2 中象 ORACLE 的 ROWNUM() 是 ?
ROW_NUMBER()OVER()
122.DB2 如何得到錯誤代碼的說明 ?
DB2?SQLCODE
123.DB2 中的 VARCHAR 轉換為 INTEGER 的函數為 ?
CAST()
124.DB2 中的 INTEGER 轉換為 VARCHAR 的函數為 ?
CHAR()
125.DB2 中的 VARCHAR 轉換為 DATE 的
函數為 ?
DATE()
126.DB2 中的 DATE 轉換為 VARCHAR 的函數為 ?
CHAR()
127.DB2 中的 TRIGGER 能否修改 ?
不能 , 隻能删除重建
128.WINDOWS 下如何知道 DB2 的端口号 ?
WINNTSYSTEM32DRIVERSETCSERVICES
129.DB2 如何執行存儲過程 ?
可以 DB2CALLPROCEDURE_NAME
130. 如何進入 DB2 的 DOS 指令方式 ?
DB2CMD
131. 如何得到 DB2 的程序号 ?
DB2LISTAPPLICATIONS
132. 如何殺 DB2 的程序 ?
FORCEAPPLICATION(ID) DB2 函數
135.AVG()
傳回一組數值的平均值 .
SELECTAVG(SALARY)FROMBSEMPMS;
136.CORR(),CORRELATION()
傳回一對數值的關系系數 .
SELECTCORRELATION(SALARY,BONUS)FROMBSEMPMS;
137.COUNT()
傳回一組行或值的個數 .
SELECTCOUNT(*)FROMBSEMPMS;
138.COVAR(),COVARIANCE()
傳回一對數值的協方差 .
SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS;
139.MAX()
傳回一組數值中的最大值 .
SELECTMAX(SALARY)FROMBSEMPMS;
140.MIN()
傳回一組數值中的最小值 .
SELECTMIN(SALARY)FROMBSEMPMS;
141.STDDEV()
傳回一組數值的标準偏差 .
SELECTSTDDEV(SALARY)FROMBSEMPMS;
142.SUM()
傳回一組資料的和 .
SELECTSUM(SALARY)FROMBSEMPMS;
143.VAR(),VARIANCE()
傳回一組數值的方差 .
SELECTVARIANCE(SALARY)FROMBSEMPMS;
144.ABS(),ABSVAL()
傳回參數的絕對值 .
SELECTABS(-3.4)FROMBSEMPMS;
145.ACOS()
傳回參數的反餘弦值 .
SELECTACOS(0.9)FROMBSEMPMS;
146.ASCII()
傳回整數參數最左邊的字元的 ASCII 碼 .
SELECTASCII('R')FROMBSEMPMS;
147.ASIN()
傳回用弧度表示的角度的參數的反正弦函數 .
SELECTASIN(0.9)FROMBSEMPMS;
148.ATAN()
傳回參數的反正切值 , 該參數用弧度表示的角度的參數 .
SELECTATAN(0.9)FROMBSEMPMS;
149.ATAN2()
傳回用弧度表示的角度的 X 和 Y 坐标的反正切值 .
SELECTATAN2(0.5,0.9)FROMBSEMPMS;
150.BIGINT()
傳回整型常量中的數字或字元串的 64 位整數表示 .
SELECTBIGINT(EMP_NO)FROMBSEMPMS;
151.CEILING()ORCEIL()
傳回比參數大或等于參數的最小的整數值 .
SELECTCEILING(3.56)FROMBSEMPMS;
SELECTCEIL(4.67)FROMBSEMPMS;
152.CHAR()
傳回日期時間型 , 字元串 , 整數 , 十進制或雙精度浮點數的字元串表示 .
SELECTCHAR(SALARY,',')FROMBSEMPMS;
153.CHR()
傳回具有由參數指定的 ASCII 碼的字元 .
SELECTCHAR(167)FROMBSEMPMS;
133.A 使用者安裝 DB2 後 , 如何用 B 使用者啟動 DATABASE?
在 B 使用者下的 .PROFILE 中加上
./HOME/DB2INST/SQLLIB/DB2PROFILE
134.DB2 中類似 ORACLE 的快照是 ?
SUMMARYTABLE
154.CONCAT()
傳回兩個字元串的連接配接 .
SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS;
155.YEAR()
傳回數值的年部分 .
SELECTYEAR('2003/01/02')FROMBSEMPMS;
156.VARCHAR()
傳回字元串 , 日期型 , 圖形串的可變長度的字元串表示 .
SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS;
157.UCASE()ORUPPER()
傳回字元串的大寫 .
SELECTUCASE(EMP_NAM)FROMBSEMPMS;
SELECTUPPER(EMP_NO)FROMBSEMPMS;
158.TRUNCATE()ORTRUNC()
從表達式小數點右邊的位置開始截斷并傳回該數值 .
SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;
159.TIME()
傳回一個數值中的時間 .
SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS;
160.SUBSTR(EXP1,EXP2)
傳回 EXP1 串自 EXP2 處開始的子串 .
SELECTSUBSTR('CDNJFDJFJD',5)FROMBSEMPMS;
SELECTSUBSTR('CDNJFDJFJD',5,2)FROMBSEMPMS;
161.SQRT()
傳回該參數的平方根 .
SELECTSQRT(36)FROMBSEMPMS;
162.SPACE()
傳回由參數指定的長度 , 包含空格在内的字元串 .
SELECTSPACE(10)FROMBSEMPMS;
163.SECOND()
傳回一個數值的秒部分 .
SELECTSECOND('18:34:32')FROMBSEMPMS;
164.RTRIM()
删除字元串尾部的空格 .
SELECTRTRIM('COMMENT')FROMBSEMPMS;
165.ROUND(EXP1,EXP2)
傳回 EXP1 小數點右邊的第 EXP2 位置處開始的四舍五入值 .
SELECTROUND(2345.6789,2)FROMBSEMPMS;
166.REPLACE(EXP1,EXP2,EXP3)
用 EXP3 替代 EXP1 中所有的 EXP2
SELECTCHAR(REPLACE('ROMANDD','NDD','CCB'),10)FROMBSEMPMS;
167.REPEAT(EXP1,EXP2)
傳回 EXP1 重複 EXP2 次後的字元串 .
SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS;
168.REAL()
傳回一個數值的單精度浮點數表示 .
SELECTREAL(10)FROMBSEMPMS;
169.RAND()
傳回 0 和 1 之間的随機浮點數 .
SELECTRAND()FROMBSEMPMS;
170.POWER(EXP1,EXP2)
傳回 EXP1 的 EXP2 次幂 .
SELECTPOWER(2,5)FROMBSEMPMS;
171.POSSTR(EXP1,EXP2)
傳回 EXP2 在 EXP1 中的位置 .
SELECT('ABCDEFGH','D')FROMBSEMPMS;
172.NULLIF(EXP1,EXP2)
如果 EXP1=EXP2, 則為 NULL, 否則為 EXP1
173.NODENUMBER()
傳回行的分區号 .
SELECTNODENUMBER(EMP_NO)FROMBSEMPMS;
174.MONTH()
傳回一個數值的月部分 .
SELECTMONTH('2003/10/20')FROMBSEMPMS;
175.MOD(EXP1,EXP2)
傳回 EXP1 除以 EXP2 的餘數 .
SELECTMOD(20,8)FROMBSEMPMS;
176.MINUTE()
傳回一個數值的分鐘部分 .
SELECTMINUTE('18:34:23')FROMBSEMPMS;
177.LTRIM()
删除字元串前面的空格 .
SELECTLTRIM('CDDD')FROMBSEMPMS;
178.HOUR()
傳回一個數值的小時部分 .
SELECTHOUR('18:34:23')FROMBSEMPMS;
179.DOUBLE()
如果參數是一個數字表達式 , 傳回與其相對應的浮點數 , 如果參數是字元串表達式 , 則傳回該數的字元串表達式 .
SELECTDOUBLE('5678')FROMBSEMPMS;
180.EXP()
傳回參數的指數函數 .
SELECTEXP(2)FROMBSEMPMS;
181.FLOAT()
傳回一個數的浮點表示 .
SELECTFLOAT(789)FROMBSEMPMS;
182.FLOOR()
傳回小于或等于參數的最大整數 .
SLECTFLOOR(88.93)FROMBSEMPMS;
183.HEX()
傳回一個表示為字元串的值的 16 進制表示 .
SELECTHEX(16)FROMBSEMPMS;
1. 檢視本地節點目錄
指令視窗中輸入:db2 list node directory
2. 編目一個TCP/IP節點
指令視窗:db2 catalog tcpip node remote server ostype
3. 取消節點編目
db2 uncatalog node
4. 檢視系統資料庫目錄
db2 list database directory
5. 檢視本地資料庫目錄
db2 list database directory on <盤符>
在本地資料庫目錄中有而系統資料庫目錄中沒有的資料庫不能通路,可以在控制中心中選中<資料庫>右鍵單擊選擇添加,然後輸入需要添加的資料庫名稱或者點選重新整理按鈕選擇資料庫,加入資料庫後即可以通路。
6. 編目資料庫
db2 catalog database as at node
7. 取消資料庫編目
db2 uncatalog database
8. 測試遠端資料庫的連接配接
db2 connect to user using
9. 設定預設模式
任何使用者均可通過設定Current Schema專用寄存器為特定的資料庫連接配接設定預設模式,初始預設值為目前會話使用者的權限ID。
set schema =
可以由使用者互動式的使用,也可在應用程式中使用,如果用Dynamicrules Bind選項綁定包,這個語句就沒有作用。此語句不在事務控制之下。
10. 代碼頁的設定
在建立資料庫時設定字元集
create database using codeset territory
例:
create database dbtest using codeset IBM-437 territory US
也可以設定整個資料庫的代碼頁,在win2000/NT/xp中,在我的電腦-->屬性-->進階-->環境變量中添加變量DB2CODEPAGE = ,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2指令視窗輸入 db2set DB2CODEPAGE=1386,設定後需要重新啟動DB2生效。
11. DB2低版本資料到高版本的遷移
先将低版本資料備份使用恢複功能導入高版本資料庫,然後在指令視窗輸入 db2 migrate database 。
12. 表名或模式中含有引号時通路表
指令視窗:db2 select * from "tabschema"."tabname"
指令行處理器:db2=> select * from "tabschema"."tabname"
13. 導出資料庫的表結構生成DDL檔案
指令視窗:db2look -d -e -c -o
14. 執行腳本檔案
指令視窗:db2 -tvf
15. 代碼頁的轉換
16. 擷取目前DB2的版本
select * from sysibm.sysversions
17. DB2表的字段的修改限制?
隻能修改VARCHAR2類型的并且隻能增加不能減少
alter table alter column set data type varchar(SIZE)
18. 如何檢視表的結構?
describe table
or
describe select * from .
19. 如何快速清除一個大表?
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
20. 如何檢視資料庫的存儲過程?
SELECT * FROM SYSCAT.POCEDURES
21. 如何檢視表的限制?
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME =
22. 如何檢視表的引用完整限制?
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME =
23. 如何知道BUFFERPOOLS狀況?
select * from SYSCAT.BUFFERPOOLS
24. 如何在指令行下檢視修改執行個體和資料庫配置參數?
檢視執行個體配置參數: db2 get dbm cfg
修改執行個體配置參數: db2 update dbm cfg using 參數名 新值
檢視資料庫配置參數: db2 get db cfg for
修改資料庫配置參數: db2 update db cfg for using 參數名 新值
25. 如何修改緩沖區?
增加緩沖區: create bufferpool size [pagesize 4096] {[not] EXTENDED STORAGE}
修改緩沖區: alter bufferpool size {[not] EXTENDED STORAGE}
删除緩沖區: drop bufferpool
如果緩沖區大小設定為 -1 表示緩沖池的頁面數目由資料庫配置參數buffpage決定。
注意: 資料庫配置參數buffpage僅對緩沖區大小設定為 -1 的緩沖池起作用。
26. 多個字段時如何不通過使用select子句使用in/not in
select * from tabschema.tabname where (colA, colB, colC) [not] in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn))
27. 檢視目前連接配接到資料庫的應用
db2 list application [show detail]
28. 如何确認DB2資料庫的一緻性
db2dart /DB
/DB表示檢查整個資料庫的一緻性
29. 測試SQL語句的性能
db2batch -d -f [-a userid/passwd] [-r ]
-r 選項表示将查詢結果輸出到一個檔案中。
30. 導出某個表的資料
export to
如:導出使用者表
export to c:user.ixf of ixf select * from user
31. 導入資料
import from
:導入使用者表。導入時可以直接建立新表。如果有該表存在也可以用INSERT 插入,或者用UPDATE更新
import from c:user.ixf of ixf [Create/Insert into / update] tablename