DB2入门培训讲义

上传人:hy****d 文档编号:243385844 上传时间:2024-09-22 格式:PPT 页数:48 大小:213.50KB
返回 下载 相关 举报
DB2入门培训讲义_第1页
第1页 / 共48页
DB2入门培训讲义_第2页
第2页 / 共48页
DB2入门培训讲义_第3页
第3页 / 共48页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,DB2 基本知识介绍,1,认识,DB2,认识,DB2,2,DB2的版本 DB2 UDB,V7,、V8、V9,PE (Personal Edition),EE (Enterprise Edition),EEE (Enterprise - Extended Edition ),其他,IBM,主机平台如,AS/400,上的,DB2,与,DB2 UDB,有很大不同,老版本的主机,DB2,甚至不支持,SQL。,3,DB2在招行的应用情况,AS/400 DB2,RS/6000 UDB V5 V7 V8 V9,数据仓库,开发用:,DB2 UDB PE V8 For Windows XP/2K,4,DB2 UDB vs SQL Server /Sybase,SQL Server/Sybase,是个黑,盒子,DB2,是个相对透明的黑盒子,DB2,所,支持的,SQL,语句更完整,DB2,对数据仓库所做的扩展支持非常好,如多分区,,MDC,技术等。,DB2,具有平台优势和体系优势,对高端应用有更好的支持。,5,DB2 UDB的Create Table语句,6,SQL Server 的Create Table,CREATE TABLE,database_name,.,owner,.,|,owner,.,table_name,(,|,column_name,AS,computed_column_expression,| ,.,n,)ON | DEFAULT TEXTIMAGE_ON | DEFAULT ,7,Windows,下的安装、使用,仅安装客户端,DB2 Connect,安装服务器端,DB2 PE Server + DB2 Connect,RS/6000,下的安装、使用,如,RS/6000,上已安装,DB2,,则只要在登录用户,的,profile,中引用,db2inst1,的,profile,或手工添加相应环境变量,即可使用,DB2,,前提是,DBA,已授权此用户足够权限。,DB2安装、使用,相关的下载及文档URL:,8,配置助手,控制中心,命令行工具,命令窗口,、命令行处理器,信息中心,开发中心,健康中心,使用,DB2工具 - windows,9,实例,Instance,数据库,Database,容器,Container,表空间,Tablespace,扩展区,Extend,表,Table,页,Page,DB2 UDB中一些基本概念,10,View,SQL,存储过程,触发器,事务处理,索引,DB2 UDB中的标准SQL设施,11,模式是一个标识符,如用户,ID,,它帮助分组表和其他数据库对象。模式可以归个人拥有,拥有者可以控制对数据以及其中的对象的存取。 模式也可以是数据库中的对象。它可以在创建模式中的第一个对象时 自动创建。这样的对象可以是任何可以由模式名限定的对象,如表、索引、视图、程序包、单值类型、函数或触发器。若要自动创建模式,则您必须 拥有,IMPLICIT_SCHEMA,权限,也可以隐式地创建模式。 模式名用作两部分对象名的第一部分。创建一个对象时,可将其分配给 特定模式。若不指定模式,则它被分配给缺省模式,缺省模式通常是创建该对象的人员的用户,ID。,名称的第二部分是对象名。例如,名为,Smith,的用户可以 有一个名为,SMITH.PAYROLL,的表。,简单的比喻:假如,DB,等同于公司,模式相当一个部门名称。,DB2 数据库中的模式名 - SCHEMA,12,DB2 专用存储器,CURRENT DATE,USER,CURRENT TIMESTAMP,CURRENT TIME,CURRENT TIMEZONE,CURRENT SERVER,相当于,SQL Server,中的全局变量,13,常用的,DB2,指令,CREATE / DROP,LIST / DESCRIBE,FORCE,GET / UPDATE,IMPORT / EXPORT / LOAD,BIND / REBIND,REORG / RUNSTATS,14,常用的,DB2,系统指令,db2admin,db2advi,db2batch,db2cc / db2cmd,db2cfexp / db2cfimp,db2start / db2stop,15,数据库分区与表空间,数据库分区与表空间,16,数据库分区,一个数据库可以建立一个或多个分区(即节点),数据可以根据表所定义的分区键通过,HASH,算法存放于各个分区中。,作为表格的分区键,建议使用高基数字段(拥有多个不同的值),这样可以使数据被均匀的分布,可以利用节点组中所有的节点资源来执行操作。也可以指定多个字段同时作为分区键来满足要求。,二、数据库分区与表空间,17,表空间的定义,DB2,是以表空间来定义数据库中存放数据的实体磁盘空间。,一个数据库中至少需要具备,3,个表空间,分别是:,SYSCATSPACE:,存放数据库中的所有系统表,TEMPSPACE1:,存放,DB2,在执行,SQL,指令时所产生的临时数据表,USERSPACE1:,存放用户所建立的表,二、数据库分区与表空间,18,表空间的分类,根据存储的数据种类区分,规则表空间:存放系统表格过用户建立的表格的数据与索引。,临时表空间:存放在执行,SQL,指令时产生的临时数据。,大型表空间:存放,LONG VARCHAR,与,LOB,类型的字段数据。,根据管理方式区分,数据库管理空间:,DMS,,是由,DB2,直接格式化与管理的空间,系统管理空间:,SMS,,是由,DB2,通过操作系统所管理的空间,二、数据库分区与表空间,19,数据库中的对象,三、数据库中的对象,20,对象名称:,DB2,的所有对象,都有其对象名称,,,DB2,会将他全部转成大写,但如果把对象名称用双引号括起来,则就区分大小写。带引号的对象名称也可以包含,SQL,的保留字,但并不提倡。,三、数据库中的对象,21,表格,注意指定表空间和分区键,可增加字段,新增或删除限制,可更改,VARCHAR,类型的长度,可用,LIKE,定义同样的一张表,但除了字段类型和默认值外其他属性不继承,索引,视图,只读视图,/,可更新视图,别名,数据库中的对象,22,限制,NOT NULL Constraints,Column Defaults,Unique Constraints,Check Constraints,Primary Key Constraints,Foreign Key Constraints,触发器,前触发器,/,后触发器,实例化查询表(,MQT,):,REFRESH DEFERRED,REFRESH IMMEDIATE,三、数据库中的对象,23,数据的锁,四、数据的锁,24,LOCK TABLE,指令,LOCK TABLE DB2.TABLENAME IN SHARE MODE,LOCK TABLE DB2.TABLENAME IN EXCLUSIVE MODE,锁定的对象,数据库,/,表空间,/,表格,/,记录,锁定的,模式(,强度,),写锁定,包括,X、W、NW、Z,等,读锁定,包括,S、NS、U,等,四、数据的锁,25,锁定等待,LOCK WAIT,锁定超时,LOCKTIMEOUT,锁定升级,LOCKLIST:,定义数据库中预留多少空间存放锁定信息,MAXLOCKS:,定义每个事务可以使用多少,LOCKLIST,内存区,四、数据的锁,26,数据库系统效能,五、数据库系统效能,27,DB2 Explain,工具,db2expln,执行该语句可以查看,Package,中的,SQL,指令执行计划。这是从,unix,或是,doc,窗口执行的指令,如下:,Db2expln -d,dbname,-c,vicky,-p cursor -o,expln,.out,dynexpln,显示,SQL,指令的执行计划,如:,dynexpln,-d sample -s “,sql,指令,”-,o,expln,.out,Dynexpln,-d sample -f,sql,文件,-,o,expln,.out,Visual Explain,从控制中心或命令行中心执行的,explain,sql,五、数据库系统效能,28,几,张关键的系统表,SYSCAT.TABLES,SYSCAT.COLUMNS,SYSCAT.COLDIST,SYSCAT.INDEXES,SYSCAT.TABLESPACES,RUNSTATS,索引,建立索引的方法,where,条件的索引的顺序,索引的副作用,五、数据库系统效能,29,五、数据库系统效能,REORG,MQT(,物化视图),DATA INITIALLY DEFERRED,REFRESH DEFERRED,REFRESH IMMEDIATE,ENABLE/DISABLE QUERY OPTIMIZATION,CREATE TABLE sch.mqt1 AS,( select name, location, salary from sch.tab1 a, sch.tab2,where a.dept = b.,deptnumb,and a.salary 20000,) DATA INITIALLY DEFERRED REFRESH DEFERRED ;,REFRESH TABLE sch.mqt1 ;,30,程序包与,BIND,嵌入,式,SQL,CLI,JDBC,SQLJ,DB2客户端程序开发,31,实际应用,六、实际应用,32,SQL,存储过程,CREATE PROCEDURE,DROP PROCEDURE,IN/OUT,参数,调用,CALL,错误陷阱,循环语句,COMMIT WORK,BEGIN/END,六、实际应用,33,SQL,存储过程,C,存储过程/函数,Java,存储过程,其他:,COBOL、OLE,存储过程,34,Store Procedure Builder,DW:,通过一个,C,函数写成的,Function,向调试文件写日志,存储过程的调试方法 SQL存储过程的调试,35,SQLCODE,SQLSTATE,为什么要,有,Condition Handling?,固定写法:,Declare SQLSTATE CHAR(5) DEFAULT 00000;,Declare SQLCODE INT DEFAULT 0;,必须要这么写才能得到,SQL Statement,执行情况,且只能写在存储过程的开头,(,Outermost Scope),为什么? 主机风格,Condition Handling,Declare continue handler for,sqlstate,42774,begin,end,SQL存储过程的异常处理方法 Condition Handling,36,Create,procdure xx,.,xx,(in,xx, out,xx,),specific specific-name,Language SQL begin,xxx,end,DB2,允许定义同名但参数不同的存储过程,因此在删除存储过程时使用,specific-name,删除。,假如调用存储过程的参数错误,,,db2,只说找不到对应的存储过程,而不会说参数错误。,这一点类似面向对象的参数重载。,DB2 SQL存储过程的specific specific-name,37,静态,SQL,静态,SQL (static SQL),语句嵌入到应用程序中,在应用运行之前,所有的嵌入静态,SQL,语句必须经过预编译并被绑定到,程序,包(,package),中。,DB2,编译这些语句时,将基于编译和绑定这些语句时的系统表中的统计信息和数据库参数为每一个静态,SQL,语句生成一个访问计划,(,access plan)。,这些访问计划在运行时永远被使用;这些访问计划不会改变,除非程序包被重新绑定。,EXEC SQL SELECT d.,deptname, count(e.,empno,),avg,(e.salary) FROM department d left outer join employee e on (e.,workdept,= d.,deptno,) WHERE e.salary =,:salary_baseline,OR e.salary IS NULL GROUP BY d.,deptname,;,六、实际应用,38,动态,SQL,动态,SQL (dynamic SQL),语句在程序运行时被,prepare,和执行。,DB2,运行动态,SQL,语句时,将基于当前的系统表中的统计信息和数据库参数为该语句生成一个访问计划,(,access plan)。,该访问计划在运行时可能会不断变化。,stmt = “select,empno, salary from employee where,empno,=?”;,EXEC SQL PREPARE s1 FROM :stmt; EXEC SQL EXECUTE s1;,六、实际应用,39,六、实际应用,MERGE SQL UPSERT,对目标表进行更新插入的过程,当存在满足条件的记录时就更新目标表,当不存在满足条件的记录时就向目标表插入新记录。,MERGE INTO account AS a,USING (SELECT id, sum(balance) sum_balance from transaction,GROUP BY id) AS t,ON a.id = t.id,WHEN MATCHED THEN,UPDATE SET,balance = a.balance + t.sum_balance,WHEN NOT MATCHED THEN,INSERT (id, balance) = (t.id, t.sum_balance);,40,六、实际应用,权限设置,过程,/,函数,GRANT EXECUTE ON PROCEDURE/FUNCTIOIN PROCNAME/FUNCNAME TO USER/GROUP USERNAME/GROUPNAME ;,表,GRANT ALL/DELETE/UPDATE/SELECT/INSERT ON TABLE TABNAME TO USER/GROUP USERNAME/GROUPNAME ;,SEQUENCE,GRANT USAGE ON SEQUENCE SEQNAME TO USER/GROUP USERNAME/GROUPNAME ;,系统权限查看表,SYSCAT.TABAUTH, SYSCAT.TBSPACEAUTH, SYSCAT.SCHEMAAUTH,41,DB2 UDB的数据类型,42,DB2 UDB的数据类型,日期运算:如何求出每月末的日期?,43,DB2 UDB的数据类型,日期运算:,values(date(2006-01-31)+1 month),values(date(2006-01-31)+1 year),数值运算,decimal,的小数位,Null,值,任何有,Null,参与的表达式,结果都是,Null,特别注意打印中间结果或调试语句时,44,存储过程-临时表的使用,必须要先定义系统临时表空间或用户临时表空间才能使用临时表,定义临时表不能使用模式名,其模式名固定为,session。,使用完成后最好把临时表,Drop,掉。,45,Get diagnostics 使用说明,SQL Server,取到,SQL,语句所影响的行数的方式?(,rowcount,),DB2,取到,SQL,语句所影响的行数的方式 ,Get diagnostics,GET DIAGNOSTICS v_,Iupdate,_,Cnt,=ROW_COUNT;,46,完整的存储,过程实例讲解,47,Question ?,48,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!