Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 4: Làm việc với dữ liệu DB2 potx

42 360 0
Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 4: Làm việc với dữ liệu DB2 potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 4: Làm việc với dữ liệu DB2 Roman B. Melnyk, Nhân viên phát triển thông tin, IBM Tóm tắt: Bài viết này giới thiệu về ngôn ngữ truy vấn cấu trúc - Structured Query Language (SQL) và cung cấp cho bạn sự hiểu biết về cách DB2® 9 sử dụng SQL để thao tác dữ liệu trong cơ sở dữ liệu quan hệ. Bài viết này là bài thứ tư nằm trong số bảy bài viết mà bạn có thể sử dụng để có được chứng chỉ DB2 9 cơ bản (Bài thi số 730). Trước khi bắt đầu Về bài viết này Bạn đã nghĩ tới việc có một chứng chỉ về các khái niệm cơ bản của DB2 (Bài thi số 730)? Nếu bạn nghĩ như thế thì bạn đã đến đúng chỗ. Loạt bảy bài hướng dẫn chuẩn bị thi chứng chỉ DB2 bao gồm những vấn đề cơ bản nhất những chủ đề mà bạn cần phải hiểu rõ trước khi bạn đọc câu hỏi sát hạch đầu tiên. Thậm chí, ngay cả khi bạn chưa có kế hoạch tìm kiếm chứng chỉ ngay bây giờ thì loạt bài viết này cũng là một nơi tuyệt vời để bạn bắt đầu học những vấn đề mới trong DB2 9. Về bài viết này Bài viết này giải thích cách mà DB2 sử dụng SQL để thao tác dữ liệu trong cơ sở dữ liệu quan hệ. Các tài liệu được cung cấp chủ yếu ở đây bao gồm các mục tiêu trong phần 4 của bài thi, phần có tiêu đề là "Làm việc với dữ liệu DB2 sử dụng SQL và XQuery". Bạn có thể nhìn thấy các mục tiêu này tại: http://www- 03.ibm.com/certify/tests/obj730.shtml. Các chủ đề chứa đựng trong bài viết bao gồm:  Giới thiệu về SQL  Mô tả về Data Manipulation Language (Ngôn ngữ thao tác dữ liệu (DML)) và các ví dụ giải thích cách sử dụng DML để thu được thông tin riêng biệt.  Ranh giới chuyển đổi  Thủ tục SQL và hàm do người dùng định nghĩa Mục tiêu Sau khi hoàn thành bài viết này, bạn có thể:  Hiểu cơ bản về SQL, cùng với các yếu tố trọng tâm trong ngôn ngữ SQL.  Sử dụng DML để lựa chọn, chèn, cập nhật hoặc xóa dữ liệu  Sử dụng câu lệnh COMMIT và ROLLBACK để quản lý giao dịch, và biết được những cái gì cấu thành nên ranh giới chuyển đổi  Tạo và gọi thủ tục SQL hoặc hàm do người dùng định nghĩa từ trình điều khiển dòng lệnh Các yêu cầu hệ thống Nếu bạn không thực sự chắc chắn để làm, bạn cần phải tải phiên bản thử nghiệm miễn phí của IBM DB2 9 để làm việc với bài viết này. Cài đặt DB2 sẽ giúp bạn hiểu một số khái niệm được nói tới trong bài thi lấy chứng chỉ DB2 9 cơ bản. Cài đặt DB2 không được đề cập đến trong bài viết này, nhưng tài liệu về tiến trình cài đặt có trong DB2 Information Center (Trung tâm thông tin của DB2). Những quy ước được sử dụng trong bài viết Quy ước những cụm từ màu sáng được sử dụng trong bài viết:  Monospaced được sử dụng cho câu lệnh SQL. UPPERCASE (cụm từ viết hoa) là từ khóa của SQL, và lowercase (cụm từ viết thường) là giá trị do người dùng đặt ra trong đoạn mã ví dụ.  Ngoại trừ trong đoạn mã, tên của đối tượng dữ liệu và tên của các cột trong bảng biểu được viết in hoa.  Cụm từ in nghiêng được dùng khi giới thiệu một thuật ngữ (term) mới hoặc để nhận biết một giá trị tham biến. Tất cả ví dụ trong bài viết đều dựa trên bộ cơ sở dữ liệu SAMPLE (Mẫu), đi kèm với DB2. Bởi vì đầu ra của mẫu đều được quy định trong hầu hết các trường hợp, bạn không cần phải truy cập vào kết quả để hiểu được các ví dụ. Ngôn ngữ truy vấn có cấu trúc (Structured Query Language) (SQL) Các phần của câu SQL SQL là ngôn ngữ được sử dụng để định nghĩa và thao tác các đối tượng dữ liệu SQL. Sử dụng SQL để định nghĩa một bảng dữ liệu, chèn dữ liệu vào bảng, thay đổi dữ liệu trong bảng và lấy dữ liệu từ bảng. Giống như tất cả các ngôn ngữ khác, SQL có cú pháp định nghĩa và một tập hợp các phần tử ngôn ngữ. Hầu hết các câu lệnh SQL đều chứa đựng một hoặc nhiều phần tử ngôn ngữ sau:  Các ký tự đơn lẻ có thể là các chữ cái (A-Z, a-z, $, #, và @, hoặc một thành phần trong tập ký tự mở rộng), các số (từ 0 đến 9), hoặc các ký tự đặc biệt (+, *, %, ).  Một mã thông báo là chuỗi gồm một hoặc nhiều ký tự. Chuỗi này không được chứa ký tự trống trừ khi đó là một định dạng đã được định nghĩa (một hoặc nhiều ký tự nằm giữa hai dấu ngoặc kép) hoặc là một hằng xâu ký tự.  Một định danh dạng SQL là một mã thông báo được dùng để tạo thành tên.  Kiểu dữ liệu của một giá trị xác định trong DB2 sẽ giải thích giá trị đó thế nào. DB2 hỗ trợ khá nhiều công cụ xây dựng kiểu dữ liệu và thậm chí hỗ trợ cả các kiểu do người dùng định nghĩa (UDTs).  Một hằng số chỉ rõ một giá trị. Chúng được phân ra thành nhiều loại như ký tự, ảnh, hằng số chuỗi hệ thập lục phân, số nguyên, số thập phân hoặc hằng số thực.  Một đăng ký đặc biệt (special register) là một vùng lưu trữ được xác định cho một thủ tục quản lý của cơ sở dữ liệu và được sử dụng để lưu trữ thông tin có thể tham chiếu bởi các câu lệnh SQL. Các mẫu của đăng ký đặc biệt (special registers) là: CURRENT DATE, CURRENT DBPARTITIONNUM, và CURRENT SCHEMA.  Một đoạn chương trình (routine) có thể là một hàm, một phương thức hoặc một thủ tục. o Một hàm thể hiện mối liên giữa một hoặc nhiều giá trị dữ liệu đầu vào với một hoặc nhiều giá trị kết quả. Hàm dữ liệu có thể là do người dùng định nghĩa hoặc có sẵn. Hàm của cột (hoặc cụm) hoạt động trên một tập hợp các giá trị trong cột để trả về một giá trị. Xem ví dụ:  SUM(sales) trả lại tổng các giá trị trong cột Sales.  AVG(sales) trả về thương của phép chia tổng giá trị trong cột Sales cho số lượng các giá trị có mặt trong cột đó.  MIN(sales) trả về giá trị nhỏ nhất trong cột Sales.  MAX(sales) trả về giá trị lớn nhất trong cột Sales.  COUNT(sales) trả lại số lượng giá trị khác 0 trên cột Sales. Hàm vô hướng (Scalar functions) hoạt động trên một giá trị để trả về một giá trị khác. Xem ví dụ:  ABS(-5) trả lại giá trị tuyệt đối của -5 kết quả là 5  HEX(69) trả lại biểu diễn dạng thập lục phân (hexadecimal)của số 69 - kết quả là 45000000.  LENGTH('Pierre') trả lại số lượng ký tự (mỗi ký tự là một byte) có mặt trong chuỗi "Pierre" Kết quả là 6. Đối với chuỗi đồ họa (GRAPHIC), hàm LENGTH trả về số lượng ký tự mà mỗi ký tự là 2 byte.  YEAR('03/14/2002') trả về thành phần năm của ngày 03/14/2002 kết quả là 2002.  MONTH('03/14/2002') trích rút thành phần tháng của ngày 03/14/2002 kết quả là 3.  DAY('03/14/2002') trích rút thành phần ngày của ngày 03/14/2002 kết quả là 14.  LCASE('SHAMAN') hoặc LOWER('SHAMAN') trả lại một chuỗi trong đó tất cả các ký tự của chuỗi đều được chuyển sang ký tự in thường kết quả là 'shaman'.  UCASE('shaman') hoặc UPPER('shaman') trả lại một chuỗi trong đó tất cả các ký tự đều được chuyển thành ký tự in hoa - - kết quả là, 'SHAMAN'. Các hàm do người dùng định nghĩa (User-defined) được ghi vào cơ sở dữ liệu trong danh mục hệ thống (có thể truy cập thông qua các mục SYSCAT.ROUTINES) sử dụng câu lệnh CREATE FUNCTION o Một phương thức (method) cũng thể hiện mối quan hệ giữa tập các giá trị dữ liệu đầu vào và tập các giá trị kết quả. Tuy nhiên, phương thức cơ sở dữ liệu được xác định rất cụ thể và rõ ràng, giống như một phần định nghĩa của kiểu cấu trúc do người dùng định nghĩa. Xem ví dụ, một phương thức gọi CITY (kiểu ADDRESS) được truyền giá trị đầu vào kiểu VARCHAR, và kết quả là một kiểu con của ADDRESS. Phương thức do người dùng định nghĩa (User- defined) được ghi vào cơ sở dữ liệu trong danh mục hệ thống (có thể truy cập thông qua mục SYSCAT.ROUTINES) sử dụng câu lệnh CREATE METHOD. Có rất nhiều thông tin về kiểu cấu trúc này, tham khảo Giới thiệu về các kiểu dữ liệu có cấu trúc và kiểu bảng (An introduction to structured data types and typed tables) . o Một thủ tục là một chương trình ứng dụng có thể bắt đầu bằng cách tự thực hiện câu lệnh CALL. Các đối số của các thủ tục là các giá trị vô hướng có thể là các kiểu khác nhau và có thể được sử dụng để đưa vào các thủ tục, hay nhận các giá trị trả về từ thủ tục. Thủ tục do người dùng định nghĩa (User-defined) được ghi vào cơ sở dữ liệu trong danh mục hệ thống (có thể truy cập thông qua danh mục SYSCAT.ROUTINES) sử dụng câu lệnh CREATE PROCEDURE.  Một biểu thức chỉ định một giá trị. Có những biểu thức chuỗi ký tự, có những biểu thức toán học, và những biểu thức rẽ nhánh (case), được dùng để chỉ rõ các kết quả đặc biệt dựa vào sự đánh giá của một hoặc nhiều điều kiện.  Một predicate (vị từ) chỉ ra điều kiện đúng, sai hoặc chưa biết về một hàng hoặc một nhóm. Có những loại sau: o Các basic predicate (vị từ cơ bản) so sánh hai giá trị với nhau (ví dụ, x > y). o Vị từ BETWEEN so sánh giá trị với một phạm vi của các loại giá trị. o Vị từ EXISTS kiểm tra sự tồn tại chắc chắn của các hàng. o vị từ IN so sánh một hoặc nhiều giá trị với một dãy các giá trị. o Vị từ LIKE tìm kiếm các chuỗi có mẫu nhất định o Vị từ NULL kiểm tra các giá trị null. Ngôn ngữ xử lý dữ liệu - Data Manipulation Language (DML) Sử dụng câu lệnh SELECT để tìm kiếm dữ liệu từ bảng cơ sở dữ liệu Vị từ SELECT được dùng để tìm kiếm bảng biểu hoặc dữ liệu hiển thị. Ở dạng đơn giản nhất, lệnh SELECT có thể được dùng để truy lục tất cả dữ liệu trong bảng. Ví dụ, để tìm kiếm tất cả dữ liệu của bảng STAFF từ cơ sở dữ liệu SAMPLE, sử dụng cú pháp sau: SELECT * FROM staff Dưới đây là một phần trong tập kết quả được trả bởi truy vấn này: ID NAME DEPT JOB YEARS SALARY COMM 10 Sanders 20 Mgr 7 18357.50 - 20 Pernal 20 Sales 8 18171.25 612.45 30 Marenghi 38 Mgr 5 17506.75 - Để giới hạn được số lượng của hàng trong bảng kết quả, sử dụng mệnh đề FETCH FIRST. Xem ví dụ: SELECT * FROM staff FETCH FIRST 10 ROWS ONLY Để giới hạn số lượng cột hiển thị từ bảng dữ liệu, liệt kê danh sách tên cột cách nhau bởi dấu phẩy. Xem ví dụ: SELECT name, salary FROM staff Sử dụng mệnh đề DISTINCT để loại bỏ các hàng trùng nhau trong tập kết quả. Xem ví dụ: SELECT DISTINCT dept, job FROM staff Sử dụng vị từ AS để chỉ định một tên có nghĩa vào biểu thức hoặc một mục trong danh sách lựa chọn. Xem ví dụ: SELECT name, salary + comm AS pay FROM staff Nếu thiếu mệnh đề AS, thì cột tìm thấy sẽ được đặt tên cột 2, điều này chỉ ra rằng đây là cột thứ hai trong tập kết quả. Sử dụng mệnh đề và vị từ WHERE để giới hạn số lượng của dữ liệu trả về bởi truy vấn. Sử dụng mệnh đề WHERE để lựa chọn các hàng cụ thể từ bảng, hoặc thêm một hoặc nhiều tiêu chuẩn lựa chọn, hoặc một điều kiện tìm kiếm. Một điều kiện tìm kiếm (search condition) gồm có một hoặc nhiều vị từ. Một vị từ chỉ rõ một hàng nào đó sẽ có giá trị đúng hoặc sai (xem Những phần của của câu SQL). Khi xây dựng các biểu thức tìm kiếm, cần chắc chắn rằng:  Chỉ áp dụng những phép toán số học cho kiểu dữ liệu số  Chỉ so sánh giữa các kiểu dữ liệu tương thích  Các giá trị ký tự được đặt trong cặp dấu ngoặc đơn  Xác định các giá trị ký tự chính xác giống như trong cơ sở dữ liệu Bây giờ, hãy xem một vài ví dụ sau.  Tìm kiếm tên của những nhân viên có mức lương nhiều hơn $20,000: "SELECT name, salary FROM staff WHERE salary > 20000" Câu lệnh được đặt trong cặp dấu ngoặc kép giữ cho hệ điều hành của bạn [...]... salary DESC Sử dụng liên kết để tìm kiếm dữ liệu trên nhiều bảng Một liên kết (join) là một truy vấn kết hợp dữ liệu từ hai bảng trở lên Việc làm này rất cần thi t để lựa chọn từ hai hoặc nhiều bảng bởi vì dữ liệu được yêu cầu thường bị phân tán Một liên kết sẽ thêm các cột vào tập các kết quả Ví dụ, một liên kết đầy đủ của cột hai - cột ba ở các bảng là một bảng gồm sáu cột Một liên kết đơn giản nhất... một danh sách ngày bán hàng từ bảng SALES Bảng SALES trong cơ sở dữ liệu SAMPLE chứa đựng các dữ liệu bán hàng, bao gồm cả số lượng các giao dịch thành công của một người bán hàng trên một ngày Thường có nhiều hơn một hồ sơ cho mỗi ngày Mệnh đề GROUP BY nhóm các dữ liệu được bán trong ngày, và hàm MAX trong ví dụ này sẽ trả về số lượng lớn nhất của loại hàng hóa được ghi cho mỗi ngày Một dạng khác của... các bảng con hoặc khung nhìn sử dụng dữ liệu từ các bảng nguồn Trong khi thực hiện, các hàng trong mục tiêu phù hợp với dữ liệu nguồn sẽ được cập nhật hoặc xóa, và các hàng không tồn tại trong mục tiêu sẽ được chèn thêm vào Ví dụ, giả sử bảng EMPLOYEE là bảng mục tiêu, bảng này sẽ cập nhật các thông tin về các nhân viên của công ty Thông thường, để cập nhật thông tin, văn phòng chi nhánh phải xử lý với. .. nhật dữ liệu lương (salary) cho nhân viên số thứ tự thứ 000010 vào trong bảng MY_EMP INSERT INTO my_emp (empno, firstnme, midinit, lastname, edlevel, salary) VALUES ('000010', 'CHRISTINE', 'I', 'HAAS', 18, 66600.00) Tại thời điểm này, dữ liệu mới chèn vào chỉ có mặt trong bảng MY_EMP bởi vì chưa trộn lẫn với bảng EMPLOYEE Câu lệnh MERGE sau đây sẽ chỉ ra nội dung của bảng MY_EMP và tích hợp chúng với bảng... chứa đựng các giá trị phù hợp cho các cột Manager và ID ở bảng bên trái (left table) (ORG) và bảng bên phải (right table) (STAFF), theo thứ tự định sẵn (Khi thực hiện liên kết hai bảng, bạn phải quy định bảng nào là bảng bên trái, bảng nào là bảng bên phải.) Outer joins (liên kết ngoại) trả về các hàng được tạo bởi toán tử liên kết nội, cộng thêm các hàng không được trả về bởi toán tử liên kết nội Có... gán tới cả bảng mục tiêu và bảng nguồn để tránh các tham chiếu bảng không rõ ràng trong điều kiện tìm kiếm Câu lệnh chỉ ra các cột nằm trong bảng MY_EMP Câu lệnh cũng chỉ ra các hành động sẽ được thực hiện khi một hàng trong bảng MY_EMP được tìm thấy phù hợp với dòng trong bảng EMPLOYEE, hoặc khi dòng này không phù hợp Truy vấn sau thực hiện lại một lần nữa trên bảng EMPLOYEE và trả về bản ghi của... đặt DB2 Application Development Client (Ứng dụng DB2 phát triển máy khách) trên cơ sở dữ liệu máy chủ (Xem bài viết đầu tiên trong loạt bài viết này để biết thêm thông tin về Application Development Client.) Sự phụ thuộc vào trình biên dịch C để tạo các thủ tục SQL đã bị loại bỏ trong phiên bản DB2 Universal Database 8 Tất cả các thao tác phụ thuộc vào trình biên dịch C bây giờ được trình bày bởi mã DB2generated... để cập nhật thông tin, văn phòng chi nhánh phải xử lý với từng bản ghi trong bảng EMPLOYEE gọi đến MY_EMP Câu lệnh MERGE có thể được dùng trong trường hợp này để cập nhật bảng EMPLOYEE với những thông tin chứa đựng trong bảng MY_EMP, là bảng nguồn cho toán tử merge Câu lệnh sau sẽ chèn một hàng cho nhân viên mới có số thứ tự là 000015 vào bảng MY_EMP INSERT INTO my_emp (empno, firstnme, midinit, lastname,... thể sau mệnh đề WHERE, DB2 sẽ tự cập nhật mọi hàng trong bảng hoặc trong khung nhìn! Sử dụng lệnh DELETE để xóa dữ liệu Câu lệnh DELETE được dùng để xóa các hàng dữ liệu từ bảng Xóa từng hàng thỏa mãn điều kiện chỉ ra sau mệnh đề WHERE Xem ví dụ: DELETE FROM staff WHERE id IN (1212, 1213) Nếu bạn không chỉ ra các giá trị cụ thể sau mệnh đề WHERE, DB2 sẽ xóa tất cả các hàng trong bảng và khung nhìn! Sử... UNION tạo ra một bảng kết quả được kết hợp từ một hoặc nhiều bảng kết quả khác  Toán tử tập hợp EXCEPT tạo ra một bảng kết quả chứa đựng tất cả các hàng được trả về bởi truy vấn đầu tiên, nhưng không phải là truy vấn thứ hai hay bất kỳ một truy vấn tiếp theo nào  Toán tử tập hợp INTERSECT tạo ra một bảng kết quả chứa đựng các hàng được trả về bởi tất cả các truy vấn Dưới đây là một ví dụ về truy vấn có . Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 4: Làm việc với dữ liệu DB2 Roman B. Melnyk, Nhân viên phát triển thông tin, IBM Tóm tắt: Bài viết này giới thi u về ngôn ngữ truy. kiếm dữ liệu từ bảng cơ sở dữ liệu Vị từ SELECT được dùng để tìm kiếm bảng biểu hoặc dữ liệu hiển thị. Ở dạng đơn giản nhất, lệnh SELECT có thể được dùng để truy lục tất cả dữ liệu trong bảng để tìm kiếm dữ liệu trên nhiều bảng Một liên kết (join) là một truy vấn kết hợp dữ liệu từ hai bảng trở lên. Việc làm này rất cần thi t để lựa chọn từ hai hoặc nhiều bảng bởi vì dữ liệu được

Ngày đăng: 07/08/2014, 09:23

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan