DB2 命令实用技术

DB2 命令实用技术

 

--建表
create table aa

(
   op_time date,
   user_id bigint
   )
--指定表空间
 DATA CAPTURE NONE
  IN TBS02
  PARTITIONING KEY
   (PRODUCT_NO
   ) USING HASHING
  NOT LOGGED INITIALLY;
--建表索引
CREATE INDEX IND_000401458 ON aa (USER_ID);


1.db2里面的字符串连接可用"||"这个进行连接
 
2.如何快速删除大批量的数据表(test为数据库表)
最常用也是最多人用的语句:delete from test,但这种做法,效率比较低,花费时间太长,因为在删除数据时,要记数据库日志。
import from /dev/null of del replace into test//先清空,再导入数据(由于导入的文件为空,故相当于清空表数据),这种删除的速度较快
ALTER TABLE test activate NOT LOGGED initially WITH EMPTY TABLE ;删除表中的数据,不记日志,这种处理最快
 
3.导入、导出数据,支持的文件有ixf,del文件
db2 "export to fileName.del of del select * from tableName" //db2中把表中的数据导入到文件
db2 "import from fileName.del of del insert into tableName " //db2中把文件中的数据导入到表
 
4.DB2中检查表是否已存在
select * from "SYSIBM"."SYSTABLES" where lower(name) ='afa_maintransdtl'
 
5.处理db2锁表问题:
db2 “connect to afa”
db2 “get snapshot for locks on 实例名”
db2 “terminate”
然后查看相关信息,找到被锁定的表,执行以下语句:
db2 “force application(application handle) 注:application handle对应的是一个整数
 
6.在服务器上创建存储过程时:
应为存储过程指定特定的换行符,然后执行下面的语句:
db2 -td@ -vf fileName.sql (其中@为存储过程中指定的换行符)
 
7. 查看索引是否起作用
runstats on table afa.yj_jywtk with distribution and detailed indexes all;
db2 runstats on table dw.temp_bank_account with distribution and detailed indexes all

 

家在应用DB2的时候可能会遇到一些看似简单的问题,特别对新手来说,我在此简单的总结一下,发布给大家,希望对大家能有所帮助,同时也欢迎大家一起探讨,共同发展,共同进步!
  以下主要以DB27.X为基础的.以下的字符为小写.

  本文对DB2高手来说是不用看的.

  1.DB2产品的级别有那些?
  企业版的NTERPRISEEDITION
  工作组版WORKGROUPEDITION
  企业扩展版ENTERPRISEEXTENDEDEDITION
  个人版的PERSONALEDITION
  卫星版的SATELLITEEDITION
  微型版的EVERYPLACE
  
  2.可以连接到DB2数据库的产品有哪些?
  DB2客户端
  DB2CONNECT
  DB2DATAPROPAGATOR
  DB2NET.DATA
  DB2DATAJOINER
  DB2RELATIONALCONNECT
  WEBSPHERE应用服务器
  等
  
  3.DB2支持的通讯协议有哪些?
  TCP/IP
  NETBIOS
  APPG
  IPX/SPX
  NAMEPIPE
  等
  
  4.DB2客户端产品有哪些?
  DB2运行时间客户端DB2RUNTIMECLIENT
  DB2管理客户端DB2ADMINISTRATIONCLIENT
  DB2应用程序开发客户端DB2APPLICATIONDEVELOPMENTCLIENT
  DB2瘦客户端DB2THINCLIENT
  
  5.一个数据库是否可以安装在多个数据库服务器上?
  可以
  
  6.从哪个版本后存储过程可以用SQL语句来创建?
  7.1版后
  
  7.DB2提供哪些关系扩展器?
  文本扩展器TEXTEXTENDER
  图象扩展器IMAGEEXTENDER
  音频扩展器AUDIOEXTENDER
  视频扩展器VIDEOEXTENDER
  空间数据扩展器SPATIALEXTENDER
  XML扩展器XMLEXTENDER
  网络搜索扩展器NET.SEARCHEXTENDER
  
  8.WINDOWS和OS/2环境下的DB2安装目录结构?
  用SETUP.EXE来安装
  
  /SQLLIB安装的根目录,包括README文件
  /SQLLIB/ADSM包含ADSTAR分布式存储管理器文件
  /SQLLIB/BIN包含DB2工具的可执行文件
  /SQLLIB/BND包含DB2工具的绑定文件
  /SQLLIB/CC包含运行控制中心所需的文件
  /SQLLIB/CFG包含默认的系统配置文件
  /SQLLIB/CONV包含代码页转换表文件
  /SQLLIB/DB2默认的实例目录
  /SQLLIB/DB2DAS00缺省的DB2管理服务器目录
  /SQLLIB/DOC包含DB2联机手册
  /SQLLIB/FUNCTION默认的用户自定义函数目录
  /SQLLIB/FUNCTION/UNFENCED默认的非隔离用户自定义函授目录
  /SQLLIB/HELP联机帮助文件
  /SQLLIB/JAVADB2所需的JAVA类库
  JAVA12包含JDK1.2的支持程序
  /SQLLIB/MISC包含HTML搜索服务器文件
  /SQLLIB/MSG/PRIME包含信息文件
  /SQLLIB/QP包含QUERYPATROLLER的客户端文件
  /SQLLIB/SAMPLES包含样例程序和样例脚本
  /SQLLIB/SPMLOG包含DB2同步点管理器日志文件
  /SQLLIB/THNSETUP包含瘦客户端安装文件


