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
最新文章
- Pyqt 基础功能
- day1学习
- Linux终端打印命令使用介绍
- wpf telerik中的book控件
- Linux入侵检查思路及其命令 转自https://yq.aliyun.com/articles/24250?spm=5176.100239.blogcont24249.12.rbBrIh
- css权重
- 安装mysql数据库中的技巧、错误排查以及实用命令(持续更新)
- java搭建finagle(2)
- SAP Connector 3.0 .Net 开发
- 2015第29周六Spring
- framework层和native层实现联网控制(iptable方式)
- crawler_JVM_DNS_在爬虫中的应用
- IE6下绝对定位元素和浮动元素并列绝对定位元素消失
- Eval与Bind的区别
- 在gitlab上面创建私有库
- TYVJ1424-占卜DIY
- Oracle的to_char()函数使用
- swift的一些知识点(不断完善中)
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
- delphi 控制音量 静音的类
热门文章
- python入门-用户输入
- OpenACC Julia 图形
- 24. Swap Nodes in Pairs + 25. Reverse Nodes in k-Group
- Selenium Webdriver——操作隐藏的元素
- leetcode412
- win2008 server ping不同
- WebRTC内置debug工具,详细参数解读 chrome://webrtc-internals/
- as2 无法加载类或接口
- as3 string split方法一些注意
- UI5-文档-2.4-Node.js-Based开发环境