• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > DB2 9 应用开发(733 考试)认证指南,第 1 部分

DB2 9 应用开发(733 考试)认证指南,第 1 部分

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了db2数据库下载,graco db2,db2,db2数据库,db2客户端工具等相关知识,希望本文的分享对您有所帮助
</div>

开始之前

本教程的内容

本教程介绍了不同类型的数据库对象和编程方法。在本教程中,我们将学习:

不同类型的数据库对象

模式与数据库对象之间的关系

SQL 例程的基本原理

编程接口的基础知识:动态 SQL、静态嵌入式 SQL、CLI 和 ODBC、.NET、JDBC 和 SQLJ、PHP、Perl、Python 以及 XML

应用程序数据访问相关的安全考虑

这是包含九篇教程的系列文章的第一篇,此系列用于为 DB2 9 Family Application Development 认证考试 (Exam 733) 作准备。本教程的内容主要涵盖了该考试第 1 部分的考察目标,标题为:“数据库对象和编程方法。”

学习本教程不一定要拥有一份 DB2 9。

哪些人应学习本教程?

要参加 DB2 9 Family Application Development 考试,必须已通过 DB2 9 Family Fundamentals 考试 (Exam 730)。可以使用 “DB2 Family Fundamentals 教程系列” 为后一考试作准备。该系列教程很受欢迎,已帮助许多人了解 DB2 系列产品的基本原理。

虽然要理解本教程描述的概念,不必完全掌握 Family Fundamentals 系列教程中讨论的所有内容,但应至少具备以下几个方面的基础知识:

DB2 实例

数据库

数据库对象

DB2 安全

本教程是可以帮助您为 Exam 733 作准备的方式之一。

DB2 数据库对象

基本数据库对象

数据库对象是构建数据库的原料。DB2 提供了不同类型的数据库对象,用于存储和表示不同的信息。可使用数据库定义语言 (DDL) 创建、修改和删除这些对象。要操作这些对象,请使用数据库操作语言 (DML),该语言包含 SELECT、UPDATE、INSERT 和 SELECT 语句。一些常用的数据库对象如下:

表

自定义数据类型

约束

视图

索引

如果您对这些基本的数据库对象不太熟悉,请查阅标题为 “使用 DB2 对象”(developerWorks,2006 年 7 月)的 Family Fundamentals 教程,了解背景信息。

除 Family Fundamentals 教程中介绍的数据库对象以外,还有一些其他对象,在开发 DB2 应用程序时比较有用。本教程将在此部分介绍这些对象。

在继续学习之前需要注意一点:在本文提供的示例中,对象名称以小写字母表示。不论 DB2 在何种平台上运行,它总是以大写形式存储名称,除非标识符的名称加了双引号 ("")。

例如,下列语句将创建一个表 employee(小写),它与表 EMPLOYEE(大写)具有相同的列定义。

  CREATE TABLE "employee" LIKE employee

别名

别名 是现有表、视图或昵称的备用名。别名还可作为其他别名的备用名。与对象类似,可创建或删除别名,别名可拥有相关的注释。以下是几个 CREATE ALIAS 语句示例:

  CREATE ALIAS aliastab1 FOR tab1;
  CREATE ALIAS bob.aliastab1 FOR tom.tab1;
  CREATE SYNONYM bob.aliastab2 FOR bob.aliastab1;

如您所见,CREATE ALIAS 语句非常简单。可使用与源对象相同的模式创建别名(如第一行所示),也可完全限定别名名称(如第二行所示)。用关键字 SYNONYM 替代 ALIAS(如第三行所示)也有效,这样做是为了与 DB2 for zSeries 兼容。

使用别名不需要具备特殊权限。但是,需要获得引用的底层对象相关的适当授权。要获得数据库对象权限的完整列表,请查阅标题为 “服务器管理”(developerWorks,2006 年 6月)的 DB2 DBA 认证教程。

前面提到可以为昵称 创建别名。昵称是引用联合系统上数据表或视图的数据库对象。但是,联合数据库支持超出了本教程的讨论范围。

