DB2数据类型(抄袭)
数字
数据类型 精度 最小值 最大值
smallint 5 -32,768 32,767
integer 10 -2,147,483,648 2,147,483,647
bigint 19 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
decimal 31
real 24 -3.402E+38 3.402E+38
double 53 -1.79769E+308 +1.79769E+308
字符
数据类型 最大长度
char 254字节
varchar 32672字节
long varchar 32700字节
clob 2,147,483,647字节
graphic 127字节
vargraphic 16,336字节
dbclob 1,073,741,823字节
blob 2,147,483,647字节
日期类型
描述 限制
最小date值 0001-01-01
最大date值 9999-12-31
最小time值 00:00:00
最大time值 24:00:00
最小timestamp值 0001-01-01-00.00.00.000000
最大timestamp值 9999-12-31-24.00.00.000000
DB2提供有3种大对象:
Binary Large Objects(BLOBs)
Single-Byte Character Large Objects(CLOBs)
Double-Byte Character Large Objects(DBCLOBs)
lobs可以直接作为数据库对象在过程中使用
create procedure staffresume ( in p_empno char(6),out p_resume clob(1M) )
language sql
specific staffresume
begin
select reume into p_resume
from emp_resume
where empno=p_empno and resume_format = ‘ascii’;
end
如何选择正确的数据类型:
问题 数据类型
字符数据是变长的? varchar
字符数据是变长的,最大值是多少? varchar
数据是否需要排序? char,varchar, numeric
数据是否用于算术计算? decimal,numeric,real,double,bigint,integer,smallint
数值包含小数吗? decimal,numeric,real,double
数据是定长的? char
数据是否有特殊的含义 用户自定义类型
数据很大,或者你需要存储非传统数据? clob,blob,dbclob
tip:基于表的基本类型定义变量,数据类型装换会影响数据库的性能
1.创建
create distinct type <distinct-type-name> as <source-data-type> with comparisons
其中with comparisons表示可以使用系统提供的比较符号;例如:
create distinct type miles as double with comparisons;
注意:在自定义类型创建结束之后,DB2会自动创建两个类型转换函数
miles (double)
double (miles)
create distinct type kilometers as double with comparisons;
2.定义变量
declare v_in_mile miles;
declare v_in_kilometers kilometers;
3.使用方法
1)错误的使用方法,没有使用转换函数
if (v_in_mile > v_in_kilometers)
if (v_in_mile > 30.0)
2)正确的使用方法
if (v_in_mile > miles(double(v_in_kilometer)/1.6))
if (v_in_mile >miles(30.0))
日期、时间和字符串的操作:
日期和时间的操作
1)取时间相关的值
select current date from sysibm.sysdummy1;
select current time from sysibm.sysdummy1;
select current timestamp from sysibm.sysdummy1;
select year(current timestamp) from sysibm.sysdummy1;
select month(current timestamp) from sysibm.sysdummy1;
select day(current timestamp) from sysibm.sysdummy1;
select hour(current timestamp) from sysibm.sysdummy1;
select minute(current timestamp) from sysibm.sysdummy1;
select second(current timestamp) from sysibm.sysdummy1;
select microsecond(current timestamp) from sysibm.sysdummy1;
2)计算
select current date + 1 year from sysibm.sysdummy1
select current date + 3 years + 2 months + 15 days from sysibm.sysdummy1
select current time + 5 hours - 3 minutes + 10 seconds from sysibm.sysdummy1
select days(current date) – days(date(‘2000-01-01’)) from sysibm.sysdummy1
3)转换成字符型 select char(current date) from sysibm.sysdummy1; select char(current time) from sysibm.sysdummy1;
select char(current time + 12 hours ) from sysibm.sysdummy1;
4)字符类型转换为日期或时间类型
select timestamp(‘2002-10-20-12.00.00.000000’) from sysibm.sysdummy1;
select timestamp(‘2002-10-20 12.00.00’) from sysibm.sysdummy1;
select date(‘2002-10-20’) from sysibm.sysdummy1;
select date(‘10/20/2002’) from sysibm.sysdummy1;
select time(’12:00:00’) from sysibm.sysdummy1;
select time(’12.00.00’) from sysibm.sysdummy1;
字符串的操作
1)拼接
select concat(‘abc’,’def’) from sysibm.sysdummy1;
select ‘abc’||’def’ from sysibm.sysdummy1; -- 多值时使用
2)大小写转换
upper,lower
3)返回第一个非空的值
select coalesce(c1,c2,’abc’) from t1
DB2数据类型(抄袭)的更多相关文章
- DB2数据类型
DB2数据库的内置数据类型主要分成数值型(numeric).字符串型(character string).图形字符串(graphic string).二进制字符串型(binary string)或日期 ...
- db2 数据类型
数据类型: 字符串类型 描述 CHARACTER(n) n bytes定长字符串. n 大于0 不大于255. 默认 1. VARCHAR(n) 变长字符串,最大 n bytes. n大于 0 小于表 ...
- Oracle VS DB2 数据类型
=========================Oracle VS DB2==================================== 本文转自:http://www.bitscn.co ...
- DB2 Vs MySQL系列 | MySQL与DB2的数据类型对比
随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多.进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据类型之间的转换. 相关阅读: 从商用到开 ...
- DB2常用sql函数 (转载)
http://www.techonthenet.com/sql/index.php 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字 ...
- Oracle的Numer类型与C,C#数据类型对应关系
最近一直在编和Oracle数据库相关程序.Oracle的Number类型和C语言,C#语言类型的对应关系,在网络上查找很久,也没有找到说明文字.但在http://oracle.chinaitlab.c ...
- db2和oracle字段类型对比
在网上找到一片关于oracle与DB2数据类型的比较,特记下来. Oracle DB2/400 Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项 DATE DATETIMETIMEST ...
- 从商用到开源:15个维度,全面剖析DB2与MySQL数据库的差异
随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多.进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据类型之间的转换. 相关阅读: 从商用到开 ...
- DB2的sql函数
转自:http://blog.chinaunix.net/uid-21162795-id-3587646.html 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在 ...
随机推荐
- 5.用 CSS 创作一个立体滑动 toggle 交互控件
原文地址:https://segmentfault.com/a/1190000014638655 HTML代码: <html> <head> <link rel=&quo ...
- SQLserver查看索引使用情况
查索引使用情况: https://www.cnblogs.com/sunliyuan/p/6559354.html select db_name(database_id) as N'TOPK_T ...
- redis、memcache和mongodb各自的优缺点是什么
redis.memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性. 总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session.而 ...
- Mybatis like模糊查询的写法
转自:http://blog.51cto.com/lavasoft/1386870 Mybatis like查询官方文档没有明确的例子可循,网上搜索了很多,都不正确. Mybatis 3.2.6经过尝 ...
- 浅谈DNS域名解析
定义:浏览器通过域名查询URL对应的IP 存储方式:1.浏览器缓存 2.操作系统缓存 3.路由器缓存 4.ISP(Internet Server Provider) 的DNS服务器 5.根服务器 Ti ...
- Spring MVC 异常处理 - ExceptionHandler
通过HandlerExceptionResolver 处理程序异常,包括Handler映射, 数据绑定, 以及目标方法执行时的发生的异常 实现类如下 /** * 1. 在 @ExceptionHand ...
- 使用 C++11 编写类似 QT 的信号槽——上篇
了解 QT 的应该知道,QT 有一个信号槽 Singla-Slot 这样的东西.信号槽是 QT 的核心机制,用来替代函数指针,将不相关的对象绑定在一起,实现对象间的通信. 考虑为 Simple2D 添 ...
- Haskell语言学习笔记(48)Data.Tuple
Data.Tuple fst :: (a,b) -> a fst (x,_) = x snd :: (a,b) -> b snd (_,y) = y curry :: ((a, b) -& ...
- 使用 ImageEnView 给图片加水印,及建缩略图
摘要: 使用 ImageEnView 给图片加水印,及建缩略图 {Power by hzqghost@21cn.com}unit CutWater; interface uses Math,imag ...
- 用Python提取XML里的内容,存到Excel中
最近做一个项目是解析XML文件,提取其中的chatid和lt.timestamp等信息,存到excel里. 1.解析xml,提取数据 使用python自带的xml.dom中的minidom(也可以用l ...