DB2数据类型(抄袭)

时间:2022-09-10 12:13:07

数字

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


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
来自于百度空间

DB2数据类型(抄袭)的更多相关文章

  1. DB2数据类型

    DB2数据库的内置数据类型主要分成数值型(numeric).字符串型(character string).图形字符串(graphic string).二进制字符串型(binary string)或日期 ...

  2. db2 数据类型

    数据类型: 字符串类型 描述 CHARACTER(n) n bytes定长字符串. n 大于0 不大于255. 默认 1. VARCHAR(n) 变长字符串,最大 n bytes. n大于 0 小于表 ...

  3. Oracle VS DB2 数据类型

    =========================Oracle VS DB2==================================== 本文转自:http://www.bitscn.co ...

  4. DB2 Vs MySQL系列 &vert; MySQL与DB2的数据类型对比

    随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多.进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据类型之间的转换. 相关阅读: 从商用到开 ...

  5. DB2常用sql函数 (转载)

    http://www.techonthenet.com/sql/index.php 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字 ...

  6. Oracle的Numer类型与C&comma;C&num;数据类型对应关系

    最近一直在编和Oracle数据库相关程序.Oracle的Number类型和C语言,C#语言类型的对应关系,在网络上查找很久,也没有找到说明文字.但在http://oracle.chinaitlab.c ...

  7. db2和oracle字段类型对比

    在网上找到一片关于oracle与DB2数据类型的比较,特记下来. Oracle DB2/400 Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项 DATE DATETIMETIMEST ...

  8. 从商用到开源:15个维度,全面剖析DB2与MySQL数据库的差异

    随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多.进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据类型之间的转换. 相关阅读: 从商用到开 ...

  9. DB2的sql函数

    转自:http://blog.chinaunix.net/uid-21162795-id-3587646.html 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在 ...

随机推荐

  1. Spring MVC学习笔记——POJO和DispatcherServlet

    POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB(Enter ...

  2. WebApi:自定义筛选器

    最近在项目中有这样一个需求,记录每次Api访问的调用时间,运行时间,传入数据,返回数据等信息. 第一反应就是添加一个类,用来实现相应的功能,然后在方法的代码中添加,但是这样的话,需要修改所有的方法的代 ...

  3. SVN技术交流提纲

    SVN技术交流提纲:http://lazio10000.github.io/tech/SVN/#/bored

  4. linux 下安装gsl

    访问 http://ftp.club.cc.cmu.edu/pub/gnu/gsl/下载最新版本的,现在最新的是gsl-1.16.tar.gz,已经是2013年更新的了.然后下载 安装 简便的安装过程 ...

  5. JAVA8永久代

    在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表. 在过去(当自定义类加载器使用不普 ...

  6. Img垂直居中

    IMG垂直居中问题 2011-02-22 10:51:00|  分类: CSS |  标签:垂直居中  div  align  img  vertical  |举报|字号 订阅    转载来自:htt ...

  7. java执行程序的内存分析系列专栏

    近段时间研究了java的程序执行过程中的内存分配,收获颇多,解决了我最近时间学习java的很多困惑点.写java内存分析系列的目的主要有两个,一来是希望给像我一样的java初学者一定的启发,希望也能解 ...

  8. 【python3之变量,输入输出,判断,循环】

    一.python的基础语法和规则 1.变量 ①.变量的命名规则 语法: (下划线或字母)+(任意数目的字母.数字或下划线) 变量名必须以下划线或字母开头,而后面接任意数目的字母.数字或下划线.下划线分 ...

  9. mysql 免安装版 启动服务马上关闭

    在my.ini 加入这一句 1.直接在后面加上一下的参数 [mysqld] port=3306 basedir=D:\mysql-5.7.17-win32 datadir=D:\mysql-5.7.1 ...

  10. &lbrack;vue&rsqb;声明式导航和编程式导航

    声明式导航和编程式导航 共同点: 都能进行导航,都可以触发路由,实现组件切换 区别: 写法不一样,声明式导航是写在组件的template中,通过router-link来触发,编程式导航写在js函数中, ...