在使用 DB2 RDBMS 時有幾個重要的命令。有關這些命令和其它數據庫命令的附加信息,請參閱 DB2 文檔。這些命令用於以下操作:
- 啓動一個 DB2 交互式會話
-
要啓動一個交互式會話,請輸入以下命令:
db2
- 編制 DB2 服務器節點目錄
-
要編制 DB2 服務器節點目錄,請輸入以下命令:
db2 catalog tcpip node db2node remote hostname server service_name
其中 db2node 是安裝了 DB2 客戶機的系統名稱(它在節點目錄列表中必須是唯一的),hostname 是安裝了 DB2 服務器的全限定系統名稱,service_name 是在 services 文件中定義的連接端口名。 編制遠程 DB2 數據庫目錄
-
要編制遠程數據庫目錄,請輸入以下命令:
db2 catalog database db_name as alias_name at node db2node
其中 db_name 是遠程數據庫的名稱,alias_name 是客戶機實例的名稱,db2node 是安裝了 DB2 客戶機的系統名稱。
- 連接到 DB2 服務器
-
要連接到 DB2 服務器,請輸入以下命令:
db2 connect to database user name using password
其中 database 是系統數據庫目錄中的數據庫名稱或別名,name 是數據庫實例所有者的用戶名,password 是先前用戶的密碼。
- 運行腳本
-
要運行腳本,請輸入以下命令:
db2 -f script_name -o -t -z log_name
其中 script_name 是腳本的名稱,log_name 是日誌文件的名稱。
- 結束一個 DB2 會話
-
要註銷一個交互式會話,請輸入以下命令:
quit
-
================================================================
-
以下主要以DB27.X爲基礎的.以下的字符爲小寫
-
本文對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擴展器XMLEXTENDER
網絡搜索擴展器NET.SEARCHEXTENDER
8.WINDOWS和OS/2環境下的DB2安裝目錄結構?
用SETUP.EXE來安裝
/SQLLIB安裝的根目錄,包括README文件
/SQLLIB/ADSM包含ADSTAR分佈式存儲管理器文件
/SQLLIB/BIN包含DB2工具的可執行文件
/SQLLIB/BND包含DB2工具的綁定文件
/SQLLIB/CC包含運行控制中心所需的文件
/SQLLIB/CFG包含默認的系統配置文件
/SQLLIB/CONV包含代碼頁轉換表文件
/SQLLIB/DB2默認的實例目錄
/SQLLIB/DB2DAS00缺省的DB2管理服務器目錄
/SQLLIB/DOC包含DB2聯機手冊
/SQLLIB/FUNCTION默認的用戶自定義函數目錄
/SQLLIB/FUNCTION/UNFENCED默認的非隔離用戶自定義函授目錄
/SQLLIB/HELP聯機幫助文件
/SQLLIB/JAVADB2所需的JAVA類庫
JAVA12包含JDK1.2的支持程序
/SQLLIB/MISC包含HTML搜索服務器文件
/SQLLIB/MSG/PRIME包含信息文件
/SQLLIB/QP包含QUERYPATROLLER的客戶端文件
/SQLLIB/SAMPLES包含樣例程序和樣例腳本
/SQLLIB/SPMLOG包含DB2同步點管理器日誌文件
/SQLLIB/THNSETUP包含瘦客戶端安裝文件
9.UNIX和LINUX環境下的DB2安裝目錄結構?
用DB2SETUP.EXE來安裝
安裝的根目錄下還將創建以下目錄:
README安裝的根目錄,包括README文件
ADM包含系統管理工具文件
ADSM包含ADSTAR分佈式存儲管理器文件
BIN包含DB2工具的二進制可執行文件
BND包含DB2工具的綁定文件
CC包含運行控制中心所需的文件
CFG包含默認的系統配置文件
CONV包含代碼頁轉換表文件
DOC包含DB2聯機手冊
FUNCTION默認的用戶自定義函數目錄
FUNCTION/UNFENCED默認的非隔離用ё遠ㄒ搴諛柯?lt;BR> INSTALL包含安裝程序
INSTANCE包含實例腳本
JAVADB2所需的JAVA類庫
LIBDB2庫文件
MAP包含DB2CONNECT使用的映射文件
MISC包含HTML搜索服務器文件
SAMPLES包含樣例程序和樣例腳本
MSG/$L包含DB2信息文件
10.AIX下用哪個命令來安裝DB2?
INSTALLP命令
11.同一操作系統下可以安裝多個DB2數據庫?
可以的
12.如何停止實例?
DB2STOP
13.如何啓動實例?
DB2START
[page]
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
47.如何查看數據庫的包?
select*fromsysCAT.PACKAGES
48.如何查看數據庫的存儲過程?
SELECT*FROMSYSCAT.PROCEDURES
49.如何查看錶的約束?
SELECT*FROMSYSCAT.CHECKSWHERETABNAME='AAAA'
50.如何查看錶的引用完整約束?
SELECT*FROMSYSCAT.REFERENCESWHERETABNAME='AAAA' -
大家在應用DB2的時候可能會遇到一些看似簡單的問題,特別對新手來說,我在此簡單的總結一下,發佈給大家,希望對大家能有所幫助,同時也歡迎大家一起探討,共同發展,共同進步!
以下主要以DB27.X爲基礎的.以下的字符爲小寫.
本文對DB2高手來說是不用看的.
所有字符爲小寫.
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-P REGISTEREDCONCURRENT
65.如何更新系統上的處理器的數量?
DB2LICM-N
66.如何查詢許可文件記錄的版本信息?
DB2LICM-V
67.如何查詢DB2LICM的幫助信息?
DB2LICM-H
68.一個數據庫至少包括哪些表空間?
一個目錄表空間
一個或多個用戶表空間
一個或多個臨時表空間[page]
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)的文件格式有?
有:DEL,ASC,IXF,WSF等
102.DB2支持導出(EXPORT)的文件格式有?
有:DEL,IXF,WSF等.
不支持ASC格式.
103.DB2支持載入(LOAD)的文件格式有?
有:DEL,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'//./TMP/EVPIPE1'
第二步:建立命名管道
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:數據操縱語言,用來插入,更新,刪除數據的.[page]
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的端口號?
/WINNT/SYSTEM32/DRIVERS/ETC/SERVICES
129.DB2如何執行存儲過程?
可以DB2CALLPROCEDURE_NAME
130.如何進入DB2的DOS命令方式?
DB2CMD
131.如何得到DB2的進程號?
DB2LISTAPPLICATIONS
132.如何殺DB2的進程?
FORCEAPPLICATION(ID)
133.A用戶安裝DB2後,如何用B用戶啓動DATABASE?
在B用戶下的.PROFILE中加上
./HOME/DB2INST/SQLLIB/DB2PROFILE
134.DB2中類似ORACLE的快照是? -
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;
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()
返回小於或等於參數的最大整數.
SELECTFLOOR(88.93)FROMBSEMPMS;
183.HEX()
返回一個表示爲字符串的值的16進製表示.
SELECTHEX(16)FROMBSEMPMS;
==================================================== -
常用命令
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
12. 查看錶的索引
db2 describe indexes for table user1.department
13. 查看視圖
select viewname from views
where viewname='V_ZJT_TABLES';
14. 查看索引
select indname from indexes
where indname='I_ZTABLES_TABNAME';
15. 查看存貯過程
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)
FROM SYSCAT.PROCEDURES;
16. 類型轉換(cast)
ip datatype:varchar
select cast(ip as integer)+50 from log_comm_failed
17. 重新連接
connect reset
18. 中斷數據庫連接
disconnect db2_gcb
19. view application
LIST APPLICATION;
20. kill application
FORCE APPLICATION(0);
db2 force applications all (強迫所有應用程序從數據庫斷開)
21. lock table
lock table test in exclusive mode
22. 共享
lock table test in share mode
23. 顯示當前用戶所有表
list tables
24. 列出所有的系統表
list tables for system
25. 顯示當前活動數據庫
list active databases
26. 查看命令選項
list command options
27. 系統數據庫目錄
LIST DATABASE DIRECTORY
28. 表空間
list tablespaces
29. 表空間容器
LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1
30. 顯示用戶數據庫的存取權限
GET AUTHORIZATIONS
31. 啓動實例
DB2START
32. 停止實例
db2stop
33. 表或視圖特權
grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION
34. 程序包特權
GRANT EXECUTE
ON PACKAGE PACKAGE-name
TO PUBLIC
35. 模式特權
GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER
36. 數據庫特權
grant connect,createtab,dbadm on database to user
37. 索引特權
grant control on index index-name to user
38. 信息幫助 (? XXXnnnnn )
例:? SQL30081
39. SQL 幫助(說明 SQL 語句的語法)
help statement
例如,help SELECT
40. SQLSTATE 幫助(說明 SQL 的狀態和類別代碼)
? sqlstate 或 ? class-code
41. 更改與"管理服務器"相關的口令
db2admin setid username password
42. 創建 SAMPLE 數據庫
db2sampl
db2sampl F:(指定安裝盤)
43. 使用操作系統命令
! dir
44. 轉換數據類型 (cast)
SELECT EMPNO, CAST(RESUME AS VARCHAR(370))
FROM EMP_RESUME
WHERE RESUME_FORMAT = 'ascii'
45. UDF
要運行 DB2 Java 存儲過程或 UDF,還需要更新服務器上的 DB2 數據庫管理程序配置,以包括在該機器上安裝 JDK 的路徑
db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk
TERMINATE
update dbm cfg using SPM_NAME sample
46. 檢查 DB2 數據庫管理程序配置
db2 get dbm cfg
47. 檢索具有特權的所有授權名
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH
ORDER BY GRANTEE, GRANTEETYPE, 3
create table yhdab
(id varchar(10),
password varchar(10),
ywlx varchar(10),
kh varchar(10));
create table ywlbb
(ywlbbh varchar(8),
ywmc varchar(60))
48. 修改表結構
alter table yhdab ALTER kh SET DATA TYPE varchar(13);
alter table yhdab ALTER ID SET DATA TYPE varchar(13);
alter table lst_bsi alter bsi_money set data type int;
insert into yhdab values
('20000300001','123456','user01','20000300001'),
('20000300002','123456','user02','20000300002');
49. 業務類型說明
insert into ywlbb values
('user01','業務申請'),
('user02','業務撤消'),
('user03','費用查詢'),
('user04','費用自繳'),
('user05','費用預存'),
('user06','密碼修改'),
('user07','發票打印'),
('gl01','改用戶基本信息'),
('gl02','更改支付信息'),
('gl03','日統計功能'),
('gl04','沖帳功能'),
('gl05','對帳功能'),
('gl06','計費功能'),
('gl07','綜合統計')
二. 目錄視圖說明
說明 目錄視圖
檢查約束 SYSCAT.CHECKS
列 SYSCAT.COLUMNS
檢查約束引用的列 SYSCAT.COLCHECKS
關鍵字中使用的列 SYSCAT.KEYCOLUSE
數據類型 SYSCAT.DATATYPES
函數參數或函數結果 SYSCAT.FUNCPARMS
參考約束 SYSCAT.REFERENCES
模式 SYSCAT.SCHEMATA
表約束 SYSCAT.TABCONST
表 SYSCAT.TABLES
觸發器 SYSCAT.TRIGGERS
用戶定義函數 SYSCAT.FUNCTIONS
視圖 SYSCAT.VIEWS
三. 字符串類型
二進制大對象 (BLOB) 字符串。
字符大對象 (CLOB) 字符串,它的字符序列可以是單字節字符或多字節字符,或這兩者的組合。
雙字節字符大對象 (DBCLOB) 字符串,它的字符序列是雙字節字符。
四. 數據庫範式
第一種規範形式:表中的每一行和每一列均有一個值,永遠不會是一組值。
第二種規範形式:不在關鍵字中的每一列提供取決於整個關鍵字的事實。
第三種規範形式:每個非關鍵字列提供與其他非關鍵字列無關並只取決於該關鍵字的事實。
第四種規範形式:沒有行包含有關一個實體的兩個或更多個獨立的多值事實。
五. 數據類型
數據類型 類型 特性 示例或範圍
CHAR(15) 定長字符串 最大長度爲 254 'Sunny day '
VARCHAR(15) 變長字符 最大長度爲 4000 'Sunny day'
SMALLINT 數字 長度爲 2 字節精度爲 5 位 範圍爲-32768 至 32767
INTEGER 數字 長度爲 4 字節精度爲 10 位 範圍爲-2147483648 至 2147483647
REAL 數字 單精度浮點32 位近似值 範圍爲-3.402E+38至-1.175E-37或 1.175E-37 至-3.402E+38或零
DOUBLE 數字 雙精度浮點64 位近似值 範圍爲-1.79769E+308 至-2.225E-307或 2.225E-307 至 1.79769E+308或零
DECIMAL(5,2) 數字 精度爲 5小數位爲 2 範圍爲 -10**31+1 至 10**31-1
DATE 日期時間 三部分值 1991-10-27
TIME 日期時間 三部分值 13.30.05
TIMESTAMP 日期時間 七部分值 1991-10-27-13.30.05.000000
六. 列函數
列函數對列中的一組值進行運算以得到單個結果值。下列就是一些列函數的示例。
AVG
返回某一組中的值除以該組中值的個數的和
COUNT
返回一組行或值中行或值的個數
MAX
返回一組值中的最大值
MIN
返回一組值中的最小值
七. 標量函數
標量函數對值進行某個運算以返回另一個值。下列就是一些由DB2 通用數據庫提供的標量函數的示例。
ABS
返回數的絕對值
HEX
返回值的十六進制表示
LENGTH
返回自變量中的字節數(對於圖形字符串則返回雙字節字符數。)
YEAR
抽取日期時間值的年份部分 -
============================================
-
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擴展器XMLEXTENDER
網絡搜索擴展器NET.SEARCHEXTENDER
8.WINDOWS和OS/2環境下的DB2安裝目錄結構?
用SETUP.EXE來安裝
/SQLLIB安裝的根目錄,包括README文件
/SQLLIB/ADSM包含ADSTAR分佈式存儲管理器文件
/SQLLIB/BIN包含DB2工具的可執行文件
/SQLLIB/BND包含DB2工具的綁定文件
/SQLLIB/CC包含運行控制中心所需的文件
/SQLLIB/CFG包含默認的系統配置文件
/SQLLIB/CONV包含代碼頁轉換表文件
/SQLLIB/DB2默認的實例目錄
/SQLLIB/DB2DAS00缺省的DB2管理服務器目錄
/SQLLIB/DOC包含DB2聯機手冊
/SQLLIB/FUNCTION默認的用戶自定義函數目錄
/SQLLIB/FUNCTION/UNFENCED默認的非隔離用戶自定義函授目錄
/SQLLIB/HELP聯機幫助文件
/SQLLIB/JAVADB2所需的JAVA類庫
JAVA12包含JDK1.2的支持程序
/SQLLIB/MISC包含HTML搜索服務器文件
/SQLLIB/MSG/PRIME包含信息文件
/SQLLIB/QP包含QUERYPATROLLER的客戶端文件
/SQLLIB/SAMPLES包含樣例程序和樣例腳本
/SQLLIB/SPMLOG包含DB2同步點管理器日誌文件
/SQLLIB/THNSETUP包含瘦客戶端安裝文件
9.UNIX和LINUX環境下的DB2安裝目錄結構?
用DB2SETUP.EXE來安裝
安裝的根目錄下還將創建以下目錄:
README安裝的根目錄,包括README文件
ADM包含系統管理工具文件
ADSM包含ADSTAR分佈式存儲管理器文件
BIN包含DB2工具的二進制可執行文件
BND包含DB2工具的綁定文件
CC包含運行控制中心所需的文件
CFG包含默認的系統配置文件
CONV包含代碼頁轉換表文件
DOC包含DB2聯機手冊
FUNCTION默認的用戶自定義函數目錄
FUNCTION/UNFENCED默認的非隔離用戶自定義函授目錄
INSTALL包含安裝程序
INSTANCE包含實例腳本
JAVADB2所需的JAVA類庫
LIBDB2庫文件
MAP包含DB2CONNECT使用的映射文件
MISC包含HTML搜索服務器文件
SAMPLES包含樣例程序和樣例腳本
MSG/$L包含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之淶膁elete 動作是不記日誌的
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)的文件格式有?
有:DEL,ASC,IXF,WSF等
102.DB2支持導出(EXPORT)的文件格式有?
有:DEL,IXF,WSF等.
不支持ASC格式.
103.DB2支持載入(LOAD)的文件格式有?
有:DEL,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'//./TMP/EVPIPE1'
第二步:建立命名管道
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的端口號?
/WINNT/SYSTEM32/DRIVERS/ETC/SERVICES
129.DB2如何執行存儲過程?
可以DB2CALLPROCEDURE_NAME
130.如何進入DB2的DOS命令方式?
DB2CMD
131.如何得到DB2的進程號?
DB2LISTAPPLICATIONS
132.如何殺DB2的進程?
FORCEAPPLICATION(ID)
133.A用戶安裝DB2後,如何用B用戶啓動DATABASE?
在B用戶下的.PROFILE中加上
./HOME/DB2INST/SQLLIB/DB2PROFILE
134.DB2中類似ORACLE的快照是?
SUMMARYTABLE
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; -
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;