已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DB2基本知识介绍 认识DB2 V7 V8 V9PE PersonalEdition EE EnterpriseEdition EEE Enterprise ExtendedEdition 其他IBM主机平台如AS 400上的DB2与DB2UDB有很大不同 老版本的主机DB2甚至不支持SQL AS 400DB2RS 6000 UDBV5V7V8V9数据仓库开发用 DB2UDBPEV8ForWindowsXP 2K SQLServer Sybase是个黑盒子DB2是个相对透明的黑盒子DB2所支持的SQL语句更完整DB2对数据仓库所做的扩展支持非常好 如多分区 MDC技术等 DB2具有平台优势和体系优势 对高端应用有更好的支持 CREATETABLE database name owner owner table name column nameAScomputed column expression n ON filegroup DEFAULT TEXTIMAGE ON filegroup DEFAULT Windows下的安装 使用仅安装客户端DB2Connect安装服务器端DB2PEServer DB2ConnectRS 6000下的安装 使用如RS 6000上已安装DB2 则只要在登录用户的profile中引用db2inst1的profile或手工添加相应环境变量 即可使用DB2 前提是DBA已授权此用户足够权限 相关的下载及文档URL 配置助手控制中心命令行工具 命令窗口 命令行处理器信息中心开发中心健康中心 实例Instance数据库Database容器Container表空间Tablespace扩展区Extend表Table页Page ViewSQL存储过程触发器事务处理索引 模式是一个标识符 如用户ID 它帮助分组表和其他数据库对象 模式可以归个人拥有 拥有者可以控制对数据以及其中的对象的存取 模式也可以是数据库中的对象 它可以在创建模式中的第一个对象时自动创建 这样的对象可以是任何可以由模式名限定的对象 如表 索引 视图 程序包 单值类型 函数或触发器 若要自动创建模式 则您必须拥有IMPLICIT SCHEMA权限 也可以隐式地创建模式 模式名用作两部分对象名的第一部分 创建一个对象时 可将其分配给特定模式 若不指定模式 则它被分配给缺省模式 缺省模式通常是创建该对象的人员的用户ID 名称的第二部分是对象名 例如 名为Smith的用户可以有一个名为SMITH PAYROLL的表 简单的比喻 假如DB等同于公司 模式相当一个部门名称 CURRENTDATEUSERCURRENTTIMESTAMPCURRENTTIMECURRENTTIMEZONECURRENTSERVER相当于SQLServer中的全局变量 常用的DB2指令CREATE DROPLIST DESCRIBEFORCEGET UPDATEIMPORT EXPORT LOADBIND REBINDREORG RUNSTATS 常用的DB2系统指令db2admindb2advidb2batchdb2cc db2cmddb2cfexp db2cfimpdb2start db2stop 数据库分区与表空间 数据库分区一个数据库可以建立一个或多个分区 即节点 数据可以根据表所定义的分区键通过HASH算法存放于各个分区中 作为表格的分区键 建议使用高基数字段 拥有多个不同的值 这样可以使数据被均匀的分布 可以利用节点组中所有的节点资源来执行操作 也可以指定多个字段同时作为分区键来满足要求 表空间的定义DB2是以表空间来定义数据库中存放数据的实体磁盘空间 一个数据库中至少需要具备3个表空间 分别是 SYSCATSPACE 存放数据库中的所有系统表TEMPSPACE1 存放DB2在执行SQL指令时所产生的临时数据表USERSPACE1 存放用户所建立的表 表空间的分类根据存储的数据种类区分规则表空间 存放系统表格过用户建立的表格的数据与索引 临时表空间 存放在执行SQL指令时产生的临时数据 大型表空间 存放LONGVARCHAR与LOB类型的字段数据 根据管理方式区分数据库管理空间 DMS 是由DB2直接格式化与管理的空间系统管理空间 SMS 是由DB2通过操作系统所管理的空间 数据库中的对象 对象名称 DB2的所有对象 都有其对象名称 DB2会将他全部转成大写 但如果把对象名称用双引号括起来 则就区分大小写 带引号的对象名称也可以包含SQL的保留字 但并不提倡 表格注意指定表空间和分区键可增加字段 新增或删除限制可更改VARCHAR类型的长度可用LIKE定义同样的一张表 但除了字段类型和默认值外其他属性不继承索引视图只读视图 可更新视图别名 限制NOTNULLConstraintsColumnDefaultsUniqueConstraintsCheckConstraintsPrimaryKeyConstraintsForeignKeyConstraints触发器前触发器 后触发器实例化查询表 MQT REFRESHDEFERREDREFRESHIMMEDIATE 数据的锁 LOCKTABLE指令LOCKTABLEDB2 TABLENAMEINSHAREMODELOCKTABLEDB2 TABLENAMEINEXCLUSIVEMODE锁定的对象数据库 表空间 表格 记录锁定的模式 强度 写锁定 包括X W NW Z等读锁定 包括S NS U等 锁定等待LOCKWAIT锁定超时LOCKTIMEOUT锁定升级LOCKLIST 定义数据库中预留多少空间存放锁定信息MAXLOCKS 定义每个事务可以使用多少LOCKLIST内存区 数据库系统效能 DB2Explain工具db2expln执行该语句可以查看Package中的SQL指令执行计划 这是从unix或是doc窗口执行的指令 如下 Db2expln ddbname cvicky pcursor oexpln outdynexpln显示SQL指令的执行计划 如 dynexpln dsample s sql指令 oexpln outDynexpln dsample fsql文件 oexpln outVisualExplain从控制中心或命令行中心执行的explainsql 几张关键的系统表SYSCAT TABLESSYSCAT COLUMNSSYSCAT COLDISTSYSCAT INDEXESSYSCAT TABLESPACESRUNSTATS索引建立索引的方法where条件的索引的顺序索引的副作用 REORGMQT 物化视图 DATAINITIALLYDEFERREDREFRESHDEFERREDREFRESHIMMEDIATEENABLE DISABLEQUERYOPTIMIZATIONCREATETABLEsch mqt1AS selectname location salaryfromsch tab1a sch tab2wherea dept b deptnumbanda salary 20000 DATAINITIALLYDEFERREDREFRESHDEFERRED REFRESHTABLEsch mqt1 程序包与BIND嵌入式SQLCLIJDBCSQLJ DB2客户端程序开发 实际应用 SQL存储过程CREATEPROCEDUREDROPPROCEDUREIN OUT参数调用CALL错误陷阱循环语句COMMITWORKBEGIN END SQL存储过程C存储过程 函数Java存储过程其他 COBOL OLE StoreProcedureBuilderDW 通过一个C函数写成的Function向调试文件写日志 SQLCODE SQLSTATE为什么要有ConditionHandling 固定写法 DeclareSQLSTATECHAR 5 DEFAULT 00000 DeclareSQLCODEINTDEFAULT0 必须要这么写才能得到SQLStatement执行情况 且只能写在存储过程的开头 OutermostScope 为什么 主机风格ConditionHandlingDeclarecontinuehandlerforsqlstate 42774 beginend Createprocdurexx xx inxx outxx specificspecific nameLanguageSQLbeginxxxendDB2允许定义同名但参数不同的存储过程 因此在删除存储过程时使用specific name删除 假如调用存储过程的参数错误 db2只说找不到对应的存储过程 而不会说参数错误 这一点类似面向对象的参数重载 静态SQL静态SQL staticSQL 语句嵌入到应用程序中 在应用运行之前 所有的嵌入静态SQL语句必须经过预编译并被绑定到程序包 package 中 DB2编译这些语句时 将基于编译和绑定这些语句时的系统表中的统计信息和数据库参数为每一个静态SQL语句生成一个访问计划 accessplan 这些访问计划在运行时永远被使用 这些访问计划不会改变 除非程序包被重新绑定 EXECSQLSELECTd deptname count e empno avg e salary FROMdepartmentdleftouterjoinemployeeeon e workdept d deptno WHEREe salary salary baselineORe salaryISNULLGROUPBYd deptname 动态SQL动态SQL dynamicSQL 语句在程序运行时被prepare和执行 DB2运行动态SQL语句时 将基于当前的系统表中的统计信息和数据库参数为该语句生成一个访问计划 accessplan 该访问计划在运行时可能会不断变化 stmt selectempno salaryfromemployeewhereempno EXECSQLPREPAREs1FROM stmt EXECSQLEXECUTEs1 MERGESQL UPSERT对目标表进行更新插入的过程 当存在满足条件的记录时就更新目标表 当不存在满足条件的记录时就向目标表插入新记录 MERGEINTOaccountASaUSING SELECTid sum balance sum balancefromtransactionGROUPBYid AStONa id t idWHENMATCHEDTHENUPDATESETbalance a balance t sum balanceWHENNOTMATCHEDTHENINSERT id balance t id t sum balance 权限设置过程 函数GRANTEXECUTEONPROCEDURE FUNCTIOINPROCNAME FUNCNAMETOUSER GROUPUSERNAME GROUPNAME 表GRANTALL DELETE UPDATE SELECT INSERTONTABLETABNAMETOUSER GROUPUSERNAME GROUPNAME SEQUENCEGRANTUSAGEONSEQUENCESEQNAMETOUSER GROUPUSERNAME GROUPNAME 系统权限查看表SYSCAT TABAUTH SYSCAT TBSPACEAUTH SYSCAT SCHEMAAUTH 日期运算 如何求出每月末的日期 日期运算 values date 2006 01 31 1month values date 2006 01 31 1year 数值运算d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年资深分析师人员招聘面试题库及参考答案
- 2025年期货从业资格考试商品期货分析专项突破真题及答案
- 2025年安全分析师人员招聘面试题库及参考答案
- 2025年水利水电工程师招聘面试题库及参考答案
- 榆林教师招聘题库及答案
- 2025年情感咨询师招聘面试题库及参考答案
- 2025年项目执行专员招聘面试题库及参考答案
- 2025年手机系统开发工程师招聘面试题库及参考答案
- 地震消防救援题库及答案
- 消防安全管理员题库及答案
- 仓储管理招聘题库及答案
- 采购玉米居间服务协议书
- 2025年下半年成都农商银行综合柜员岗社会招聘笔试备考试题及答案解析
- 供热生产调度工岗前工作意识考核试卷含答案
- 2025云南楚雄州元谋县国有资产投资管理有限公司及所属子公司合同制员工招聘13人笔试考试备考题库及答案解析
- Unit 5 Section A1a-Pronunciation 听说语音课公开课课件(2024新版)人教版八年级(上册)英语
- 沙盘模拟实训生产总监
- (完整版)循环水处理工试题库及答案(技师高级技师)
- 2025广东深圳市龙岗区国资国企系统面向全市集中选聘中层管理人员考试及考察笔试历年参考题库附带答案详解
- 统计法知识培训内容课件
- 知道智慧树网课《人工智能与科学之美(湘潭大学)》课后章节测试答案
评论
0/150
提交评论