Hướng dẫn SQL & XQuery cho IBM DB2, Phần 6: Ngôn ngữ định nghĩa dữ liệu và ngôn ngữ kiểm soát dữ liệu ppt

34 673 2
Hướng dẫn SQL & XQuery cho IBM DB2, Phần 6: Ngôn ngữ định nghĩa dữ liệu và ngôn ngữ kiểm soát dữ liệu ppt

Đ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

Hướng dẫn SQL & XQuery cho IBM DB2, Phần 6: Ngôn ngữ định nghĩa dữ liệu và ngôn ngữ kiểm soát dữ liệu Tổng quan về các thành phần DML, DDL, và DCL của SQL Pat Moffatt, Giám đốc Chương trình quản lý thông tin, Sáng kiến học đường, IBM Bruce Creighton, Chuyên viên lập kế hoạch các phần kỹ năng, IBM Jessica Cao, Chuyên viên phát triển các công cụ đào tạo, IBM Tóm tắt: Hướng dẫn này, Phần 6 của loạt bài hướng dẫn SQL & XQuery cho IBM DB2 , phát triển theo ngôn ngữ xử lý dữ liệu (DML) và giới thiệu ngôn ngữ định nghĩa dữ liệu (DDL) và ngôn ngữ kiểm soát dữ liệu (DCL). Nó cũng bàn luận đến các lệnh SQL khác lệnh SELECT. Trước khi bạn bắt đầu Về loạt bài này Loạt bài hướng dẫn này dạy các chủ đề SQL từ cơ bản đến nâng cao và các chủ đề XQuery cơ bản. Nó cũng chỉ ra cách diễn đạt các câu hỏi nghiệp vụ thường gặp bằng các truy vấn cơ sở dữ liệu sử dụng các câu truy vấn SQL hay các câu truy vấn XQuery. Những người phát triển ứng dụng và những người quản trị cơ sở dữ liệu có thể sử dụng hướng dẫn này để nâng cao các kỹ năng truy vấn cơ sở dữ liệu của mình. Các thành viên tham gia sáng kiến học đường IBM có thể sử dụng loạt hướng dẫn này như một phần trong chương trình giảng dạy cơ sở dữ liệu của họ. Loạt bài hướng dẫn chỉ ra cách diễn đạt các câu hỏi kinh doanh thường gặp như các truy vấn cơ sở dữ liệu khi sử dụng SQL hay các XQuery. Tất cả các ví dụ trong bài này là dựa trên Aroma, một cơ sở dữ liệu mẫu chứa các dữ liệu doanh thu về các sản phẩm cà phê và chè đã bán trong các cửa hàng trên khắp nước Mỹ. Mỗi ví dụ gồm có ba phần:  Một câu hỏi kinh doanh dưới dạng ngôn ngữ thường ngày  Một hoặc nhiều ví dụ truy vấn, được biểu diễn bằng SQL hay XQuery  Một bảng các kết quả trả về từ cơ sở dữ liệu Hướng dẫn này được thiết kế để cho phép các học viên học tập ngôn ngữ SQL và XQuery. Cũng như học bất cứ cái gì khác, việc bổ sung thêm các bài tập thực hành là rất quan trọng. Dữ liệu và các định nghĩa bảng sẽ tạo điều kiện thuận lợi cho các bài tập thực hành này. Đối với các sinh viên sử dụng tài liệu này như một phần của khoá học, hãy nhận từ thầy hướng dẫn của mình các chỉ dẫn để kết nối tới cơ sở dữ liệu Aroma và tìm hiểu mọi sự khác biệt giữa hướng dẫn và cài đặt tại máy cục bộ của mình. Cảm ơn bạn lựa chọn IBM® DB2® để nghiên cứu về các máy chủ dữ liệu lai, phục vụ dữ liệu với cả hai cấu trúc: cấu trúc quan hệ thuần khiết lẫn cấu trúc pureXML. Hướng dẫn này được viết cho Express-C 9 DB2 trên nền Linux®, UNIX®, và Windows®. Về hướng dẫn này Tất cả các phần trước của loạt bài này đã tập trung vào lệnh SELECT. Hướng dẫn này giới thiệu các thành phần và các lệnh khác SQL, bao gồm:  CREATE TABLE  INSERT  UPDATE  DELETE  ALTER TABLE  CREATE VIEW  CREATE INDEX  DROP TABLE  GRANT  REVOKE Kết nối tới một cơ sở dữ liệu Bạn cần kết nối tới một cơ sở dữ liệu trước khi có thể sử dụng các câu lệnh SQL để truy vấn hay xử lý dữ liệu. Lệnh CONNECT kết hợp một kết nối cơ sở dữ liệu với một tên người sử dụng. Đối với loạt bài này, tên cơ sở dữ liệu là aromadb. (Nếu bạn là sinh viên khi sử dụng phần này như một phần của khoá học, hãy thông qua thầy hướng dẫn để tìm ra tên cơ sở dữ liệu bạn cần nối tới.) Để kết nối tới cơ sở dữ liệu aromadb, gõ lệnh sau đây vào trong bộ xử lý dòng lệnh DB2: CONNECT TO aromadb USER userid USING password Đối với sinh viên khi sử dụng phần này như một phần của khoá học, thay thế "userid" và "password" bằng số ID và mật khẩu của người sử dụng mà bạn đã nhận được từ thầy hướng dẫn. Nếu máy không hỏi userid và password thì chỉ cần gõ vào lệnh sau đây: CONNECT TO aromadb Thông điệp sau báo cho bạn biết rằng đã tạo kết nối thành công: Database Connection Information Database server = DB2/NT 9.0.0 SQL authorization ID = USERID Local database alias = AROMADB Khi đã kết nối được, bạn có thể bắt đầu sử dụng cơ sở dữ liệu. Các thành phần SQL SQL gồm có ba thành phần: ngôn ngữ xử lý dữ liệu (DML), ngôn ngữ định nghĩa dữ liệu (DDL) và ngôn ngữ kiểm soát dữ liệu (DCL). DML gồm các lệnh SELECT, UPDATE, INSERT, và DELETE; DDL gồm các lệnh CREATE, ALTER, và DROP ; ngôn ngữ kiểm soát gồm có các lệnh GRANT và REVOKE. Thành phần SQL Lệnh Mô tả SELECT Thường dùng để hiển thị các kết quả truy vấn. UPDATE Thường dùng để thay đổi các giá trị hiện có trong các bảng. UPDATE ảnh hưởng đến dữ liệu tại mức cột. INSERT Thường dùng để thêm các hàng mới vào các bảng. INSERT ảnh hưởng đến dữ liệu tại mức hàng. DML DELETE Thường dùng để xóa các hàng kh ỏi các bảng. DELETE ảnh hư ởng đến dữ liệu tại mức hàng. CREATE TABLE Thường dùng để tạo ra các bảng mới. DDL ALTER Thường dùng để thêm, điều chỉnh TABLE hay bỏ các cột. CREATE VIEW Thường dùng để tạo ra các khung nhìn mới. CREATE INDEX Thường dùng để tạo ra chỉ số mới. DROP TABLE Thường dùng để xóa các bảng. GRANT Thường dùng để cấp quyền cho những người sử dụng cơ sở dữ liệu. DCL REVOKE Thường dùng để hủy bỏ quyền của những người sử dụng cơ sở dữ liệu. Các lưu ý về cách dùng Các hướng dẫn trước đây trong loạt bài này đã bàn về lệnh SELECT. Đó là lệnh được những người dùng cuối sử dụng nhiều nhất. Một số lệnh, như CREATE, GRANT, và REVOKE, có thể cần phải có quyền quản trị để thực hiện lệnh. Với tư cách là một người sử dụng, bạn có thể hay không thể được phép chạy các lệnh nào đó. Lệnh CREATE TABLE Câu hỏi Bộ phận tiếp thị đã bắt đầu giới thiệu một chương trình thành viên mới để làm tăng doanh thu. Các khách hàng có thể mua một "Gold Card" (Thẻ Vàng) và được hưởng chiết khấu, các quà tặng miễn phí và thông tin qua email về các hoạt động khuyến mại khác nhau. Mỗi cửa hàng được cung cấp các thẻ ghi số trước. Tạo ra một bảng mới trong cơ sở dữ liệu Aroma được gọi là Gold để lưu giữ thông tin về các khách hàng Gold Card. Nó cần phải có các cột để chứa các giá trị như một số nhận dạng (ID) thẻ duy nhất, khóa cửa hàng, họ, tên, email, và trạng thái. Ví dụ truy vấn CREATE TABLE aroma.gold (card_id SMALLINT NOT NULL PRIMARY KEY, storekey INTEGER NOT NULL, fname VARCHAR(20) NOT NULL, lname VARCHAR(20) NOT NULL, email VARCHAR(30), status VARCHAR(10) NOT NULL, FOREIGN KEY (storekey) REFERENCES aroma.store (storekey)); Kết quả Bạn có thể thực hiện một lệnh SELECT để xem kết quả của lệnh CREATE TABLE . SELECT * FROM aroma.gold; Card_id Storekey Fname Lname Email Status Cú pháp của lệnh CREATE TABLE CREATE TABLE table_name (column_name1 column_descrpition, column_name2 column_descrpition, column_name3 column_descrpition, , [FOREIGN KEY (column_name) REFERENCES tab le_name2 (column_name2)] ); Về truy vấn Truy vấn này sử dụng một lệnh CREATE TABLE để xây dựng một bảng có tên là Gold trong cơ sở dữ liệu Aroma. Lệnh CREATE phải bắt đầu với từ CREATE. Từ thứ hai nói cho DB2 biết sẽ tạo ra kiểu đối tượng nào (ở đây là bảng - table), còn từ thứ ba đặt tên đối tượng (Gold). Phần nằm trong dấu ngoặc đơn là vùng mô tả cột để định nghĩa cột. Mọi cột phải được gán ba phần: tên cột, kiểu dữ liệu, và đặc tính NULL. Mệnh đề PRIMARY KEY là tùy chọn. Nó bảo đảm chắc chắn rằng các giá trị trong cột card_id là duy nhất hai thẻ không thể có cùng số ID. Mệnh đề FOREIGN KEY cũng là tùy chọn. Nó liên kết cột storekey của bảng Gold với cột storekey của bảng Store. Điều này bảo đảm chắc chắn rằng khóa cửa hàng (store key) tồn tại và hợp lệ và hai cột chứa các giá trị có cùng kiểu dữ liệu. Để biết chi tiết hơn về lệnh CREATE TABLE , hãy tìm nó trong Trung tâm thông tin DB2 (xem Tài nguyên). Trung tâm được giới thiệu trong Phần 1 của loạt bài này. Tên cột Các bảng và các cột phải theo các quy ước đặt tên của DB2:  Ký tự đầu tiên của tên bảng phải là một ký tự chữ cái hay một trong các ký hiệu quốc gia. Chúng bao gồm các chữ cái A - Z, ký hiệu Đôla ($), ký hiệu (@), và ký hiệu số (#).  Các ký tự tiếp theo có thể chứa một tổ hợp các ký tự chữ cái, các chữ số 0- 9, và dấu gạch chân (_). Trong hầu hết các trường hợp, dấu gạch chân được sử dụng như một dấu phân tách trực quan.  Chiều dài tên của bảng/ cột thay đổi tùy theo nền hệ thống. Xin vui lòng xem SQL Reference Guide (Hướng dẫn Tham khảo SQL) về các đặc thù riêng (xem Resources). Kiểu dữ liệu Một cột phải lưu trữ các giá trị của một kiểu dữ liệu cụ thể. Numbers Tất cả các số có một dấu và một độ chính xác. Độ chính (Các số) xác là số các bit hay các chữ số, trừ dấu. Các số gồm có SMALLINT, INTEGER, BIGINT, REAL, DOUBLE và DECIMALS. Character string (Chuỗi ký tự) Một chuỗi ký tự) Một chuỗi ký tự là một chuỗi các byte. Chiều dài của chuỗi là số lượng các byte trong chuỗi. Nếu chiều dài bằng không, giá trị này được gọi là chuỗi rỗng. Các chuỗi ký tự gồm có chuỗi ký tự có chiều dài cố định và chuỗi ký tự có chiều dài thay đổi (VARCHAR, LONG VARCHAR, và CLOB). Graphic string (Chuỗi đồ họa) Một chuỗi đồ họa Một chuỗi đồ họa là một chuỗi của dữ liệu ký tự hai byte. Chuỗi đồ họa gồm có chuỗi đồ họa có chiều dài cố định và chuỗi đồ họa có chiều dài thay đổi. (Chuỗi nhị phân) Một chuỗi nhị phân Một chuỗi nhị phân là một chuỗi các byte. Nó thường được dùng để chứa dữ liệu không truyền thống, như các hình ảnh. Đối tượng lớn nhị phân (BLOB) là một chuỗi nhị phân. Xem các đối tượng lớn (LOBs) để biết thêm thông tin. Datetime values (Các giá trị ngày giờ) Các giá trị kiểu ngày giờ biểu diễn Date (ngày tháng), Time (thời giờ) và Timestamp (thời ấn) (là m ột chuỗi ký tự 14 ký số biểu diễn ngày tháng và thời giờ hợp lệ dư ới dạng yyyyxxddhhmmss ). Các giá trị kiểu ngày giờ có thể đư ợc sử dụng trong một số phép toán số học và phép toán chuỗi nhất định và tương thích với một số chuỗi ký tự nhất định; tuy nhiên, chúng không phải là chuỗi ký tự mà cũng không là các số. Các giá trị kiểu ngày giờ gồm có Date,Time, và Timestamp. Null value (Giá trị null) Giá trị null là m ột giá trị đặc biệt, khác với tất cả các giá trị khác null. Nó có nghĩa là không có mặt bất kỳ một giá trị nào khác tại cột đó trên dòng đang xét. Giá trị null tồn tại với tất cả các kiểu dữ liệu. XML DB2 9 là máy chủ cơ sở dữ liệu lai đầu tiên trên thế giới cho phép quản lý dữ liệu theo mô hình quan hệ và mô hình pureXML. DB2 9 đã đưa ra cơ chế tối ưu để lưu tữ dữ liệu XML cùng với cơ chế quan hệ vốn có của nó. Để biết các chi tiết về các kiểu dữ liệu, xem lại Phần1 của loạt bài này. Đặc tính NULL Tất cả Card_id, storekey, fname, và lname được định nghĩa như giá trị không null (NOT NULL) do chúng là các thông tin quan trọng mà mỗi hàng phải có. Đối với bảng này, một hàng không có card_id là vô nghĩa đối với ngôn ngữ định nghĩa dữ liệu và ngôn ngữ kiểm soát dữ liệu. Nếu một đặc tính null bị bỏ qua, nó sẽ bằng NULL theo mặc định. Email được cho phép là null do không phải tất cả khách hàng đều có e-mails. Họ vẫn có thể được hưởng các chiết khấu và các quà tặng miễn phí. Sau khi tất cả các cột đều được định nghĩa, các khóa chính và khoá ngoài được định nghĩa. Bạn không cần chỉ rõ khóa chính mà khóa ngoài tham chiếu đến bởi vì DB2 biết về khóa chính từ thông tin danh mục. Trước khi chuyển sang phần tiếp theo, bạn cần vào Trung tâm thông tin DB2 (xemTài nguyên) và đọc toàn bộ tài liệu trực tuyến về lệnh CREATE TABLE. Điều này sẽ giúp bạn trở nên quen thuộc với định dạng của tài liệu trợ giúp và xem lại những thứ bạn vừa mới học được. Lệnh INSERT Câu hỏi [...]... dụng cơ sở dữ liệu Truy vấn hủy bỏ các quyền UPDATE và DELETE khỏi người sử dụng có tên user02 cho bảng Sales trong cơ sở dữ liệu Aroma Để biết thêm chi tiết về lệnh DCL, tìm kiếm lệnh này trong Trung tâm thông tin DB2 (xem Tài nguyên.) Tóm tắt Hướng dẫn này giúp bạn tạo ra một bảng mới và thực hành các lệnh trong ngôn ngữ xử lý dữ liệu (DML), ngôn ngữ định nghĩa dữ liệu (DDL), và ngôn ngữ kiểm soát Lệnh... về các bảng hệ thống, xem Phần 1 của loạt bài này: "Metadata" Để biết thêm thông tin về lệnh DROP TABLE, tìm kiếm nó trong Trung tâm thông tin DB2 (xem Tài nguyên) Ngôn ngữ kiểm soát dữ liệu Thành phần thứ ba của SQL là ngôn ngữ kiểm soát dữ liệu (DCL) Trong DCL có các lệnh quan trọng như GRANT và REVOKE Các lệnh này kiểm soát người sử dụng có những quyền gì với cơ sở dữ liệu, ví dụ như việc chọn các... quyền được cấp cho người sử privilege_listdụng Các giá trị có thể gồm SELECT, INSERT, UPDATE, DELETE và ALL PRIVILEGES Về truy vấn Lệnh GRANT được dùng để cấp các quyền cho nhưng người sử dụng cơ sở dữ liệu Truy vấn cấp cho người sử dụng có tên là user02 các quyền chọn, chèn, cập nhật và xóa bảng Sales trong cơ sở dữ liệu Aroma Lệnh REVOKE Câu hỏi Đã quyết định rằng ngay khi các bản ghi được vào trong bảng... storekey, và trạng thái của các khách hàng Dòng đầu tiên của truy vấn đặt tên cho khung nhìn (gold_public) và định nghĩa các cột của nó (card_id, storekey, status) Tên gold_public phải là duy nhất bên trong lược đồ của nó Tên khung nhìn xuất hiện như một tên bảng mặc dầu nó không chứa dữ liệu Khung nhìn sẽ có ba cột gọi là card_id, storekey, và status, tương ứng với các cột card_id, storekey, và status... như việc chọn các hàng, cập nhật các bảng, xóa dữ liệu, thay đổi các cấu trúc bảng, và vân vân Với các vai trò khác nhau, những người sử dụng thực hiện các nhiệm vụ khác nhau và cần phải được cấp các quyền khác nhau Lệnh GRANT Câu hỏi Một người quản trị cơ sở dữ liệu mới được thuê để quản lý các bảng Sales và cần được cấp các quyền SELECT, INSERT, UPDATE, và DELETE Ví dụ truy vấn GRANT select, insert,... new_definition; Về truy vấn Truy vấn thay đổi kiểu dữ liệu card_id thành INTEGER, để hỗ trợ các số nguyên lên đến 10 chữ số Ngoài ra, chú ý rằng các giá trị NULL cho cột referrals mới được thêm vào là Y, với ý nghĩa là có thể có các giá trị null Chúng ta không chỉ rõ đặc tính null cho cột khi tạo ra cột này Để biết chi tiết hơn về các bảng hệ thống, xem Phần 1 của loạt bài này: "Metadata." Câu hỏi Hệ... Bạn có thể so sánh việc thực hiện một truy vấn không có chỉ mục và có dùng chỉ mục khi xem xét kế hoạch truy nhập Nhập truy vấn sau đây vào trong bộ soạn thảo lệnh và nhấp chuột vào nút Execute and Access plan Truy vấn sẽ được thực hiện và tạo ra một đồ thị biểu diễn kế hoạch truy nhập của truy vấn SELECT * from aroma.gold; Nhấp chuột vào phiếu Access Plan bên trong bộ soạn thảo lệnh để xem kế hoạch... aroma.gold; Kết quả SELECT * FROM sysibm.systables WHERE creator='AROMA'; NAME CREATOR CLASS AROMA DEAL AROMA LINE_ITEMS AROMA MARKET AROMA ORDERS AROMA PERIOD AROMA PRODUCT AROMA PROMOTION AROMA SALES AROMA STORE AROMA SUPPLIER AROMA Về truy vấn Truy vấn loại bỏ bảng Gold khỏi cơ sở dữ liệu Aroma Đây là một hành động không thể đảo ngược được Tất cả dữ liệu được cất giữ trong bảng bây giờ... bé và chỉ chứa một Emily Enright, nhưng nó có thể phát triển mạnh và chứa nhiều bản ghi có các tên và họ giống nhau Vì vậy luôn luôn sử dụng các mã nhận biết duy nhất là một thói quen an toàn Để biết thêm thông tin về lệnh UPDATE tìm kiếm nó trong Trung tâm thông tin DB2 (xem Tài nguyên) Lệnh DELETE Câu hỏi Frank Freeman đã huỷ bỏ tư cách thành viên của mình Hãy xóa bản ghi của anh ấy khỏi cơ sở dữ liệu. .. cột này có thể đạt tới các số id lớn hơn Hãy thay đổi cột card_id để chứa các giá trị kiểu INTEGER Kết quả Trước ALTER Trước khi bạn thay đổi kiểu dữ liệu của card_id, dùng lệnh SELECT bảng các cột hệ thống để xem loại dữ liệu hiện tại SELECT * FROM sysibm.syscolumns WHERE tbname='GOLD' AND tbcreator='AROMA'; NAME TBNAMETBCREATORREMARKS COLTYPE NULLS CARD_ID GOLD AROMA SMALLINTN EMAIL GOLD AROMA . Hướng dẫn SQL & XQuery cho IBM DB2, Phần 6: Ngôn ngữ định nghĩa dữ liệu và ngôn ngữ kiểm soát dữ liệu Tổng quan về các thành phần DML, DDL, và DCL của SQL Pat Moffatt,. bắt đầu sử dụng cơ sở dữ liệu. Các thành phần SQL SQL gồm có ba thành phần: ngôn ngữ xử lý dữ liệu (DML), ngôn ngữ định nghĩa dữ liệu (DDL) và ngôn ngữ kiểm soát dữ liệu (DCL). DML gồm các. & XQuery cho IBM DB2 , phát triển theo ngôn ngữ xử lý dữ liệu (DML) và giới thiệu ngôn ngữ định nghĩa dữ liệu (DDL) và ngôn ngữ kiểm soát dữ liệu (DCL). Nó cũng bàn luận đến các lệnh SQL

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

Từ khóa liên quan

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

Tài liệu liên quan