数字

数据类型        精度          最小值                                        最大值                      


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

收藏于 2011-01-30
来自于百度空间

最新文章

  1. Pyqt 基础功能
  2. day1学习
  3. Linux终端打印命令使用介绍
  4. wpf telerik中的book控件
  5. Linux入侵检查思路及其命令 转自https://yq.aliyun.com/articles/24250?spm=5176.100239.blogcont24249.12.rbBrIh
  6. css权重
  7. 安装mysql数据库中的技巧、错误排查以及实用命令(持续更新)
  8. java搭建finagle(2)
  9. SAP Connector 3.0 .Net 开发
  10. 2015第29周六Spring
  11. framework层和native层实现联网控制(iptable方式)
  12. crawler_JVM_DNS_在爬虫中的应用
  13. IE6下绝对定位元素和浮动元素并列绝对定位元素消失
  14. Eval与Bind的区别
  15. 在gitlab上面创建私有库
  16. TYVJ1424-占卜DIY
  17. Oracle的to_char()函数使用
  18. swift的一些知识点(不断完善中)
  19. Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
  20. delphi 控制音量 静音的类

热门文章

  1. python入门-用户输入
  2. OpenACC Julia 图形
  3. 24. Swap Nodes in Pairs + 25. Reverse Nodes in k-Group
  4. Selenium Webdriver——操作隐藏的元素
  5. leetcode412
  6. win2008 server ping不同
  7. WebRTC内置debug工具,详细参数解读 chrome://webrtc-internals/
  8. as2 无法加载类或接口
  9. as3 string split方法一些注意
  10. UI5-文档-2.4-Node.js-Based开发环境