DB2常用函数总结

时间:2019-05-13 19:58:12下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《DB2常用函数总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《DB2常用函数总结》。

第一篇:DB2常用函数总结

一、字符转换函数

1、ASCII()

返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用„‟括起来,但含其它字符的字符串必须用„‟括起来使用,否则会出错。

2、CHAR()

将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL。

3、LOWER()和UPPER()

LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

4、STR()

把数值型数据转换为字符型数据。

STR([,length[,]])

length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;

当length 小于小数点左边(包括符号位)的位数时,返回length 个*;

先服从length,再取decimal ;

当返回的字符串位数小于length,左边补足空格。

二、去空格函数

1、LTRIM()把字符串头部的空格去掉。

2、RTRIM()把字符串尾部的空格去掉。

三、取子串函数

1、left()

LEFT()返回character_expression 左起 integer_expression 个字符。

2、RIGHT()

RIGHT()返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()

SUBSTRING(,length)

返回从字符串左边第starting_ position 个字符起length个字符的部分。

四、字符串比较函数

1、CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。

CHARINDEX(<‟substring_expression‟>,)

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。

此函数不能用于TEXT 和IMAGE 数据类型。

2、PATINDEX()

返回字符串中某个指定的子串出现的开始位置。

PATINDEX(<‟%substring _expression%‟>,)其中子串表达式前后必须有百分号“%”否则返回值为0。

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。

五、字符串操作函数

1、QUOTENAME()

返回被特定字符括起来的字符串。

QUOTENAME(<‟character_expression‟>[,quote_ character])其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。

2、REPLICATE()

返回一个重复character_expression 指定次数的字符串。

REPLICATE(character_expression integer_expression)如果integer_expression 值为负值,则返回NULL。

3、REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE()其中character_expression 可以是字符串、常数或一个列的值。

4、REPLACE()

返回被替换了指定子串的字符串。

REPLACE()用string_expression3 替换在string_expression1 中的子串string_expression2。

4、SPACE()

返回一个有指定长度的空白字符串。

SPACE()如果integer_expression 值为负值,则返回NULL。

5、STUFF()

用另一子串替换字符串指定位置、长度的子串。

STUFF()

如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。

如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

六、数据类型转换函数

1、CAST()

CAST( AS [ length ])

2、CONVERT()

CONVERT([ length ], [,style])

1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。

2)length用于指定数据的长度,缺省值为30。

3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。

4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。

5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。

6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。

7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。

8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。

9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。

七、日期函数

1、day(date_expression)返回date_expression中的日期值

2、month(date_expression)返回date_expression中的月份值

3、year(date_expression)返回date_expression中的年份值

4、DATEADD()

DATEADD()

返回指定日期date 加上指定的额外日期间隔number 产生的新日期。

5、DATEDIFF()

DATEDIFF()

返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。

6、DATENAME()

DATENAME()

以字符串的形式返回日期的指定部分此部分。由datepart 来指定。

7、DATEPART()

DATEPART()

以整数值的形式返回日期的指定部分。此部分由datepart 来指定。

DATEPART(dd,date)等同于DAY(date)DATEPART(mm,date)等同于MONTH(date)DATEPART(yy,date)等同于YEAR(date)

8、GETDATE()

以DATETIME 的缺省格式返回系统当前的日期和时间

第二篇:db2学习总结

一、SQL部分:

1、连接字符串的方式:’||’运算符、concat函数

2、在db2中字符串使用单引号括起来,表示单引号本身:’’(两个单引号)

3、利用chr()可以将ASCII码转化为字符,ch(10)表示换行,ch(13)表示换行

4、Insert语句有三种格式:一次插入一行,一次插入多行,从select语句中插入

1)insert into table_name(col1,col2,......)values(val1,val2,val3,......);

2)Insert into table_name(col1,col2,......)values(val1,val2,......),(val1,val2,.....),(val1,val2.....),.....;