9.UNIX和LINUX环境下的DB2安装目录结构?
  用DB2SETUP.EXE来安装
  安装的根目录下还将创建以下目录:
  
  README安装的根目录,包括README文件
  ADM包含系统管理工具文件
  ADSM包含ADSTAR分布式存储管理器文件
  BIN包含DB2工具的二进制可执行文件
  BND包含DB2工具的绑定文件
  CC包含运行控制中心所需的文件
  CFG包含默认的系统配置文件
  CONV包含代码页转换表文件
  DOC包含DB2联机手册
  FUNCTION默认的用户自定义函数目录
  FUNCTION/UNFENCED默认的非隔离用户自定义函授目录
  INSTALL包含安装程序
  INSTANCE包含实例脚本
  JAVADB2所需的JAVA类库
  LIBDB2库文件
  MAP包含DB2CONNECT使用的映射文件
  MISC包含HTML搜索服务器文件
  SAMPLES包含样例程序和样例脚本
  MSG/$L包含DB2信息文件

  10.AIX下用哪个命令来安装DB2?
  INSTALLP命令
  
  11.同一操作系统下可以安装多个DB2数据库?
  可以的
  
  12.如何停止实例?
  DB2STOP
  
  13.如何启动实例?
  DB2START
  
  14.如何修改注册项的值?
  DB2SET可以修改
  如:
  设定当前实例的一个参数
  DB2SETPARAMETER=VALUE
  
  设定一个全局级的参数
  DB2SETPARAMETER=VALUE-G(小写)
  
  查看能在配置文件注册表中设置的所有变量的列表
  DB2SET-LR(小写)
  
  15.如何在CLP执行操作系统的命令?
  在命令前加"!"作为前缀
  DB2=>!DIRC:/
  
  16.在CLP中命令过长怎么办?
  用"/"作为续行符号
  
  17.如何获得DB2的命令的语法相关信息?
  DB2?显示所有DB2命令
  DB2?COMMAND显示命令信息
  DB2?SQLnnnn显示这个SQLCODE的解释信息
  DB2?DB2nnnn显示这个DB2错误的解释信息
  
  18.如何查看当前CLP的设置?
  DB2=>LISTCOMANDOPTIONS
  
  19.如何更新当前CLP会话的特定项设置?
  DB2UPDATECOMMANDOPTIONSUSINGOPTIONS...
  
  20.COMMANDWINDOWS可以通过哪个命令调用?
  DB2CMD命令
  
  21.管理服务器的默认名为?
  UNIX下为DB2AS
  WINDOWS下为DB2DAS00


