Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92355486
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355487
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355488
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355479
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355490
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355491
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355492
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355493
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355494
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355495
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355496
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355497
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355498
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355499
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355500
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355501
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355502
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355503
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355494
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355505
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355506
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355507
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355508
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355509
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355510
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355511
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355512
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355513
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355514
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355515
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355516
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355517
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355518
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355509
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355520
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355521
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355522
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355523
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355524
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355525
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355526
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355527
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355528
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355529
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355530
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355531
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355532
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355533
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355524
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355535
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355536
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象(2)-sdccf-ChinaUnix博客
  • 博客访问: 92355537
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 19:08:26

developerWorks



数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107165) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107163) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107155) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107154) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107153) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107150) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107145) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107143) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107142) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107141) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107135) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107134) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107133) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107132) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107126) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107125) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107124) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107123) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107118) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107117) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107116) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


数据类型

DB2 提供了一套丰富且灵活的数据类型。DB2 附带 INTEGERCHARDATE 等基本数据类型。它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境。在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围。

内置的数据类型分为四类:数字、字符串、日期时间和 XML。

用户定义的数据类型分为:单值类型、结构化类型和引用类型。

数字数据类型

如上图所示,数字数据类型又可分为三类。这些类型在可以存储的数字数据的范围和精度方面有所差异。

  • 整数SMALLINTINTEGERBIGINT 用来存储整数。例如,库存数量可以定义为 INTEGERSMALLINT 可以在 2 个字节中存储从 -32,768 到 32,767 的整数。INTEGER 可以在 4 个字节中存储从 -2,147,483,648 到 2,147,483,647 的整数。BIGINT 可以在 8 个字节中存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
  • 小数DECIMAL 用来存储有小数部分的数字。要定义这个数据类型,需要指定精度 (p,表示总的位数)和小数位 (s,表示小数点右边的位数)。定义为 DECIMAL(10,2) 的列可以保存的金额最高可为 99999999.99。数据库中需要的存储空间依赖于精度,按照公式 p/2 +1 计算。所以 DECIMAL(10,2) 需要 10/2 + 1 (即 6)字节。
  • 浮点数REALDOUBLE 用来存储数字的近似值。例如,非常小或非常大的科学计量值可以定义为 REALREAL 可以定义为具有 1 到 24 位之间的长度,需要 4 字节的存储空间。DOUBLE 可以定义为具有 25 到 53 位之间的长度,需要 8 字节的存储空间。FLOAT 可以视为 REALDOUBLE 的同义词。






字符串数据类型

如上图所示,DB2 为存储字符数据或字符串提供了几种数据类型。根据要存储的字符串的大小和字符串中的数据来选择数据类型。

下面的数据类型用来存储单字节字符串:

  • CHARCHARACTER 用来存储最多 254 字节的固定长度的字符串。例如,制造商可以给零件分配一个 8 字符长度的标识符,因此这些标识符在数据库中存储为 CHAR(8) 类型的列。
  • VARCHAR 用来存储可变长度的字符串。例如,制造商用不同长度的标识符表示大量零件,因此这些标识符存储为 VARCHAR(100) 类型的列。VARCHAR 列的最大长度为 32,672 字节。在数据库中,VARCHAR 数据只占用恰好所需的空间。

下面的数据类型用来存储双字节字符串:

  • GRAPHIC 用来存储固定长度的双字节字符串。GRAPHIC 列的最大长度是 127 个字符。
  • VARGRAPHIC 用来存储可变长度的双字节字符串。VARGRAPHIC 列的最大长度是 16,336 个字符。

DB2 还提供了存储非常长的字符串数据的数据类型。所有长字符串数据类型都具有相似的特征。首先,在数据库中此数据在物理上并没有与行数据存储在一起,这意味着需要进行额外处理才能访问此数据。长数据类型的长度最大可以定义为 2GB。但是,需要的空间只是实际使用的空间。长数据类型有:

  • LONG VARCHAR
  • CLOB(字符大对象)
  • LONG VARGRAPHIC
  • DBCLOB(双字节字符大对象)
  • BLOB(二进制大对象)






DB2 提供了三种存储日期和时间的数据类型:

  • DATE
  • TIME
  • TIMESTAMP

这些数据类型的值在数据库中存储为一种内部格式;但是应用程序可以将其作为字符串操纵。在检索这些数据类型之一时,它被表示为字符串。在更新这些数据类型时,将值包围在引号中。

