db2基础:物化查询表简介
- 格式:pdf
- 大小:974.88 KB
- 文档页数:5
IBM DB2数据库基础基本命令集合1. 建立数据库DB2_GCBCREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCBUSING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 322. 连接数据库connect to sample1 user db2admin using 83012063. 建立别名create alias db2admin.tables for sysstat.tables;CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWScreate 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 fromzjt_tables;7. 建立触发器CREATE TRIGGER zjt_tables_delAFTER DELETE ON zjt_tablesREFERENCING OLD AS OFOR EACH ROW MODE DB2SQLInsert into zjt_tables1values(substr(o.tabschema,1,8),substr(o.tabname,1,10))8. 建立唯一性索引CREATE UNIQUE INDEX I_ztables_tabnameON zjt_tables(tabname);9. 查看表select tabname from tableswhere tabname='ZJT_TABLES';10. 查看列select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度from columnswhere tabname='ZJT_TABLES';11. 查看表结构db2 describe table user1.departmentdb2 describe select * from user.tables12. 查看表的索引db2 describe indexes for table user1.department13. 查看视图select viewname from viewswhere viewname='V_ZJT_TABLES';14. 查看索引select indname from indexeswhere indname='I_ZTABLES_TABNAME';15. 查看存贮过程SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES;16. 类型转换(cast)ip datatype:varcharselect cast(ip as integer)+50 from log_comm_failed17. 重新连接connect reset18. 中断数据库连接disconnect db2_gcb19. view applicationLIST APPLICATION;20. kill applicationFORCE APPLICATION(0);db2 force applications all (强迫所有应用程序从数据库断开) 21. lock tablelock table test in exclusive mode22. 共享[锁]lock table test in share mode23. 显示当前用户所有表list tables24. 列出所有的系统表list tables for system25. 显示当前活动数据库list active databases26. 查看命令选项list command options27. 系统数据库目录LIST DATABASE DIRECTORY28. 表空间list tablespaces29. 表空间容器LIST TABLESPACE CONTAINERS FOR Example: LIST TABLESPACE CONTAINERS FOR 130. 显示用户数据库的存取权限GET AUTHORIZATIONS31. 启动实例DB2START32. 停止实例db2stop33. 表或视图特权grant select,delete,insert,update on tables to user grant all on tables to user WITH GRANT OPTION34. 程序包特权GRANT EXECUTEON PACKAGE PACKAGE-nameTO PUBLIC35. 模式特权GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER36. 数据库特权grant connect,createtab,dbadm on database to user37. 索引特权grant control on index index-name to user38. 信息帮助 (? XXXnnnnn )例:? SQL3008139. SQL 帮助(说明 SQL 语句的语法)help statement例如,help SELECT40. SQLSTATE 帮助(说明 SQL 的状态和类别代码)? sqlstate 或 ? class-code41. 更改与"管理服务器"相关的口令db2admin setid username password42. 创建 SAMPLE 数据库db2sampldb2sampl F:(指定安装盘)43. 使用操作系统命令! dir44. 转换数据类型 (cast)SELECT EMPNO, CAST(RESUME AS VARCHAR(370))FROM EMP_RESUMEWHERE RESUME_FORMAT = 'ascii'45. UDF要运行 DB2 Java 存储过程或 UDF,还需要更新服务器上的DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径db2 update dbm cfg using JDK11_PATH d:/sqllib/java/jdk TERMINATEupdate dbm cfg using SPM_NAME sample46. 检查 DB2 数据库管理程序配置db2 get dbm cfg47. 检索具有特权的所有授权名SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH UNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH UNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROMSYSCAT.PACKAGEAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH UNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH UNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROMSYSCAT.SCHEMAAUTHUNIONSELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROMSYSCAT.PASSTHRUAUTHORDER BY GRANTEE, GRANTEETYPE, 3create 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) 字符串。
db2参数大全(共5篇)第一篇:db2参数大全•参数名称说明DB2CODEPAGE 为数据库客户机应用程序指定呈示给DB2 的数据的代码页DB2COUNTRY 指定客户机应用程序的国家或地区、地域或区域代码DB2_PINNED_BP 用于指定在某些 AIX 操作系统上与主存中的数据库关联的数据库全局内存(包括缓冲池)DB2_PARALLEL_IO 用来更改 DB2 计算表空间的 I/O 并行性的方式DB2ATLD_PORTS 用于指定LOAD操作所使用的通信端口范围DB2_HASH_JOIN 将散列连接指定为当编译存取方案时可能的连接方法DB2MEMDISCLAIM 控制 DB2 代理进程是否显式请求 AIX 从释放的内存中解除关联保留的调页空间DB2MEMMAXFREE 指定未使用的专用内存的最大字节数,在将未使用的内存返回到操作系统之前该字节数由 DB2 进程保留DB2_FORCE_FCM_BP 指定DB2 从数据库全局内存中或从单独的共享内存段(如果没有足够的全局内存可用)分配 FCM 缓冲区DB2DBDFT 指定用于隐式连接的数据库的数据库别名DB2COMM 指定当启动数据库管理器时所启动的通信管理器DBM CFG参数名称说明DFT_MON_BUFPOOL 快照监视器的缓冲池开关的缺省值DFT_MON_LOCK 快照监视器的锁定开关的缺省值DFT_MON_SORT 快照监视器的排序开关的缺省值DFT_MON_STMT 快照监视器的语句开关的缺省值DFT_MON_TABLE 快照监视器的表开关的缺省值DFT_MON_TIMESTAMP 快照监视器的时间戳记开关的缺省值DFT_MON_UOW 快照监视器的工作单元(UOW)开关的缺省值HEALTH_MON 指定是否想要根据各种健康指示器来监视实例、它的相关数据库和数据库对象SYSCTRL_GROUP 定义具有系统控制(SYSCTRL)权限的组名SYSMAINT_GROUP 定义具有系统维护(SYSMAINT)权限的组名 SYSMON_GROUP 定义具有系统监视(SYSMON)权限的组名NUM_POOLAGENTS 确定空闲代理进程池的最大大小DFTDBPATH 指定在数据库管理器下创建数据库的缺省文件路径MON_HEAP_SZ 确定分配给数据库系统监视器数据的内存量JAVA_HEAP_SZ 确定由已启动以便为 Java DB2 存储过程和 UDF 提供服务的 Java 解释器使用的堆的最大大小SHEAPTHRES 定义排序堆的阈值QUERY_HEAP_SZ 指定可为查询堆分配的最大内存容量MAXAGENTS 指定可在任何给定时间接受应用程序请求的数据库管理器代理进程(无论是协调代理进程还是子代理进程)的最大数目NUM_POOLAGENTS 确定空闲代理进程池的最大大小NUM_INITAGENTS 确定在 DB2START 时在代理进程池中创建的初始空闲代理进程数SVCENAME 数据库服务器将用于等待来自远程客户机节点的通信的 TCP/IP 端口的名称MAX_QUERYDEGREE 指定用于在数据库管理器的此实例上执行的任何 SQL 语句的最大分区内并行度INTRA_PARALLEL 指定数据库管理器是否可以使用分区内并行性FCM_NUM_BUFFERS 指定数据库服务器之间及内部用于内部通信(消息)的 4 KB 缓冲区数DB CFG参数名称说明DFT_QUERYOPT 指定查询优化级别用于指导优化器使用不同程度的优化DFT_DEGREE 指定 CURRENT DEGREE 专用寄存器和 DEGREE 绑定选项的缺省值DBHEAP 制定数据库堆的大小CATALOGCACHE_SZ 指定用于高速缓存系统目录信息的内存大小LOGBUFSZ 指定用作日志记录的缓冲区的数据库堆阵的容量UTIL_HEAP_SZ 指定实用程序堆的大小LOCKLIST 指示分配给锁定列表的内存量APPGROUP_MEM_SZ 确定应用程序组共享内存段的大小GROUPHEAP_RATIO 指定用于应用程序组共享堆的应用程序控制共享内存集中的内存百分比APP_CTL_HEAP_SZ 指定分配给应用程序的共享内存区域的平均大小SHEAPTHRES_SHR 指定对可一次用于排序的数据库共享内存总量的硬限制SORTHEAP 定义要用于专用排序的专用内存页的最大数目或要用于共享排序的共享内存页的最大数目STMTHEAP 语句堆在 SQL 语句的编译期间用作 SQL 编译器的工作空间,此参数指定此工作空间的大小APPLHEAPSZ 指定代理进程或子代理进程使用的专用内存页数目PCKCACHESZ 指定用于高速缓存数据库上的静态和动态SQL 语句的内存的大小STAT_HEAP_SZ 参数指示使用 RUNSTATS 命令收集统计信息时所用的堆的最大大小。
1、数据操作语言(DML:select,delete,insert,update)<1>查询数据库目录:db2 list db directory<2>查询数据库中表db2 list tables 当前用户db2 list tables for all 所有表db2 list tables for schema schemaname 指定模式的表<3>显示表结构db2 describe table tablename<4>插入数据db2 insert into tablename(字段名,字段名...) values (与字段名一一对应的值)db2 insert into tablename1(字段1,字段2,字段3...)select 字段1,字段2,字段3...from tablename2 + 查询条件<5>更改表或视图数据db2 update tablename/viewname set 字段名1='',字段2='',...+查询条件<6>删除数据db2 delete from tablename where + 条件<7>导入数据db2 "import from E:\name.txt of del insert into tableName" db2 "import from E:\name.ixf of ixf commitcount 5000 insert /create/replace into tableName"db2 "load client from D:\xx.txt of del insert/replace into tabName"(不需要写日志,但插入前表必须存在;不能create table)db2 "load client from D:\xx.txt of del restart/terminate into tabName" 当导入数据出现问题被强行中断时,此表会被加锁,通过此命令可以解锁<8>导出数据db2 "export to E:\name.txt of del select * from tableName" db2 "export to E:\name.txt of del MODIFIED BY NOCHARDEL select * from tableName"(导出不带分号的数据)导出表结构和数据db2 "export to E:\name.ixf of ixf MODIFIED BY NOCHARDEL select * from tableName"db2 "export to E:\name.ixf of ixf MODIFIED BY NOCHARDEL select * from tableName fetch first (取数+UNM) rows only"(取固定条数) 导出表结构db2look -d dbName -e -t tableName -o D:\xxx.sql(path) -i userName -w passworddb2look -d dbName -z tabSchema -e -c -i userName -w password -o + 路径名导出存储过程结构db2 "export to xxx.sql of del select text fromsyscat.procedures where procname='大写存储过程名'"<9>查询表状态db2 load query table + tableName<10>查询当前表数据量(数据入库时)db2 select count(1) from tab with ur<11>修改当前表名、模式名db2 rename table tab1 to tab22、数据定义语言(DDL:create,alter)<1>创建或删除实例db2icrt instance_name/db2idrop -f instance_namelinux:db2icrt -u user_id instance_name<2>创建视图、表、模式db2 create view/table/schema创建指定用户的模式db2 create schema schName AUTHORIZATION userNamedb2 create schema AUTHORIZATION userName(没有指定模式名时,模式名隐含为用户名userName)定义含有缺省值的表db2 create table tableName(column1 数据类型,column2 数据类型default '缺省值')基于已存在的表db2 create table clone_tablename like tablenamedb2 create table clone_tablename as (select * from tablename) definition only创建物化查询表(MQT)create table new_table_name as (select * from table_name) data initially deferred refresh deferred;refresh table new_table_name;注意:物化表类似一个查询,没有真正形成表,类型显示为Query。
db2数据库基础知识1,db2数据库特点(1)具有很好的并⾏性(DB2把数据库管理扩充到了并⾏的,多节点的环境;数据库分区是数据库的⼀部分,包含⾃⼰的数据,索引,配置⽂件和事务⽇志;数据库分区有时被称为节点)。
(2)获得最⾼认证级别的ISO标准认证。
(3)性能较⾼,适⽤于数据仓库和在线事物处理。
(4)跨平台,多层结构,⽀持ODBC,JDBC等客户。
(5)操作简单,同时提供GUI和命令⾏,在windowsNT和unix下的操作相同。
(6)在巨型企业得到⼴泛的运⽤,向下兼容性好,风险⼩。
(7)能够在所有主流平台上运⾏,最适于海量数据处理。
2,db2数据库的特性(1)完全Web使能的:可以利⽤HTTP来发送询问给服务器。
(2)⾼度可缩放和可靠:⾼负荷时可利⽤多处理器和⼤内存,可以跨服务器地分布数据库和数据负荷;能够以最⼩的数据丢失快速地恢复,提供多种备份策略。
3,实现储存过程存储过程是存储在数据库中的⼀个预编译对象。
这意味着过程是预编译的,可提供给各种应⽤执⾏。
发送查询到服务器、分析和编译过程再不需要花费时间。
(1)特点:存储过程是SQL语句和控制流语句的⼀个集合或批量,它在⼀个名称下存储,按独⽴单元⽅式执⾏。
它能帮助提⾼查询的性能。
(2)好处:提⾼性能(应⽤不必重复地编译此过程)减轻⽹络拥塞(为进⾏处理,应⽤不需要向服务器提交多个SQL语句)⼀致性较好(由于过程作为单⼀控制点,在过程中定义的编码逻辑和SQL语句在所有应⽤中被⼀致地实现)改善安全机制(⽤户可以被授予许可权来执⾏存储过程,尽管他们并不拥有这个过程)(3)执⾏存储过程语句:call proc_name(param,…)(4)RETURN关键字:允许存储过程把整型值返回给调⽤者。
如果没有指定值,那么存储过程返回缺省值0或1,这依赖于存储过程的成功执⾏与否。
RETURN value(5)嵌套过程:可以执⾏或调⽤来⾃另⼀个过程的过程。
4,触发器触发器:⼀个触发器是由SQL语句集组成的代码块,在响应某些动作时激活该语句集。
DB2学习总结(1)——DB2数据库基础⼊门DB2的特性完全Web使能的:可以利⽤HTTP来发送询问给服务器。
⾼度可缩放和可靠:⾼负荷时可利⽤多处理器和⼤内存,可以跨服务器地分布数据库和数据负荷;能够以最⼩的数据丢失快速地恢复,提供多种备份策略。
DB2数据库启停启动数据库:db2start停⽌数据库:db2stop检查存在的数据库LIST DATABASE DIRECTORY数据库连接、断开CONNECT TO databasenameCONNECT RESET创建、删除数据库CREATE DB databasename注:如果已经连着⼀个数据库的话,就创建不了数据库,会报“应⽤程序已经与⼀个数据库相连”的错DROP DB databasename第⼆节表数据类型可分为数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、⼆进制字符串型(binary string)或⽇期时间型(datetime)。
还有⼀种叫做DATALINK的特殊数据类型。
DATALINK值包含了对存储在数据库以外的⽂件的逻辑引⽤。
数值型数据类型包括:⼩整型,SMALLINT:两字节整数,精度为5位。
范围从-32,768到32,767。
⼤整型,INTEGER或INT:四字节整数,精度为10位。
范围从-2,147,483,648到2,147,483,647。
巨整型,BIGINT:⼋字节整数,精度为19位。
范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
⼩数型,DECIMAL(p,s)、DEC(p,s)、NUMBERIC(p,s)或NUM(p,s):⼩数型的值是⼀种压缩⼗进制数,它有⼀个隐含的⼩数点。
压缩⼗进制数将以⼆-⼗进制编码(binary-coded decimal,BCD)记数法的变体来存储。
⼩数点的位置取决于数字的精度(p)和⼩数位(s)。
(转)物化查询表简介物化查询表(MQT)的定义是以⼀次查询的结果为基础的。
MQT 可以显著提⾼查询的性能。
本⽂将介绍 MQT、总结表(summary)和staging 表,并通过⼀些实⽤的例⼦展⽰如何创建和使⽤物化查询表。
物化查询表(MQT)是⼀种以⼀次查询的结果为基础定义的表。
包含在物化查询表中的数据来⾃定义物化查询表时所基于的⼀个或多个表。
⽽总结表(也称⾃动总结表,AST)对于 IBM® DB2® Universal Database™(UDB)for Linux、 UNIX® 和 Windows®(DB2 UDB)的⽤户来说应该感到⽐较熟悉,它们可以看作是特殊的 MQT。
fullselect 是总结表定义的⼀部分,它包含⼀个 GROUP BY ⼦句,该⼦句总结fullselect 中所引⽤表中的数据。
您可以将 MQT 看作⼀种物化的视图。
视图和 MQT 都是基于⼀个查询来定义的。
每当视图被引⽤时,视图所基于的查询便会运⾏。
但是,MQT 实际上则是将查询结果保存为数据,您可以使⽤ MQT 中的这些数据,⽽不是使⽤底层表中的数据。
物化查询表可以显著提⾼查询的性能,尤其是提⾼复杂查询的性能。
如果优化器确定查询或查询的⼀部分可以⽤⼀个 MQT 来解决,那么就会重写查询,以便利⽤ MQT。
MQT 可以在创建表时定义,或者定义为系统维护的 MQT,或者定义为⽤户维护的 MQT。
下⾯的⼏个⼩节将介绍这两种类型的 MQT,另外再介绍总结表和 staging 表。
后⾯的例⼦要求连接到 SAMPLE 数据库。
如果您系统上还没有创建 SAMPLE 数据库,那么可以通过在命令⾏提⽰符下输⼊ db2sampl 命令来创建这个数据库。
系统维护的 MQT这种物化查询表中的数据是由系统维护的。
当创建这种类型的 MQT 时,可以指定表数据是 REFRESH IMMEDIATE 还是 REFRESH DEFERRED。