22.常用管理DB2服务器实例的命令?
  DB2ADMINSTART启动DB2管理服务器实例
  DB2ADMINSTOP停止DB2管理服务器实例
  DASICRTUNIX下创建DB2管理服务器实例
  DASIDROPUNIX下删除DB2管理服务器实例
  DB2ADMINCREATEWINDOWSOROS/2下创建DB2管理服务器实例
  DB2ADMINDROPWINDOWSOROS/2下删除DB2管理服务器实例
  DB2GETADMINCFG显示DB2管理服务器的配置参数
  DB2UPDATEADMINCFG修改DB2管理服务器的配置参数
  DB2RESETADMINCFG将DB2管理服务器的配置参数设为默认值
  
  23.DB2目录分为哪几种?
  系统数据库目录
  本地数据库目录
  节点目录
  DCS目录
  管理节点目录
  
  24.如何查看系统数据库目录?
  LISTDBDIRECTORY
  
  25.如何查看数据库服务器目录?
  LISTNODEDIRECTORY
  
  26.DB2实例的服务器的默认端口是?
  50000
  服务器名称为DB2CDB2
  
  27.DB2UDB服务器端的认证类型有?
  SERVER
  SERVER_ENCRYPT
  CLIENT
  DCE
  DCE_SERVER_ENCRYPT
  KERBEROS
  KRB_SERVER_ENCRYPT
  
  28.DB2客户端的认证类型有?
  SERVER
  SERVER_ENCRYPT
  DCS
  DCS_ENCRYPT
  CLIENT
  DCE
  
  29.DB2中有哪几种类型的权限?
  SYSADM系统管理权限
  SYSCTRL系统控制权限
  SYSMAINT系统维护权限
  DBADM数据库管理权限
  LOAD对表进行LOAD操作的权限
  
  30.不能通过GRANT授权的权限有哪种?
  SYSAM
  SYSCTRL
  SYSMAINT
  要更该述权限必须修改数据库管理器配置参数
  
  31.表的类型有哪些?
  永久表(基表)
  临时表(说明表)
  临时表(派生表)
  
  32.如何知道一个用户有多少表?
  SELECT*FROMSYSIBM.SYSTABLESWHERECREATOR='USER'
  
  33.如何知道用户下的函数?
  select*fromIWH.USERFUNCTION
  select*fromsysibm.SYSFUNCTIONS


34.如何知道用户下的VIEW数?
  select*fromsysibm.sysviewsWHERECREATOR='USER'
  
  35.如何知道当前DB2的版本?
  select*fromsysibm.sysvERSIONS
  
  36.如何知道用户下的TRIGGER数?
  select*fromsysibm.SYSTRIGGERSWHERESCHEMA='USER'
  
  37.如何知道TABLESPACE的状况?
  select*fromsysibm.SYSTABLESPACES
  
  38.如何知道SEQUENCE的状况?
  select*fromsysibm.SYSSEQUENCES
  
  39.如何知道SCHEMA的状况?
  select*fromsysibm.SYSSCHEMATA
  
  40.如何知道INDEX的状况?
  select*fromsysibm.SYSINDEXES
  
  41.如何知道表的字段的状况?
  select*fromsysibm.SYSCOLUMNSWHERETBNAME='AAAA'
  
  42.如何知道DB2的数据类型?
  select*fromsysibm.SYSDATATYPES
  
  43.如何知道BUFFERPOOLS状况?
  select*fromsysibm.SYSBUFFERPOOLS
  
  44.DB2表的字段的修改限制?
  只能修改VARCHAR2类型的并且只能增加不能减少.
  
  45.如何查看表的结构?
  DESCRIBLETABLETABLE_NAME
  OR
  DESCRIBLESELECT*FROMSCHEMA.TABLE_NAME
  
  46.如何快速清除一个大表?
  ALTERTABLETABLE_NAMEACTIVENOTLOGGEDINITALLYWITHEMPTYTABLE
  
  47.如何查看数据库的包?

select*fromsysCAT.PACKAGES
48.如何查看数据库的存储过程?
  SELECT*FROMSYSCAT.PROCEDURES

