DB2数据库基础入门

上传人:gg****m 文档编号:213903223 上传时间:2021-11-22 格式:DOCX 页数:7 大小:61.75KB
返回 下载 相关 举报
DB2数据库基础入门_第1页
第1页 / 共7页
DB2数据库基础入门_第2页
第2页 / 共7页
DB2数据库基础入门_第3页
第3页 / 共7页
DB2数据库基础入门_第4页
第4页 / 共7页
DB2数据库基础入门_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《DB2数据库基础入门》由会员分享,可在线阅读,更多相关《DB2数据库基础入门(7页珍藏版)》请在金锄头文库上搜索。

1、IBM DB2数据库基础INSERT INTO TAB_NAME(C1, C2, C3) VALUES) , J删DELETE FROM 表名WHERE条件改UPDATE表名SET字段名二字符值,字段名二数值, WHERE条件INSERT INTO TAB1(C1, C2) SELECT Cl, C2 FROM TAB2 A 表插 B 表子查询:SELECT字段名1,字段名2- FROM表1WHERE字段1= (SELECT字段名FROM表名WHERE条件)数据类型转换函数整型转字 符型字符串 转整形字符串转浮八、jdts浮点型转字符串字符串转日 期字符串转时间戳日期转字符串ORACLEto_

2、char(l)to_numberCV)to_numberCi r)to_char( 1.1)to_date(2007-04-26*,*yyy y-mm-dd)to_date(2007-04-26()8:08:08,*YYYY-MM-DDHH24:MI:SS)to_char(to_date(,2007-04-29,;yyyy-mm-dd1),yyy-mm-dd1)DB2char(l)int(T)doublefl.r)char(l.l)date(2007-04-261)to_date(2007-04-2608:08:08TYYYY-MM-DDHH24:MI:SS)char(date(2007-04

3、-29)兼容写法cast( 1 aschar)cast(l as int)无无无兼容无Where条件弱类型判断oracle: where字符型字段in (整形)是允许,DB2不允许select abc1 from dual where T in (1)在 oracle 下可通过select abc1 from sysibm.sysdummyl where T in (1)在 DB2 下报错oracle: where字符型字段=数字型字段 允许,DB2不允许select abc from dual where f1 *= 1 在 oracle 下可通过select abcfrom sysibm.

4、sysdummy 1 whre M *= 1 在 DB2 下报错replace关键字oracle支持,DB2不支持create or replace语句在DB2下是非法子查询别名ORACLE 支持 select * from(select 1 from dual)或者 select * from(select 1 from dual) tDB2 支持 select * from(select 1 from sysibm.sysdummyl) t 或者 select * from(select 1 from sysibm.sysdummyl) as t 固兼容的写法是select * from(

5、 T查询)tDATE数据类型的区别ORACLE中DATE型也是带有时分秒的,但DB2下DATE只是年月日,如*2007-04-28,且可作为字符串直接操作,DB2中要记录时分秒必须采用TIMESTAMP型一个采用hibernate后常见的兼容问题是:如果在映射文件中定义了某个字段为Date型则在DB2下,此字段必须定义为timestamp,而不能定义成DATE,不然会报出字符串右截 断的错误对于DB2来说,在查询条件中可以直接用字符串指定日期或时间戳类型字段的值,例如 where create_date = 2007-04-26、where createmestamp = 2007-04-26

6、 08:08:08,无须使 用字符串转日期函数decode函数decode函数在DB2不被支持,兼容的写法是采用case whenNVL函数nvl写法在DB2不被支持,兼容的写法是采用coalesceORACLE: select NVL(f_areaidJ空)from masa_user 等同于 select coalesce(f_areaidj空:f_areaid) from masa_userDB2: select coalesce(f_areaid,空:f_areaid) from masa_usersubstr的不同DB2 substr举例如卜:masa_group表的f_groupC

7、ode字段定义成VARCHAR(IOO),所以下面这个语旬不会出错,如果 是 substr(f_groupCode,1,101)就出错了select * from masa_group where substr(f_groupCode,l,50) = 001006* order by f_groupcode在DB2下无错,但是select * from masa_group where substr(001006,1, 50) = 001006 order by f_groupcode就报错,说第三个参数超限这是因为0010061已经定义为一个长度为6的charater /这点和ORACLE有

8、很大不同,请大家注意如果是要从第一位取到最后一位,稳妥的办法是不要加第三个参数ORACLE: select substr(123456,l) from dualDB2: select substr(123456l) from sysibm.sysdummyl都没有问题获取操作系统当前日期ORACLE SysdateDB2 CURRENT DATE数据类型DB2的常用数据类型包括以下儿个:一数字型的。1. SMALLINT短整型,范围为-32768+32767, 一遍用的綾少2. INT/INTEGER 整型,4个字节,范围为-2147483648+2147483647, 一遍多用于做口 动生成

9、的序列,或者用作表记录的id使用。3. BIGINT大整型,8个字节,精度为19位,够大了,一般较少使用。4. DECIMAL(P,S) -小数型,其中P为精度,S为小数位数,隐含小数点(小数点不计入位数)。 比如M DECIMAL(5,2),那么就是指定M的楮度为5位(除小数点外所有数字的位数不能超过 5),否则插入时会发生数据位溢出;而小数的位数不能超过2,否则插入时会截断小数位。比如:M: 123.45(成功)M:12.345(成功,但是截断为12.34)M:1234.5(失败,整数位超标,溢出报错)5. REAL单精度浮点型,不常用6. DOUBLE双精度浮点型,不常用char(n)-

10、定长字符串,长度范围1-254,常用varchar(n)变长字符串,长度范围1-32672,常用CLOB-字符大対象字符串,很大,没用过,要用再研究。三吋间型date占4个字节插入格式为,YYYY-MM-DD,time占3个字节 插入格式为HH:MM:SStimestamp占10个字节 插入格式为,YYYY-MM-DDHH:MM:SS,当然,这都是采用内部格式压缩过的。四.空值空值使用NULL表示,NULL可以表示任何数据类型的空值,但是NULL不能参加任何算数运 算和逻辑运算,如果勉强运算得到的也是NULL。基本命令集合查看表select tab name from tables where

11、 tabname=,ZJT_TABLES,;查看列select SUBSTR(COLNAME,1,20) as 歹Q名,TYPENAME as 类型丄ENGTH as 长度 from columnswhere tabname=ZJT_7ABLES;查看表结构db2 describe table userl.departmentdb2 describe select * from user.tables查看视图select viewname from viewswhere viewname=,V ZJT TABLES1;MB查看索引select indname from indexeswhere

12、 indname=,l_ZTABLES_TABNAME,;查看存储过程SELECT SUBSTR(PROCSCHEMA,1,15)ZSUBSTR(PROCNAMEZ1,15)FROM SYSCAT.PROCEDURES;显示当前用户所有表list tables列出所有的系统表list tables for system系统数据库目录LIST DATABASE DIRECTORYSQL帮助(说明SQL语句的语法)help statement例如,help SELECTSQLSTATE帮助(说明SQL的状态和类别代码)? sqlstate 或 ? class-code转换数据类型(cast)SEL

13、ECT EMPNO, CAST(RESUME AS VARCHAR(370) FROM EMP_RESUME WHERERESUME_FORMAT = ascii*创建和填充表列出表:list tables 歹!出当前用户的表list tables for all 歹!J出数据库中所定义的所有表 list tables for schema schemaname 列出具有指定模式的表 describe table tablename 显示指定表的结构list tablespaces 表空间创建序列序列是一个数据库对彖,它允许自动生成值序列特别适合于生成唯一键值.与身份列属性不同,未使序列与特定

14、表列相关,也未将它绑定至唯一列,只是仅可通 过该表列存取.只在单分区数据库小才受支持.在多分区环境中的单分区数据库也不行.CREATE SEQUENCE order_seqSTART WITH 1INCREMENT BY 1NOMAXVALUENOCYCLECACHE 24使用序列insert into order (orderno,custno)values (nextval for order_seq,123456);insert into line_item (orderno,partno,quantity)values (prevval for order_seq,987654,1)创建别名别名是引用表,别名或视图的间接方法,这样SQL语句可与该表或视图的 限定名无关.CREATE ALIAS WORKERS FOR EMPLOYEE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号