3)insert into table_name(col1,col2,.....)select col1,col2,......From table_name......;

一次插入多行的格式性能高于一次插入一行,利用多条语句插入的格式,因为一条语句是一个处理单元。

5、update语句有两种格式:

1)update table_name set col_name=’ ****’ where.......2)Update(select ****from table_name)set col_name=’****’ where.....第二种方式可读性没有第一种方式好,但是它可以处理第一种方式处理不了的情况。

6、删除数据:

1)delete from table_name where......;

2)delete from(select * fromtable_name where......);

3)Delete from table_name;(删除全部数据);

4)先drop table,再create table,处理速度很快,但是比较麻烦

5)Alter table table_name active not logged initially with empty table;该语句对表的操作不记录日志,恢复的时候可能会有问题

7、子查询

1)相关子查询:相关子查询的子句依赖外部语句的条件,不能单独执行

2)非相关子查询:非相关子查询的子句是可以单独执行的。

相关子查询的性能和可读性都不如非相关子查询。

8、多字段查询

1)select * from table_name where col1=’ ’ and col2=’’;

2)Select * from table_name where(col1,col2)=(‘’ ,’’);

3)Select * from table_name where(col1,col2)in(子查询);

4)Update table_name set(col1,col2)=(子查询)where.......9、order by 子句,用于对结果集进行排序,为避免出现逻辑错误,应在该子句中加入主键或唯一键。

10、Group by 语句:对记录进行分组

1)与rollup一起使用:

Group by rollup(col1,col2),其中col1与col2的顺序十分重要,若将两者交换,会得到不同的结果

2)与cube一起使用:Group by cube(col1,col2),col1与col2的顺序可以任意调换,结果不变。

11、some、any、all、exists、in

Some和any作用完全相同

二、Db2与oracle的区别

1、数据类型不一样

2、转换函数不一样

3、

第三篇:DB2性能调节工作总结(推荐)

DB2性能调节工作总结

近期负责了Metric项目的服务器性能维护,对DB2的性能调节做了些研究。整体感觉数据库调优的关键点应该还是在建库阶段,好的查询更能得到更好的性能。而后期对数据库参数等的调节结果并不是非常明显的。