49.如何查看表的约束?

  SELECT*FROMSYSCAT.CHECKSWHERETABNAME='AAAA'

  50.如何查看表的引用完整约束?

  SELECT*FROMSYSCAT.REFERENCESWHERETABNAME='AAAA'

 51.安装DB2默认的事例名称是?
  在WINDOWS或OS/2中默认的是DB2
  在LINUX或UNIX环境下默认的是DB2INST1
  
  52.安装后的默认帐户是?
  在WINDOWS或OS/2中默认的是DB2ADMIN
  在LINUX或UNIX环境下默认的是DB2AS

  53.事例的类型有哪些?
  CLIENT(客户)
  STANDALONE(独立的)
  SATELLITE(卫星)
  EEDB2
  EEE
  
  54.如何创建事例?
  DB2ICRTINSTNAME<...PARAMETERS>
  
  55.如何列出系统上的所有可用事例?
  DB2ILIST
  
  56.如何知道当前对话用的是哪个事例?
  GETINSTANCE
  
  57.如何更新事例的配置?
  DB2IUPDT
  
  58.如何删除事例?
  DB2IDROPINSTANCE_NAME
  具体步骤如下:
  停止事例上所有应用程序
  在所有打开的命令行上执行DB2TERMINATE
  运行DB2STOP
  备份DB2INSTPROF注册变量指出的事例目录
  退出事例所有登陆者
  使用DB2IDROP
  也可以删除ID
  
  59.如何列出本地系统上有许可信息的所有产品?
  DB2LICM-L
  
  60.如何增加一产品许可?
  DB2LICM-AFILENAME
  
  61.如何删除一个产品的许可?
  DB2LICM-RPRODUCTPASSWORD
  
  62.如何更新已购买的许可数量?
  DB2LICM-U
  
  63.如何强制只使用已经购买的数量?
  DB2LICM-EHARD


 64.如何更新系统上所使用的许可政策类型?
  DB2LICM-PREGISTEREDCONCURRENT
  
  65.如何更新系统上的处理器的数量?
  DB2LICM-N
  
  66.如何查询许可文件记录的版本信息?
  DB2LICM-V
  
  67.如何查询DB2LICM的帮助信息?
  DB2LICM-H
  
  68.一个数据库至少包括哪些表空间?
  一个目录表空间
  一个或多个用户表空间
  一个或多个临时表空间
  
  69.根据数据与存储空间之间移动的控制方式不同,分哪两种表空间?
  系统管理的空间(SMS)
  数据库管理的空间(DMS)
  
  70.如何列出系统数据库目录的内容?
  LISTDATABASEDIRECTORY
  
  71.CREATEDATABASE是SQL命令吗?
  不是,是系统命令
  
  72.如何查看数据库ABC的配置文件的内容?
  GETDATABASECONFIGURATIONFORABC
  
  73.如何将数据库ABC的参数设置为默认数值?
  RESETDATABASECONFIGURATIONFORABC
  
  74.如何修改数据库ABC配置参数数值?
  UPDATEDATABASECONFIGURATIONFORABC
  USING
  
  75.如何重新启动数据库?
  RESTARTDATABASEDATABASE_NAME
  
  76.如何激活数据库?
  ACTIVATEDATABASEDATABASE_NAME
  
  77.如何停止数据库?
  DEACTIVATEDATABASEDATABASE_NAME


78.如何删除数据库?
  DROPDATABASEDATABASE_NAME
  
  79.如何建立模式?
  CREATESCHEMASCHEMA_NAME
  
  80.如何设置模式?
  SETSCHEMA=SCHEMA_NAME
  
  81.表的类型有哪些?
  基本表
    结果表
  概要表
  类型表
  子类型
  子表
  声明的临时表
  系统临时表

  82.如何定义序列?
  CREATESEQUENCEORDERSEQSTARTWITH1INCREMENTBY1NOMAXVALUENOCYCLECACHE24

  83.如何将表置于检查挂起状态?
  SETINTEGRITYTABLE_NAMEOFF
  
  84.如何获得表的排斥锁?
  LOCKTABLETABLE_NAMEINEXCLUSIVEMODE
  
  85.如何把表调整为没有检查数据的在线状态?
  SETINTEGRITYFORTABLE_NAMEALLIMMEDIATEUNCHECKED

  86.如何解除表的锁定?
  COMMIT
  
  87.如何关闭表的日志?
  ALTERTABLETABLE_NAMEACTIVENOTLOGGEDINIALLY
  
  88.如何删除表?
  DROPSCHEMA.TABLE_NAME
    
  89.如何重命名表?
  RENAMETABLE_OLDTOTABLE_NEW
  
  90.如何取当前时间?
  SELECTCURRENTTIMESTAMPFROMSYSIBM.SYSDUMMY1


select*fromsysCAT.PACKAGES

91.如何创建DB2的概要表?
  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的内置函数?
  自带文档ADMINISTIONSQLREFERENCEFUNCTIONS内

  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

