分类:
2008-05-21 13:01:35
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 |