找到 150 篇文章 与 DB2 相关

DB2 中 JOIN 的示例和用法

Mandalika
更新于 2020 年 11 月 30 日 09:34:02

851 次浏览

问题:如何通过使用 join 从 DB2 表 ORDERS 和 TRANSACTIONS 中找到 ORDER_ID、TRANSACTION_ID 以及 TRANSACTION_STATUS?
解决方案:我们可以使用 INNER JOIN 查询从 ORDERS 和 TRANSACTIONS 表中找到 ORDER_ID、TRANSACTION_ID 和 TRANSACTION_STATUS。
例如,如果我们有以下 2 个 ORDERS 表。
ORDER_ID TRANSACTION_ID ORDER_DATE
Z22345 ITX4489 23-10-2020
Z62998 ITX4311 21-10-2020
Z56902 ITX3120 26-10-2020
 
TRANSACTION_ID TRANS_AMT TRANSACTION_STATUS
ITX4489 1128 已支付
ITX4311 2318 已支付
ITX3120 88956 未支付
ITX21675 612 已失败
我们可以使用如下所示的 inner join 查询。
示例
SELECT ORDER_ID, TRANSACTION_ID, TRANSACTION_STATUS FROM ORDERS INNER JOIN TRANSACTIONS ON
ORDERS.TRANSACTION_ID = TRANSACTIONS.TRANSACTION_ID
上述查询将返回以下结果。
ORDER_ID TRANSACTION_ID TRANSACTION_STATUS
Z22345 ITX4489 已支付
Z62998 ITX4311 已支付
Z56902 ITX3120 未支付
阅读更多内容

如何找到所有 ORDER_TOTAL 大于 ORDERS DB2 表中 ORDER_TOTAL 均值的 ORDER_ID

Mandalika
更新于 2020 年 11 月 30 日 09:32:42

158 次浏览

我们可以使用子查询找到 ORDER_TOTAL 大于 ORDERS 表中所有 ORDER_TOTAL 均值的 ORDER_ID。例如,如果我们有以下 ORDERS 表。ORDER_IDORDER_TOTALA223451867A629985634A569027615A5691187960A56915132A5691880363以下是找出所需数据的子查询。示例SELECT ORDER_ID, ORDER_TOTAL FROM ORDERS    WHERE ORDER_TOTAL > (SELECT AVG(ORDER_TOTAL) FROM ORDERS)上述查询的结果如下。ORDER_IDORDER_TOTALA2234587960A6299880363

当锁的数量超过限制时 COBOL-DB2 程序的行为

Mandalika
更新于 2020 年 11 月 30 日 09:31:38

803 次浏览

问题:当放置在表空间上的锁数量超出定义的限制时,COBOL-DB2 程序将如何表现?解决方案在 DSNZPARM 中定义了应用程序可以放在 DB2 资源(例如页面、表行等)上的锁的数量。如果表中页面和行级别锁的数量超过允许的限制,则会发生锁升级。在锁升级中,DB2 会释放它所持有的页面或行级别锁,并尝试获取表空间级别或更高的锁。在这种情况下,该应用程序现在具有更广泛的访问/范围来使用 DB2 ... 了解更多信息

如何找出优化器为特定查询所选择的访问路径?

Mandalika
更新于 2020 年 11 月 30 日 09:30:38

256 次浏览

DB2 优化器在数据库的整体性能中起着重要作用。优化器为每个查询选择最佳访问路径,通过该访问路径可以从数据库中获取数据。它识别要遵循的索引、查询谓词等。优化器自动选择访问路径,我们很容易使用 EXPLAIN DB2 命令找到访问路径。我们必须首先设置查询号,然后将其 SQL 查询放到三个简单的步骤中以找出其访问路径。例如,我们有一个 DB2 ORDERS 表,并且我们希望检查具有 ... 的 SELECT 查询 更多信息

ROW-ID 和 SEQUENCE 在 DB2 中的目的和用法

Mandalika
更新于 2020 年 11 月 30 日 09:29:16

1K+ 次浏览

问题:如何实现在 DB2 中针对每插入的新行在 DB2 列中自动生成唯一值的逻辑?解决方案我们可以在 DB2 表中实现一个逻辑,通过这个逻辑我们可以有一列,它将为每插入的新行自动生成一个值。此列可以用作主键,因此对于随机访问 DB2 表非常有用。此逻辑可以通过 ROW-ID 和 SEQUENCE 来实现。DB2 表的任何一列都可以定义为 ROW-ID 类型,随后 DB2 将自动分配一个新的 ... 了解更多信息