DB2函数
  135.AVG()
  返回一组数值的平均值.
  SELECTAVG(SALARY)FROMBSEMPMS;
  
  136.CORR(),CORRELATION()
  返回一对数值的关系系数.
  SELECTCORRELATION(SALARY,BONUS)FROMBSEMPMS;
  
  137.COUNT()
  返回一组行或值的个数.
  SELECTCOUNT(*)FROMBSEMPMS;
  
  138.COVAR(),COVARIANCE()
  返回一对数值的协方差.
  SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS;
  
  139.MAX()
  返回一组数值中的最大值.
  SELECTMAX(SALARY)FROMBSEMPMS;

  140.MIN()
  返回一组数值中的最小值.
  SELECTMIN(SALARY)FROMBSEMPMS;
  
  141.STDDEV()
  返回一组数值的标准偏差.
  SELECTSTDDEV(SALARY)FROMBSEMPMS;
  
  142.SUM()
  返回一组数据的和.
  SELECTSUM(SALARY)FROMBSEMPMS;
  
  143.VAR(),VARIANCE()
  返回一组数值的方差.
  SELECTVARIANCE(SALARY)FROMBSEMPMS;
  
  144.ABS(),ABSVAL()
  返回参数的绝对值.
  SELECTABS(-3.4)FROMBSEMPMS;
  
  145.ACOS()
  返回参数的反余弦值.
  SELECTACOS(0.9)FROMBSEMPMS;
  
  146.ASCII()
  返回整数参数最左边的字符的ASCII码.
  SELECTASCII('R')FROMBSEMPMS;
  
  147.ASIN()
  返回用弧度表示的角度的参数的反正弦函数.
  SELECTASIN(0.9)FROMBSEMPMS;
  
  148.ATAN()
  返回参数的反正切值,该参数用弧度表示的角度的参数.
  SELECTATAN(0.9)FROMBSEMPMS;
  
  149.ATAN2()
  返回用弧度表示的角度的X和Y坐标的反正切值.
  SELECTATAN2(0.5,0.9)FROMBSEMPMS;
  
  150.BIGINT()
  返回整型常量中的数字或字符串的64位整数表示.
  SELECTBIGINT(EMP_NO)FROMBSEMPMS;
  
  151.CEILING()ORCEIL()
  返回比参数大或等于参数的最小的整数值.
  SELECTCEILING(3.56)FROMBSEMPMS;
  SELECTCEIL(4.67)FROMBSEMPMS;
  
  152.CHAR()
  返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示.
  SELECTCHAR(SALARY,',')FROMBSEMPMS;
  
  153.CHR()
  返回具有由参数指定的ASCII码的字符.
  SELECTCHAR(167)FROMBSEMPMS;

154.CONCAT()
  返回两个字符串的连接.
  SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS;
  
  155.YEAR()
  返回数值的年部分.
  SELECTYEAR('2003/01/02')FROMBSEMPMS;
  
  156.VARCHAR()
  返回字符串,日期型,图形串的可变长度的字符串表示.
  SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS;
  
  157.UCASE()ORUPPER()
  返回字符串的大写.
  SELECTUCASE(EMP_NAM)FROMBSEMPMS;
  SELECTUPPER(EMP_NO)FROMBSEMPMS;

  158.TRUNCATE()ORTRUNC()
  从表达式小数点右边的位置开始截断并返回该数值.
  SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;
  
  159.TIME()
  返回一个数值中的时间.
  SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS;
  
  160.SUBSTR(EXP1,EXP2)
  返回EXP1串自EXP2处开始的子串.
  SELECTSUBSTR('CDNJFDJFJD',5)FROMBSEMPMS;
  SELECTSUBSTR('CDNJFDJFJD',5,2)FROMBSEMPMS;
  
  161.SQRT()
  返回该参数的平方根.
  SELECTSQRT(36)FROMBSEMPMS;
  
  162.SPACE()
  返回由参数指定的长度,包含空格在内的字符串.
  SELECTSPACE(10)FROMBSEMPMS;
  
  163.SECOND()
  返回一个数值的秒部分.
  SELECTSECOND('18:34:32')FROMBSEMPMS;
  
  164.RTRIM()
  删除字符串尾部的空格.
  SELECTRTRIM('COMMENT')FROMBSEMPMS;
  
  165.ROUND(EXP1,EXP2)
  返回EXP1小数点右边的第EXP2位置处开始的四舍五入值.
  SELECTROUND(2345.6789,2)FROMBSEMPMS;
  
  166.REPLACE(EXP1,EXP2,EXP3)
  用EXP3替代EXP1中所有的EXP2
  SELECTCHAR(REPLACE('ROMANDD','NDD','CCB'),10)FROMBSEMPMS;
  
  167.REPEAT(EXP1,EXP2)
  返回EXP1重复EXP2次后的字符串.
  SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS;
  
  168.REAL()
  返回一个数值的单精度浮点数表示.
  SELECTREAL(10)FROMBSEMPMS;
  
  169.RAND()
  返回0和1之间的随机浮点数.
  SELECTRAND()FROMBSEMPMS;
  
  170.POWER(EXP1,EXP2)
  返回EXP1的EXP2次幂.
  SELECTPOWER(2,5)FROMBSEMPMS;
  
  171.POSSTR(EXP1,EXP2)
  返回EXP2在EXP1中的位置.
  SELECT('ABCDEFGH','D')FROMBSEMPMS;
  
  172.NULLIF(EXP1,EXP2)
  如果EXP1=EXP2,则为NULL,否则为EXP1
 173.NODENUMBER()
  返回行的分区号.
  SELECTNODENUMBER(EMP_NO)FROMBSEMPMS;
  
  174.MONTH()
  返回一个数值的月部分.
  SELECTMONTH('2003/10/20')FROMBSEMPMS;
  
  175.MOD(EXP1,EXP2)
  返回EXP1除以EXP2的余数.
  SELECTMOD(20,8)FROMBSEMPMS;
  
  176.MINUTE()
  返回一个数值的分钟部分.
  SELECTMINUTE('18:34:23')FROMBSEMPMS;
  
  177.LTRIM()
  删除字符串前面的空格.
  SELECTLTRIM('CDDD')FROMBSEMPMS;
  
  178.HOUR()
  返回一个数值的小时部分.
  SELECTHOUR('18:34:23')FROMBSEMPMS;
  
  179.DOUBLE()
  如果参数是一个数字表达式,返回与其相对应的浮点数,如果参数是字符串表达式,则返回该数的字符串表达式.
  SELECTDOUBLE('5678')FROMBSEMPMS;
  
  180.EXP()
  返回参数的指数函数.
  SELECTEXP(2)FROMBSEMPMS;
  
  181.FLOAT()
  返回一个数的浮点表示.
  SELECTFLOAT(789)FROMBSEMPMS;
  
    182.FLOOR()
  返回小于或等于参数的最大整数.
  SLECTFLOOR(88.93)FROMBSEMPMS;
  
  183.HEX()
  返回一个表示为字符串的值的16进制表示.
  SELECTHEX(16)FROMBSEMPMS;

 字符编码
