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;