通过一个示例来说明 DB2 中子查询的目的和用法

Mandalika
更新于 2020 年 11 月 30 日 09:27:33

129 次浏览

问题:什么是 DB2 子查询以及子查询有什么用?并借助 ORDERS 表中的一个示例对子查询进行讲解。解答DB2 中的子查询是查询中的查询,即嵌套查询。子查询先执行,然后才是它的父查询。我们可以进行多达 15 级子查询。例如,如果我们在 DB2 中有以下 ORDERS 表。ORDER_IDORDER_TOTALZ223451267Z629986734Z569028815Z5691178990Z56915432Z5691877453如果我们想要从 ORDERS 表中提取 ORDER_TOTAL 大于总体平均值的所有订单,那么我们可以使用以下子查询。示例SELECT ORDER_ID FROM ORDERS WHERE ORDER_TOTAL > (SELECT AVG(ORDER_TOTAL) FROM ORDERS) ... 了解更多

在 DB2 表上使用 OUTER JOIN 有什么限制?

Mandalika
更新于 30-11-2020 09:26:31

427 次浏览

OUTER JOIN 的结果包含 WHERE 子句中匹配和不匹配的行。DB2 中的 OUTER JOIN 有两大限制。OUTER JOIN 的 WHERE 子句只能包含“=”关系运算符。在两个或更多个表的 OUTER JOIN 中不允许使用等,。此外,WHERE 子句中的两个或更多个条件只能与 AND 逻辑运算符一起使用,不允许使用其他逻辑运算符,如 OR、NOT。用于处理 NULL 运算符的函数(如 VALUE 和 COALESCE)不能与 OUTER JOIN 一起使用。例如,如果我们有以下 2 ... 了解更多

如何向 DB2 对象授予和取消用户的访问权限?提供 DB2 命令?

Mandalika
更新于 30-11-2020 09:25:20

589 次浏览

DB2 有 DCL 概念,通过该概念我们可以控制对 DB2 对象(如表、计划等)的访问。DCL 代表数据控制语言,我们可以使用它向用户提供和取消对 DB2 对象的访问权限。GRANT 命令将向用户授予对指定对象的访问权限,REVOKE 命令将取消用户的访问权限。例如,如果我们必须向用户 REL123X 提供对 ORDERS 表的 SELECT 和 UPDATE 访问权限,那么我们将执行以下命令。GRANT SELECT, UPDATE ON ORDERS TO REL123X如果我们想提供 INSERT 访问权限,那么我们将使用以下命令。GRANT ... 了解更多

如何在 ROLLBACK 之后继续锁定资源?

Mandalika
更新于 30-11-2020 09:23:42

211 次浏览

当任何应用程序正在使用某个资源(如表、表空间等)时,DB2 会锁定该资源。在 COBOL-DB2 程序中,如果我们正在修改或删除表中的数据,那么 DB2 会锁定。当我们发出 ROLLBACK 语句来还原数据库中的已做更改时,DB2 持有的所有锁都会默认释放。如果我们想在回滚后继续锁定资源,那么我们必须使用 ON ROLLBACK RETAIN LOCKS,而不是 ROLLBACK。例如,考虑已使用 FOR UPDATE OF 子句声明的光标 ORDER_CUR。因此,一旦 ... 了解更多

COBOL-DB2 程序中 SAVEPOINT 的目的和用法

Mandalika
更新于 30-11-2020 09:22:26

超过 2K 次浏览

问题:如何在 DB2 中使用 SAVEPOINT?在 DB2 中 SAVE-POINT 的目的是什么?请结合示例说明。解决方案SAVEPOINT 用于作为标记或标签来保存更改,而无需在数据库中提交。在对数据库进行更改后,我们可以提供一个命名的 SAVEPOINT 语句,然后在任何时间点,我们都可以使用 ROLLBACK 语句将更改回滚到此保存点。实际上,我们的 COBOL-DB2 程序中可以有多个 SAVEPOINT,并且我们可以使用 ROLLBACK 跳回到这些 SAVEPOINT 中的任何一个。这将撤消进行的所有更改...

广告