要给别名添加注释,可使用以下语句:

  COMMENT ON aliastab1 IS 'My first alias on tab1'

要删除别名,可以与删除任何其他数据库对象一样,使用 DROP 语句:

  DROP ALIAS aliastab1

序列对象

序列 是允许自动生成值的数据库对象。与绑定到特定表的标识列不同,序列是全局的、独立的对象,可被同一数据库中的任何表使用。

标识列是一种特殊类型的序列对象。因此,标识列的特征也适用于序列对象。下面是 CREATE SEQUENCE 语句示例:

清单 1. CREATE SEQUENCE 语句

            CREATE SEQUENCE myseq AS INTEGER
    START WITH 360 
    INCREMENT BY 10
    NO MAXVALUE
    CYCLE
    CACHE 20

任何数值范围包含零值的整数数据类型都可用作序列值。这些类型包括 SMALLINT、INTEGER、BIGINT 或 DECIMAL。基于这些数据类型的自定义特殊类型也都可用作序列值。这进一步扩展了自定义特殊类型在应用程序中的应用。

如上面的清单 1 所示,可以通过指定序列的初始值来定制序列对象。在本例中,序列的初始值为 360。后续值的生成由 INCREMENT BY 子句控制。支持使用正、负常量生成升序、降序序列值。

默认情况下,序列生成的最小值和最大值受序列数据类型限制的约束。例如,INTEGER 序列值必须介于 -2,147,483,647 到 2,147,483,647 的范围之内。可在 DB2 SQL 参考指南(参见 参考资料)中找到所有数值数据类型的限制。要更改这种约束行为,可使用 MINVALUE 和 MAXVALUE 选项为生成的值设定界限。如果达到最小或最大值,则可使用另一个称作 CYCLE 或 NO CYCLE 的选项来指定序列值是否可循环。请注意:当 CYCLE 生效时,该序列可能生成重复的值。

CACHE 选项允许 DB2 在内存中保存一些预分配的值以改善性能。CACHE 20 是默认行为。关于此选项需要注意一点:如果 DB2 在停止时没有用完所有缓存的值,则所有未使用的缓存值将被丢弃。DB2 重新启动后,就会生成并缓存下一组值,导致产生值差异。如果您的应用程序不允许存在值差异,可考虑改为使用 NOCACHE 选项。

如果未使用缓存,若序列的数字生成速度很快,性能就会非常糟糕。每生成一个新值时就会写一个日志记录。因此,在一个请求中获取值并将其缓存在内存中,效率更高。

可使用 ALTER SEQUENCE 语句更改序列对象的特征。可以更改上面讨论的所有设置,但序列值的数据类型除外。要获得完整的语法图,请查阅 DB2 SQL 参考指南(参见 参考资料)。

删除序列对象与删除任何其他数据库对象一样。语句末尾的 RESTRICT 关键字用于防止在存在依赖项的情况下删除序列。这是默认行为。您可在语句中显式地指定 RESTRICT 关键字。

DROP SEQUENCE myseq RESTRICT

生成和检索序列值

序列 是数据库对象的一种类型;因此,其访问也由权限控制。默认情况下,只有序列的创建者、SYSADM 和 DBADM 拥有对象的 USAGE 权限。如果希望其他用户能使用该序列,需使用以下语句:

GRANT USAGE ON SEQUENCE seq_object_name TO PUBLIC

如果要更改序列对象的属性,需要有对象的 ALTER 权限:

GRANT ALTER ON SEQUENCE seq_object_name TO GROUP group_name

请查阅标题为 “服务器管理” 的 DB2 DBA 认证教程,了解关于 DB2 安全的更多信息。

系统提供了两个表达式用于生成和检索序列值。NEXT VALUE FOR seq-name 用于获得下一个序列值,而 PREVIOUS VALUE FOR seq-name 用于检索上一个生成的序列值。下面的清单 2 中的示例展示了这些表达式的用法。

清单 2. NEXT VALUE FOR 和 PREVIOUS VALUE FOR 表达式

          INSERT INTO t1 VALUES (NEXT VALUE FOR myseq, 'BOB');