网上数据库调节方面的资料也很多,但大多数都是转来转去的,在此只做下我个人的工作总结;(//表示对上诉解释 ##表示对下面解释)

#####1,Monitoring

#### db2 get database manager monitor switches //显示监视开关的情况

db2 update dbm cfg using DFT_MON_BUFPOOL ON DFT_MON_LOCK ON db2 update dbm cfg using DFT_MON_SORT ON DFT_MON_STMT ON db2 update dbm cfg using DFT_MON_TABLE ON DFT_MON_UOS ON db2 terminate db2stop db2start //在实例级打开监视开关,这样随着实例的重启,开关生效 db2 get database manager monitor switches db2 get monitor switches //发现实例级和下面的数据库监视开关都打开了 db2 deacivate database tp1 db2 activate database tp1 //重新激活数据库,刷新监视数据 select agent_id,rows_read,rows_written,rows_selected,rows_inserted from sysibmadm.snapappl //监视每个代理读写查询的情况,如果read的数量远高于select的数量,考虑是不是缺少索引

//在我的工作中,很少遇到写多的情况,所以对这方面也没深入

db2 get snapshot for tables on tp1 > sntab1.txt //接下来监视tp1数据库下所有表的读写啦

##下一步,就是抓到那个有大量读大于写的表,然后提取该表上的查询SQL ##这里就要考虑两种情况了,是静态的还是动态的 ##@@@静态的,从包里提取 db2bfd-s sqltp1st.bnd ##@@@动态的,可以用snapshot SQL STATEMENT抓取,这里不写了 //然后就要提取出我们关注的大量读的查询SQL //我不太喜欢这部,累眼睛,还烦琐!!如果有大量查询SQL,还需要想办法自己找出

db2 describe indexes for table acct show detail //然后就是从提出的SQL中找到表,从表中看有没有索引,没有的话,新建

##之后呢,就可以从访问计划中看索引有没有生效 ##静态SQL可以用db2expln从包里弄,本人比较喜欢db2exfmt,因为动静SQL都可以弄

##后面有db2exfmt关于动静的例子,我比较习惯把SQL statement拿出来

##然后放进文本里,db2expln-d GTSSTGMS-f SQL.txt-g-z;-o GTSSTGMS_sort.txt ##或者,db2 connect to tp1 ##db2 set current explain mode explain ##db2 set current explain snapshot explain ##db2 “select name,address from acct where......” ##db2exfmt-l-d tp1-o extp2.txt => vi extp2.txt

#####2,Talespace and I/O Performance

#### db2 select bpname,bufferpoolid,npages,pagesize from syscat.bufferpools //查看数据库的缓冲池,syscat.bufferpools中的bufferpoolid字段和sysibmadm.snapdb_memory_pool //的pool_secondary_id是关联的,从后一张表中记载着用户用户间的缓冲池和系统自建的缓冲池

//CURRENT_SIZE 当前大小;POOL_CONFIG_SIZE 设置大小;HIGH_WATERMARK 最高记录;//我发现,这和使用 db2pd-db GTSSTGMS-mempools是对应的 PhySz PhyUpBnd PhyHWM //使用

db2pd-db GTSSTGMS-memset,将同类内存集合并计算

//在这里插一段缓冲池自调节功能介绍

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 下面我们创建示例缓冲池MYBP1,其使用自调整功能(注意其create bufferpool语句使用了automatic),初始大小为400K,具体如清单4所示:

创建使用自动自调整功能的示例缓冲池MYBP1 db2 create bufferpool mybp1 immediate size 100 automatic pagesize 4k db2 “select BPNAME, NPAGES from sysibm.sysbufferpools” 当缓冲池启用了自调整功能时,该特定缓冲池的

sysibm.sysbufferpools 表中的 NPAGES 字段将设置为-2。当自调整功能处于禁用状态时,NPAGES 字段将设置为缓冲池的当前大小。

db2 alter bufferpool mybp2 immediate size 100 automatic 表空间在读大数据的时候,给表空间指定缓冲区是没有用的。这种情况下,DB2会利用直接I/O去接触大数据。db2 create bufferpool BP8K size 1000 pagesize 8k db2 create system temporary tablespace TMP8K pagesize 8k managed by system using('TMP8K')EXTENTSIZE 8 PREFETCHSIZE 8 bufferpool BP8K @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ###接下来呢,当然是看命中率了 当然可以用 db2 get snapshot for database on tp1 ###这里介绍另外一个方法 select data_physical_reads,index_physical_reads,total_physical_reads,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' select data_logical_reads,index_logical_reads,total_logical_reads,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' select data_hit_ratio_percent,index_hit_ratio_percent,total_hit_ratio_percent,bp_name from sysibmadm.bp_hitratio where bp_name not like 'IBMSYSTEM%' //上面这样可以检测每一个缓冲器的命中率情况 ###接下来,看一下缓冲器的读写情况 select substr(bp_name,1,15)as bp_name,total_physical_reads,average_read_time_ms from sysibmadm.bp_read_io where bp_name not like 'IBMSYSTEM%' select substr(bp_name,1,15)as bp_name, total_write,average_write_time_ms from sysibmadm.bp_write_io where bp_name not like 'IBMSYSTEM%' //那个bufferpool比较忙,用于那个表空间,该表空间有哪些表,检查。。###下面检查表空间

select pool_data_p_reads as Total_Data_Reads, Pool_async_data_reads as Asynch_Data_Reads, pool_async_read_time from sysibmadm.snapbp where bp_name='IBMDEFAULTBP' select pool_async_data_read_reqs as Data_Prefetch_Requests, decimal(POOL_ASYNC_DATA_READS)/decimal(POOL_ASYNC_DATA_READ_REQS)as Data_Page_Per_Prefetch, pages_from_block_ios from sysibmadm.snapbp where bp_name='IBMDEFAULTBP' ###其中DATA_PAGES_PER_PREFETCH要match上extent size,为了得到extent size,###(最好打开Automatic Prefetch size,这样自动计算数值NUM of Containers * Extent Size)使用 db2 get snapshot for tablespace on tp1 ###最好将IOSERVERS和IOCLEANERS设为自动 db2 get db cfg show detail | grep NUM_IO NUM_IOSERVERS AUTOMATIC? NUM_IOCLEANERS AUTOMATIC?

#####3,Memory Management

#### ###当然是要看内存当前使用了 db2 deactivate db tp1 db2 activate db tp1 db2 connect to tp1 db2mtrk-d-v db2pd-db tp1-mempools db2pd-db tp1-memsets //这里就不多说了,好多我也不明白,明白的具体情况具体分析

#####4,Memory Management

#### db2 get snapshot for database on tp1 | grep-i sort //需要看一下total sorts和Sort Overflows的情况 //如果sort heap不够用的话,会用临时表空间 //可以snapshot一下这个临时表空间

//特别注意Buffer pool temprorary data logical reads和Buffer pool temporary data physical reads //Buffer pool data writes,Asynchronous pool data page writes ###接下来就要估一下sortheap是否够用 db2expln-d tp1-f sortquery.sql-g-z;-o expsort.txt ###这里主要看Rows * Row Width 和 sortheap大小

#####5,Access plan(Optimizer plan)

#### Monitor-----Static SQL cd $HOME/sqllib/bin db2 connect to tp1 db2 bind sqltp1st.bnd explain yes explsnap yes db2exfmt-l-d tp1-n SQLTP1ST-# /-o exptp1.txt sort heap size * 4K(PAGE)和 numrows*rowwidth(BYTE)比较大小,来决定sort heap size PCTFREE & FREEPAGE => 1)只读表,如果对于一个表没有任务更新活动,那么可以将定义为没有空余空间,而且也没有任何比较reorg,因为不会产生分页。Monitor-----Dynamic SQL cd $HOME/sqllib/bin db2 connect to tp1 db2 set current explain mode explain db2 set current explain snapshot explain db2 “select name,address from acct.where acct_grp < 50 order by name” db2exfmt-l-d tp1-o extp2.txt

第四篇:简单函数归纳总结

随机取值:

1、randbetween(最小整数,最大整数)

2、rand()0~1 编辑组合,如:30~40,可编辑为:rand()*30+103、pi()3.14159........筛选值:

1、min(数值.....)取最小值

2、median(数值.....)取中值

3、max(数值.....)取最大值

4、small(数组,k)第k个最小值

5、Large(数组,k)第k个最大值

6、mode(数值)返回在区域中出现频率最多的数

7、Mod(数值,除数)返回余数

求值:

1、求和 sum(数值1,........)

sumif(区域,条件,求和区域)

sumifs(求和区域,区域1,条件1,.......)

2、相乘 product(数值1,........)

3、平方和 sumsq(数值1,........)

4、平方根 sqrt(数值)

5、方差 var(数值1,........)

6、标准差 stdev(数值)

7、角度换算为弧度 randians(角度)

8、弧度换算为角度 degrees(弧度)

9、求平均值 average(数值)

10、求平均值 average(数值,区域1,条件1,........)

11、绝对值 abs(数值)

返回值:

1、trunc(数值,小数位数)将小数部分截去,返回整数

2、Round(数值,小数位数)按指定位数取整,遵循四舍五入

Roundup(数值,小数位数)向上按指定位数取整,不遵循四舍五入Rounddown(数值,小数位数)向下按指定位数取整,不遵循四舍五入

3、odd(数值)对指定数值沿绝对值增大方向取整后最接近的奇数

4、even(数值)对指定数值沿绝对值增大方向取整后最接近的偶数 排序:

1、rank(数值,引用,排位方式)“引用”使用“绝对引用”

第五篇:函数总结

常用函数

sum(数值1,数值2……)求和

average(数值1,数值2……)求平均值

max(数值1,数值2……)求最大值

min(数值1,数值2……)求最小值

count(数值1,数值2……)计数

注意:count只能统计数字的个数,对文本无效

rank(数值,数值所在列,0)排名次

注意:数值所在列要用F4键,锁定

countif(统计的范围,统计条件)有条件统计个数

round(数值,保留的小数位数)四舍五入

if(条件表达式,条件成立时返回的值,条件不成立时返回的值)注意:在office 2010中IF最多能够嵌套64层

sumif(条件所在范围,条件表达式,求和的区域)有条件求和 or(,,,……)逻辑判断(只要有一个为真,结果就是真)and(,,,……)逻辑判断(全部为真时,结果才是真的)lookup(查找内容,查找内容所在区域,返回的区域)查找 注意:要使用lookup函数必须先对查找内容进行升序排序 vlookup(查找的内容,表格所在区域,返回第几列的信息,0)查找与首行相匹配的内容,返回指定列的信息

iserror()错误检查

mid(文本字符串,从第几位提取,提取几位)从字符串中提取信

mod(被除数,除数)取余

concatenate(字符串1,字符串2,……)将255个字符串连接在一起

today()返回当前的系统时间(无参数)

year(日期)提取日期中的年份

fv(利率,存款时间,每期存款金额,账户现有金额,期初或期末存钱)零存整取

pmt(利率,还贷时间,贷款金额,最后一次还款金额,期初期末)分期付款

下载DB2常用函数总结word格式文档
下载DB2常用函数总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    DB2常用SQL语句集(精选5篇)

    DB2常用SQL语句集 1、 查看表结构: describe table tablename describe select * from tablename 2、 列出系统数据库目录的内容: list database directory 3、 查看数据库配......

    EXCEL函数总结

    一、 数据录入 1.”北京达内”@+文本 2.”0020”#+数字 3.数据有效性 4.工作表加密只读不能改 审阅-----保护工作表 -----部分保护-----允许用户编制区域 5.加密文件:文件---......

    复变函数总结

    第一章复数1=-1欧拉公式z=x+iy实部Rez虚部Imz2运算①②③④⑤共轭复数共轭技巧运算律P1页3代数,几何表示z与平面点一一对应,与向量一一对应辐角当z≠0时,向量z和x轴正向之间的......

    初中函数知识点总结

    千承培训学校 函数知识点总结(掌握函数的定义、性质和图像) (一)平面直角坐标系 1、定义:平面上互相垂直且有公共原点的两条数轴构成平面直角坐标系,简称为直角坐标系 2、各个象......

    (最新)初中函数知识点总结

    函数知识点总结(掌握函数的定义、性质和图像)(一)平面直角坐标系1、点P(x,y)到坐标原点的距离为3、两点之间的距离:A、BAB|=3、中点坐标公式:已知A、BM为AB的中点则:M=(,)(二)正比例......

    MATLAB函数总结(精选五篇)

    MATLAB函数总结 Matlab有没有求矩阵行数/列数/维数的函数? ndims(A)返回A的维数 size(A)返回A各个维的最大元素个数 length(A)返回max(size(A)) [m,n]=size(A)如果A是二维数......

    高等数学难点总结函数

    函数(高等数学的主要研究对象) 极限:数列的极限(特殊)——函数的极限(一般) 极限的本质是通过已知某一个量(自变量)的变化趋势,去研究和探索另外一个量(因变量)的变化趋势 由极限可以推......

    功函数总结解读

    功函数:是体现电子传输能力的一个重要物理量,电子在深度为χ的势阱内,要使费米面上的电子逃离金属,至少使之获得W=X-E F的能量,W称为脱出功又称为功函数;脱出功越小,电子脱......