UTF-8:使用 1 到 4 字节来表示每个字符的编码。这个编码方案可以用一个字节对 ASCII 字符进行编码,用多个字节(最多 4 字节)对非 ASCII 字符进行编码。
UCS-2:每个 Unicode 字符都编码为 2 字节。这种编码方案可以表示超过 65000 个字符,这覆盖了世界上最重要的语言的大多数字符。Java 内部也使用 UCS-2。
gbk:双字节编码。
一般来讲,一个中文汉字在utf8编码的数据库中需要3个字节来表示,在gbk编码的数据库中需要2个字节来表示。

---------------------------------------
序列
生成数字序列有2中方式:定义带有IDENTITY 属性的列和SEQUENCE

创建
 CREATE SEQUENCE orders_seq
        AS BIGINT
        START WITH 1
        INCREMENT BY 1
        MINVALUE 1
        NO MAXVALUE
    NO CYCLE
    NO CACHE
   ORDER
查询
select nextval FOR orders_seq from sysibm.sysdummy1
更改
ALTER SEQUENCE orders_seq RESTART WITH 100000
删除
DROP SEQUENCE orders_seq         RESTRICT

----------------------------------------------------
建表空间语句(其他类似)
CREATE TABLESPACE TBS01
  IN DATABASE PARTITION GROUP IBMDEFAULTGROUP
  PAGESIZE 32K
  MANAGED BY DATABASE
  USING
   (Device '/dev/rdb2tbs01_lv01' 6520832
   )
     ON DBPARTITIONNUM (1)
  USING
   (Device '/dev/rdb2tbs01_lv02' 6520832
   )
     ON DBPARTITIONNUM (2)
  USING
   (Device '/dev/rdb2tbs01_lv03' 6520832
   )
     ON DBPARTITIONNUM (3)
  USING
   (Device '/dev/rdb2tbs01_lv04' 6520832
   )
     ON DBPARTITIONNUM (4)
  EXTENTSIZE 32
  PREFETCHSIZE 192
  BUFFERPOOL BP32
  OVERHEAD 24.10
  TRANSFERRATE 0.90
  DROPPED TABLE RECOVERY ON;

GRANT USE OF TABLESPACE TBS01 TO USER DB2INST1 WITH GRANT OPTION;

GRANT USE OF TABLESPACE TBS01 TO USER ST;

GRANT USE OF TABLESPACE TBS01 TO USER TEST2;
  

 

你可能感兴趣的:(数据库)