INSERT INTO t1 VALUES (NEXT VALUE FOR myseq, 'PAT');
COMMIT;
INSERT INTO t1 VALUES (NEXT VALUE FOR myseq, 'GENE');
ROLLBACK;
INSERT INTO t1 VALUES (NEXT VALUE FOR myseq, 'PAUL');
VALUES PREVIOUS VALUE FOR myseq INTO :hostvar

假设以一个空表 t1 开始操作,并且 myseq 的下一个序列值为 1。禁用自动提交,执行上面的语句后,表 t1 将包含下列行:

1  NAME
-------  -------  
1  BOB
2  PAT
4  PAUL
  
3 record(s) selected.

虽然生成的 GENE 值发生了回滚,但 DB2 不会重用该值。因此,下一个为 PAUL 生成的序列值为 4 而不是 3。

上面清单 2 中的最后一个语句展示了 PREVIOUS VALUE 表达式的用法。主机变量 :hostvar 存储当前会话中生成的最后一个值。如果希望保存以前生成的任何值,应在生成下一个值之前保存前一个值。

临时表

顾名思义,临时表 不是永久数据库对象。临时表的行为跟普通表相似,但并不支持或需要所有特性和选项。它只在连接期间存在。连接关闭时,其中声明的所有临时表将被自动删除。

只有声明临时表的会话或应用程序可访问该临时表。如果两个应用程序创建了同名的临时表,则表的每个实例是惟一的。因此,无需担心出现临时数据冲突的情况;因为临时表只允许单个连接访问,所以无需进行锁定。这是临时表的主要性能优点之一。

声明临时表

要声明临时表,必须存在 USER 临时表空间,以便存储临时表的定义和内容。(USER 临时表空间与 SYSTEM 临时表空间不同;后者只在 DB2 内部用于执行排序等操作。)下面这个简单语句创建一个 USER 临时表空间:

CREATE USER TEMPORARY TABLESPACE usertempspace
MANAGED BY SYSTEM USING ('usertempspace')

声明全局临时表时,支持很多可选子句。 清单 3 中

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 创建一个空的IBM DB2 ECO数据库的方法
  • 常见数据库系统比较 DB2数据库
  • DB2数据库的安装
  • 常见数据库系统比较 DB2数据库
  • 在数据库应用项目的生命周期中充分利用 DB2 目录视图的最佳实践
  • 配置 DB2 pureScale 利用 DS8700 Metro Mirror 进行灾难恢复
  • 基于DB2及PHP的应用系统跨平台迁移详细步骤(一)
  • 基于DB2及PHP的应用系统跨平台迁移详细步骤(二)
  • DB2 最佳实践: DB2 数据库存储机制
  • DB2信息追凶

相关文章

  • 2017-06-28使用 IBM DB2 pureXML 和 ASP.NET 开发一个商店定位器应用程序
  • 2017-06-28浅谈IBM DB2的数据库备份与恢复
  • 2017-06-28构建基于 DB2 Everyplace 的 MIDP 应用程序
  • 2017-06-28SQL Server与Oracle、DB2的性能比较
  • 2017-06-28讲解主机DB2 9存储过程的规划和实施技巧
  • 2017-06-28DB2 V9.5 工作负载管理之阈值(THRESHOLD)
  • 2017-06-28验证DB2数据库的备份成功技巧
  • 2017-06-28DB2的数据类型
  • 2017-06-28DB2 Express-C 9 DBA 和开发人员实验教程,快速实验 3:处理实例、数据库和配置
  • 2017-06-28DB2 V9.7 新特性:支持 XML 数据的分区表

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 应用开发: Java:热力不断
    • 灵活有效的数据仓库解决方案:第1部分:客户互动和项目计划
    • 开发基于 DB2 Everyplace 产品的快递解决方案
    • DB2 9 for z/OS 迈向颠峰
    • 使用 DB2 重定向恢复跨平台复制 SAP ERP 系统
    • DB2常见问题1000问(之三)
    • DB2 Express-C:数据库开发者的免费利器
    • DB2 Spatial Extender 性能调优(1)
    • db2 HA环境下许可证的问题
    • 一个SQL存储过程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有