找到 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 中的任何一個。這將撤消進行的所有更改...

廣告