首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 Express-C 9 實戰實驗 13-14:SQL/XML 與 XQuery 進階操作、SQL Assist Wizard 實作

     編輯:DB2 教學

實驗目標

驗證 SQL/XML、XQuery 語法,體驗 DB2 Command Editor、IBM Data Studio (原 Developer Workbench) 及 SQL Assist Wizard 建立查詢。

前置條件

  • 已安裝 DB2 Express-C V9.5
  • 已建立並啟動 mydb 資料庫
  • 完成前序實驗內容

Part 1:SQL/XML 與 XQuery 練習

1. 兩種方式取得 ITEMS 表所有註解 XML 文件 (僅用 XQuery)

XQUERY db2-fn:XMLcolumn('ITEMS.COMMENTS');
XQUERY db2-fn:sqlquery("SELECT comments FROM items");

2. 為何 SELECT comments FROM items 輸出不同?

SQL 遇 NULL 值會回傳 NULL,XQuery 則不回傳任何內容 (空序列)。

3. 取得 ResponseRequested="No" 的 XML 文件對應 ID 與 BRANDNAME

SELECT id, brandname FROM items 
WHERE XMLEXISTS('$c/Comments/Comment[ResponseRequested="No"]' 
  PASSING ITEMS.COMMENTS AS "c");

Part 2:SQL Assist Wizard 建立查詢實作

練習 1:列出 1977-05-05 後受僱員工編號、名、姓 (依編號升序)

  1. 開啟 Command Editor,連接 SAMPLE 資料庫
  2. 啟動 SQL Assist Wizard (工具列圖示)
  3. FROM:選擇 EMPLOYEE 表 → 加入來源表
  4. SELECT:勾選 EMPNO, FIRSTNME, LASTNAME → 加入結果欄
  5. WHERE:欄位 HIREDATE、運算子 >、值輸入範例日期 → 修改為 DATE('1977-05-05') (顯式轉型最佳實務) → 加入搜尋條件
  6. ORDER BY:選 EMPNO、升序 → 加入排序欄
  7. 點擊「執行」預覽結果 → 「確定」回傳 Command Editor → 再次執行查看結果集

啟動命令行編輯器 啟動 SQL 助手 選擇 EMPLOYEE 表 選擇欄位 設定 WHERE 條件 選擇排序方式 查詢結果

-- 產生的 SQL
SELECT EMPLOYEE.EMPNO, EMPLOYEE.FIRSTNME, EMPLOYEE.LASTNAME
FROM ADIS00317.EMPLOYEE AS EMPLOYEE
WHERE EMPLOYEE.HIREDATE > DATE('1977-05-05')
ORDER BY EMPLOYEE.EMPNO ASC;

練習 2:列出非主管員工名、姓 (依姓、名排序)

SELECT FIRSTNME, LASTNAME FROM .EMPLOYEE
WHERE JOB NOT LIKE 'MANAGER'
ORDER BY LASTNAME, FIRSTNME;

練習 3:D11 部門全員調薪 15%

UPDATE .EMPLOYEE SET SALARY = SALARY * 1.15
WHERE WORKDEPT = 'D11';

練習 4:將專案 AD31112 權責轉給 Daniel S. Smith (需子查詢)

UPDATE .PROJECT SET RESPEMP = (
  SELECT EMPNO FROM .EMPLOYEE
  WHERE FIRSTNME = 'DANIEL' AND MIDINIT = 'S' AND LASTNAME = 'SMITH'
)
WHERE PROJNO = 'AD3112';

提示:SQL Assist Wizard 不支援 DML 內嵌子查詢,需分別建構子查詢與 UPDATE 再合併。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved