您好,欢迎访问三七文档
DB2管理培训2010年6月2了解db2结构,特点学会db2常规管理维护技能目的3开关机顺序安全性管理存储管理软件管理网络管理主要内容4进程管理任务调度性能监控ha简介主要内容5DatabaseglobalmemoryBufferpoolExtendedMemoryDBHEAP(LOGBUF,CATALOGCACHE_SZ)UTILITYHEAP(BACKUP,RESTOREBUFFER)PackageCacheLockListSortHeap6实例7实例相关的命令创建实例db2icrtdb2icrt-ufenced_user_IDinstance_nameinUNIX删除实例db2idrop–finstance_name列出实例db2ilist移植实例db2imigrinstance_name升级实例db2iupdtinstance_name8设置db2环境参数db2profileregistries操作系统的环境变量db2dbm配置参数db2db配置参数Db2环境参数控制着db2的操作和功能9Db2profileregistries可以设置不同的级别Instance/global/user/instancenode/instanceprofile使用db2set命令,可以显示,修改,删除db2set–all显示所有设置的db2set–lr显示所有可以设置的db2db配置参数10操作系统环境变量windowsSetparam=valueunixksh和bshExportparam=valueunixcshSetenvparam=value11实例和数据库参数读取Db2getdatabasemanagerconfigurationDb2getdatabaseconfigurationfordatabase_name设置Db2updatedbmcfgusingparamvalueDb2updatedbcfgfordb_nameusingparamvalue12连接到数据库服务器端配置设置db2profileregistry的参数DB2COMM,如:Db2setdb2comm=tcpip设置实例级参数Db2updatedbmcfgusingsvcename50000修改该参数,需要重起实例13连接到数据库客户端可供选择方式之一自动搜索有两种方法:known和search需要server端的管理服务器启动db2adminstart配置管理服务器updateadmincfgusingdiscoversearch配置实例updatedbmcfgusingdiscover_instenable配置数据库updatedbcfgfordb_nameusingdiscover_dbenable14连接到数据库客户端可供选择方式之二概要文件15连接到数据库客户端可供选择方式之三手工配置编目节点Catalogtcpipnodenode_nameremoteip地址Server50000编目数据库Catalogdbdb_nameasatnodenode_name16db2命令交互db2cmd命令行交互模式,可以直接输入Db2命令,操作系统命令前加!命令行模式,可以直接识别操作系统命令,db2命令前加db2执行脚本Db2–fmyfile.clp脚本中用--做注释17命令行可执行的命令18命令行选项和获得帮助命令行选项Db2listcommandoptions获得帮助Db2?Db2?CommandDb2?SqlnnnnDb2?db2nnnn19命令中心可以在控制中心调用图形化的命令行处理器,功能类似特殊的功能可以得到sql的执行计划可以将sql加到脚本中20控制中心配置功能,可以显示和修改实例和数据库参数备份、恢复、前滚数据库和表空间管理本地和远程数据库,可以创建/删除、显示、编目远程数据库和去掉编目管理存储。创建、修改、删除表空间。21字符集Createdatabasedb_nameusingcodesetGBKterritoryzh_CN22模式(schema)模式是一组数据库对象的集合,他提供了数据库对象的逻辑分类如果不指定模式名,则用当前用户名切换当前模式可以用setcurrentschemaxxx或setcurrentsqlidxxx23系统模式系统模式:SYSIBM基本的编目信息,不建议直接访问SYSCAT编目信息的只读视图,所有人具有查询权限,推荐的获取编目信息的途径SYSSTAT编目信息可更新视图,可以影响优化器SYSFUN用户定义函数24建表•创建新表:createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)•根据已有的表创建新表:A:createtabletab_newliketab_oldB:createtabletab_newasselectcol1,col2…fromtab_olddefinitiononly25表空间三种表空间常规表空间长表空间临时表空间两类表空间DMSSMS默认产生三个表空间:SYSCATSPACE,USERSPACE1,TEMPSPACE126数据库对象-视图•创建视图:createviewviewnameasselectstatement•删除视图:dropviewviewname注:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。27数据库对象-索引使用索引的主要原因有两条:•确保数据值的惟一性•提高SQL查询的性能使用索引时,能够按一种排列好的顺序更迅速地访问数据,从而避免了使用临时存储排序数据这一耗时的任务。•创建索引:create[unique]indexidxnameontabname(col….)•删除索引:dropindexidxname注:索引是不可更改的,想更改必须删除重新建。•索引的使用都是从WHERE中的条件得出的,•从谓词是否使用索引可以将谓词分为可索引谓词和不可索引谓词,•如下图,我们列出了索引谓词和不可索引谓词。28谓词类型可索引注释Col∝conY∝代表,=,=,=,,但是不是可索引的。Colbetweencon1andcon2Y在匹配系列中必须是最后的。ColinlistY仅对一个匹配列ColisnullYCollike‘xyz%’Y模糊匹配%在后面。Collike‘%xyz’N模糊匹配%在前面。Col1∝Col2NCol1和col2来自同一个表Col∝ExpressionN例如:c1(c1+1)/2Pred1andPred2YPred1和Pred2都是可索引的,指相同索引的列Pred1orPred2N除了(c1=aorc1=b)外,他可以被认为是c1in(a,b)NotPred1N或者任何的等价形式:Notbetween,Notin,Notlike等等。可索引谓词29数据约束数据库中数据的完整性或有效性极其重要。确保插入数据库的数据的有效性非常困难,DB2提供了定义某些可并入数据库的基于规则的约束或检查的能力。在DB2中,可使用以下检查来最小化将错误数据插入表中的风险:•可检查一行中的一段,看它们是否符合所关联列的数据类型和长度。例如,“Geoff”值不匹配数据类型为INTEGER的列,因而带有该值的行会被拒绝,以这种方式来确保数据库中数据的有效性。•若表上定义了主键约束,表中的各行必须在一列或共同构成主键的多个列中具有惟一值。若插入的行中存在与现有键相同的键,则新行将被拒绝。•若表上已定义了惟一约束,表中的各行必须遵循此约束,即具有惟一值或构成惟一键的值组合。•若已定义了外键约束,表中各行的外键列或多个列必须具有与父表中一行的主键相匹配的值。在某些情况下,若一列或多个列定义为外键的一部分,而这个外键可为空,则空值也是可接受的。•若列上已定义了检查约束,各行必须遵循此约束。例如,EMPLOYEE表的SALARY列上的检查约束可能会阻止应用程序或用户插入工资低于0的新员工记录或行。插入表的任何salary值小于0的行都会被拒绝,从而最小化将错误数据插入表中的风险。30检查约束31数据库锁32数据库事务33数据类型34NULL值尽可能设置为notnull,可以通过default的方式来解决insertnull的情况查询isnull35Identity列是一个数字型的字段,当新行插入时,db2自动产生一个唯一的数字一个表中只能有一个列被定义有该属性可以定义成always或default的方式Always方式,只能有db2产生,不允许应用提供值Default方式,可以由应用提供值,不能保证唯一性36简单查询select[distinct]column-listfromtable-listwheregroupby[having]orderby[ase/ease]37内连接38外连接表的分类保留行表左外连接中左边的表。右外连接中右边的表。全外连接中全部的表。替换NULL的表左外连接中右边的表右外连接中左边的表全外连接中全部的表39一个简单的左外连接40一个简单的右外连接41全外连接42子查询子查询可以由内连接和外连接代替,推荐做法in、exist可以由内连接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=d.deptno;selectprojno,projnamefromdepartmentwheredeptnoin(selectdeptnofromproject);notin、notexist可以由外连接代替selectprojno,projname,d.deptno,deptnamefromdepartmentdleftouterjoinprojectponp.deptno=d.deptnowherep.projnameisnull;selectprojno,projnamefromdepartmentwheredeptnonotin(selectdeptnofromproject);43Db2中的函数内建函数列函数:avg,sum,count,操作函数:+类型转换函数decimal其他用户自定义函数UDF441、类型转化函数:•转化为数字类型的:decimal,double,Integer,smallint,realHex(arg):转化为参数的16进制表示。•转化为字符串类型的:char,varcharDigits(arg):返回arg的字符串表示法,arg必须为decimal。•转化为日期时间的:date,time,timestamp2、时间日期:year,quarter,month,week,day,hour,minute,seconddayofyear(arg):返回arg在年内的天值Dayofweek(arg):返回arg在周内的天值days(arg):返回日期的整数表示法,从0001-01-01来的天数。midnight_seconds(arg):午夜和arg之间的秒数。Monthname(arg):返回arg的月份名。Dayname(arg):返回arg的星期。常用函数介绍45烟草产品事业部培训中心3、字符串函数:length,lcase,ucase,ltrim,rtrimCoalesce(arg1,arg2….):返回参数集中第一个非null参数。Concat(arg1,arg2):连接两个字符串arg1和arg2。insert(arg1,pos,size,arg2):返回一个,将arg1从pos处删除size个字符,将arg2插入该位置。left(arg,length):返回arg最左边的length个字符串。locate(arg1,arg2,pos):在arg2中查找arg1第一次出现的位置,指定pos,则从arg2的pos处开始
本文标题:db2基础操作手册
链接地址:https://www.777doc.com/doc-6892137 .html