DB2 提供了操纵日期时间值的内置函数。例如,可以使用 DAYOFWEEKDAYNAME 函数判断一个日期值是星期几。使用 DAYS 函数计算两个日期之间相差多少天。DB2 还提供了特殊寄存器以根据时间-日期时钟生成当前日期、时间或时间戳。例如,CURRENT DATE 返回一个表示系统上的当前日期的字符串。

日期和时间值的格式取决于在创建数据库时指定的数据库国家编码。有几种可用的格式:ISO、USA、EUR 和 JIS。例如,如果数据库使用 USA 格式,那么日期值的格式是 mm/dd/yyyy。在创建应用程序时,可以使用 BIND 命令的 DATETIME 选项改变格式。

TIMESTAMP 数据类型只有一种格式。字符串表示是 yyyy-mm-dd-hh.mm.ss.nnnnnn







DB2 提供了 XML 数据类型来存储格式良好的 XML 文档。

XML 列中的值存储为与字符串数据类型不同的内部表示。要在 XML 数据类型的列中存储 XML 数据,需要使用 XMLPARSE 函数对数据进行转换。可以使用 XMLSERIALIZE 函数将 XML 数据类型的值转换为 XML 文档的串行化字符串值。DB2 还提供了许多其他的内置函数来操纵 XML 数据类型。







DB2 允许用户定义适合自己应用程序的数据类型。有三种用户定义的数据类型:

  • 用户定义的单值类型:基于内置类型定义新的数据类型。这个新类型具有该内置类型相同的功能,但可以使用它确保只比较相同类型的值。例如,可以基于 DECIMAL(10,2) 定义一个加元类型(CANDOL)和一个美元类型(USADOL)。这两种类型都基于同一种内置类型,但除非应用转换函数,否则无法比较它们。下面是创建 CANDOL 和 USADOL UDT 的 CREATE TYPE 语句:
    CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS
    CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS 
    

    DB2 自动生成函数来执行基本类型和单值类型之间的强制转换,还自动生成用于比较单值类型实例的比较操作符。下列语句显示了如何创建带有 CANDOL 类型列的表,以及如何使用 CANDAL 强制转换函数向表中插入数据:

    CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL )
    INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50) )  
              

  • 用户定义的结构化类型:创建由几个内置类型列组成的类型。然后,可以在创建表时使用这个结构化类型。例如,可以创建一种名为 ADDRESS 的结构化类型,它包含表示街道号码、街道名、城市之类的数据。然后在定义其他表(如职工表或者供应商表)时使用这种类型,因为这些表也需要同样的数据。另外,结构化类型还可以在层次结构中有子类型。这就允许将属于某一层次结构的对象存储在数据库中。
  • 用户定义的引用类型:在使用结构化类型时,可以使用引用类型定义对另一个表中行的引用。这些引用看起来与参照约束相似,然而,它们不强制表间有关系。表中的引用允许用不同的方法指定查询。

用户定义的结构化和引用类型是高级主题;这里的信息只作为对这些类型的介绍。







DB2 扩展器支持复杂的、非传统的数据类型。它们与 DB2 服务器代码分开打包,必须安装在服务器上,并必须安装在使用那些数据类型的每个数据库中。

IBM 和独立软件供应商提供许多 DB2 扩展器。IBM 最早提供的四个扩展器用于存储音频、视频、图像和文本数据。例如,DB2 Image Extender 可用于存储一本书的封面图像,而 DB2 Text Extender 可用于存储书的正文。现在,还有其他几个扩展器可用。DB2 Spatial Extender 可以用来存储和分析空间数据,XML Extender 用来管理 XML 数据。

DB2 扩展器是用用户定义类型和用户定义函数(UDF)的特性实现的。每个扩展器提供一个或多个 UDT、用于操作 UDT 的 UDF 和特定的应用程序编程接口(API),或许还提供其他工具。例如,DB2 Image Extender 包含:

  • DB2IMAGE UDT
  • 在 db2image 列中插入数据或从该列检索数据的 UDF
  • 根据图像特征进行搜索的 API

在使用这些数据类型之前,必须把扩展器支持安装在数据库中。每个扩展器的安装过程定义了数据库中所需的 UDT 和 UDF。然后,就可以在定义表时使用 UDT,在处理数据时使用 UDF。(关于 DB2 扩展器的更多信息见 本系列的第一篇教程。)

XML 数据类型是 DB2 9 中新增的,提供了用于处理 XML 文档的高级特性。使用 XML Extender 的应用程序和数据必须迁移为使用 DB2 中的本机 XML 支持。

阅读(107114) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~