1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn SQL & XQuery cho IBM DB2, Phần 2: Các truy vấn cơ sở ppt

32 527 2

Đ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

Nội dung

Hướng dẫn SQL & XQuery cho IBM DB2, Phần 2: Các truy vấn cơ sở Cơ bản về truy vấn 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: Thông qua một loạt các ví dụ đơn giản, hướng dẫn này minh họa làm thế nào để lấy ra từ một cơ sở dữ liệu IBM® DB2® bằng các lệnh SELECT của SQL chuẩn. Hướng dẫn này mô tả cách lấy ra các hàng từ một bảng cơ sở dữ liệu quan hệ, lấy ra những cột cụ thể, lấy ra những hàng cụ thể, thực hiện các phép toán lôgic trên dữ liệu đã lấy ra và sử dụng các ký tự đại diện trong các điều kiện tìm kiếm. Hướng dẫn này là Phần 2 của loạt bài hướng dẫn SQL & XQuery cho loạt bài IBM DB2 . 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ọ. 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. Hướng dẫn này được viết cho DB2 9 Express-C trên nền UNIX®, Linux® và Windows® (trước đây gọi là Viper). Về hướng dẫn này Sử dụng một loạt các ví dụ đơn giản, hướng dẫn này minh họa cách lấy ra dữ liệu từ một cơ sở dữ liệu DB2 IBM bằng các lệnh SELECT của SQL tiêu chuẩn. Hướng dẫn này mô tả cách để:  Lấy ra các hàng từ một bảng cơ sở dữ liệu quan hệ  Lấy ra các cột cụ thể từ một bảng cơ sở dữ liệu quan hệ  Lấy ra các hàng cụ thể từ một bảng cơ sở dữ liệu quan hệ  Thực hiện các phép toán lôgic trên dữ liệu được lấy ra  Sử dụng các ký tự đại diện trong các điều kiện tìm kiếm 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ấnhay 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. Thông qua người hướng dẫn tìm ra tên cơ sở dữ liệu bạn cần nối tới. Đối với loạt bài này, tên cơ sở dữ liệu là aromadb. Để 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 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. Sáu mệnh đề của lệnh SELECT Có sáu mệnh đề có thể được sử dụng trong một câu lệnh SQL. Sáu mệnh đề này là SELECT, FROM, WHERE, GROUP BY, HAVING, và ORDER BY. Phải viết mã lệnh các mệnh đề trên theo một tuần tự cụ thể. Ở đây ta sẽ chỉ nói tóm tắt về từng mệnh đề. Bạn sẽ học về chúng kỹ hơn mỗi khi bắt gặp chúng sau này. 1. SELECT >(các) tên cột * 2. FROM bảng hoặc các khung cảnh 3. WHERE các điều kiện hoặc thuộc tính được đáp ứng 4. GROUP BY các tập con các hàng 5. HAVING một điều kiện chung như một nhóm 6. ORDER BY một ph ương pháp xếp loại Chú ý: (Các) tên cột đúng hơn nên được gọi là các phần tử, bởi vì lệnh SELECT hiển thị cả các cột có trong bảng lẫn các cột có thể do SQL tạo ra như một kết quả thực hiện truy vấn. Ví dụ truy vấn SELECT perkey, sum(dollars) FROM aroma.sales WHERE perkey < 50 GROUP BY perkey HAVING sum(dollars) > 8000 ORDER BY perkey; Về truy vấn Mệnh đề SELECT là nơi liệt kê các cột mà bạn quan tâm. SELECT hiển thị những gì bạn đưa vào đây. Có thể đặt vào mệnh đề SELECT một số các mục khác sẽ được giải thích sau. Trong ví dụ này, cột perkey và tổng của cột dollar được chọn. Mệnh đề FROM chỉ rõ bảng nơi bạn lấy thông tin từ đó. Có thể liệt kê nhiều hơn một bảng. Số lượng các bảng mà bạn có thể liệt kê tùy thuộc riêng từng hệ điều hành. Trong ví dụ này, cả hai cột được chọn ra từ bảng Sales. Hai mệnh đề SELECT và FROM là bắt buộc phải có; các mệnh đề còn lại là tuỳ chọn và dùng để lọc hay hạn chế, gộp nhóm hay kết hợp các mục dữ liệu và điều khiển việc sắp xếp kết quả. Mệnh đề WHERE là nơi chỉ rõ một điều kiện để lọc dữ liệu. Nó giúp bạn lọc dữ liệu không mong muốn ra khỏi kết quả cuối cùng. WHERE đưa ra một tập con các hàng trong bảng. Trong ví dụ này, chỉ các hàng có giá trị perkey thấp hơn 50 được chọn . GROUP BY cho phép nhóm dữ liệu để đạt được các kết quả có ý nghĩa hơn. Thay vì nhận được một số là tổng doanh thu tính bằng đôla của tất cả các hàng được chọn, bạn có thể phân chia thành từng nhóm theo perkey tđể nhận được các tổng doanh thu từng ngày. Trong ví dụ trên, việc này được thực hiện bằng chỉ thị GROUP BY perkey. HAVING đặt một điều kiện đối với các nhóm. Trong ví dụ này, truy vấn sẽ chỉ trả về những ngày có tổng doanh thu lớn hơn 8.000. ORDER BY sắp xếp thứ tự các hàng kết quả. Bạn có thể chọn sắp xếp các hàng kết quả bằng chỉ thị ASC (sắp theo thứ tự tăng dần) hay DESC (sắp theo thứ tự giảm dần). Giá trị mặc định là ASC. Lệnh SELECT là lệnh thường được dùng nhất của ngôn ngữ xử lý dữ liệu (DML). Các lệnh xử lý dữ liệu khác (UPDATE, INSERT, và DELETE) và hai thành phần nữa của SQL (ngôn ngữ định nghĩa dữ liệu và ngôn ngữ điều khiển dữ liệu) sẽ được bàn đến trong phần 6 của loạt bài này. Sử dụng lệnh SELECT để lấy ra dữ liệu Câu hỏi Những vùng nào, những hạt nào, những thị trường nào được định nghĩa trong cơ sở dữ liệu Aroma? Giải đáp Bước đầu tiên là xác định bảng có chứa các hàng và các cột có thể trả lời câu hỏi này. Trong phần 1, có một sơ đồ của các bảng trong AROMADB. Nhìn vào phần dưới, bên trái của sơ đồ, có một bảng gọi là Market. Bảng này có chứa các cột mktkey, hq_city, hq_state, district và region. Việc liệt kê nội dung của bảng này sẽ trả lời câu hỏi của chúng ta và có thể được thực hiện bằng lệnh SELECT của SQL. Ví dụ truy vấn SELECT * FROM aroma.market; Kết quả Mktkey Hq_city Hq_state District Region 1 Atlanta GA Atlanta South 2 Miami FL Atlanta South 3 New Orleans LA New Orleans South 4 Houston TX New Orleans South 5 New York NY New York North 6 Philadelphia PA New York North 7 Boston MA Boston North 8 Hartford CT Boston North 9 Chicago IL Chicago Central 10 Detroit MI Chicago Central 11 Minneapolis MN Minneapolis Central 12 Milwaukee WI Minneapolis Central 14 San Jose CA San Francisco West 15 San Francisco CA San Francisco West 16 Oakland CA San Francisco West 17 Los Angeles CA Los Angeles West 19 Phoenix AZ Los Angeles West Lấy ra dữ liệu: Lệnh SELECT Bạn sử dụng lệnh SELECT để lấy ra các cột và các hàng dữ liệu từ các bảng cơ sở dữ liệu; để thực hiện các phép toán số học đối với dữ liệu; để nhóm, để xếp thứ tự hay để đồng thời nhóm và xếp thứ tự dữ liệu. Trong đa số các trường hợp, lệnh SELECT gồm có một biểu thức truy vấn đơn giản bắt đầu bằng từ khóa SELECT và tiếp theo là một hoặc nhiều mệnh đề hay các mệnh đề con. Lệnh SELECT cơ bản nhất gồm có hai từ khóa, SELECT và FROM: SELECT column name(s) FROM table name(s) column name(s) Các tên cột hoặc biểu thức SQL được phân tách bằng các dấu phẩy. Một dấu sao (*) có thể được dùng để liệt kê tất cả các tên cột xuất hiện trong danh sách (các) tên bảng table name(s) Các tên bảng có thể là danh sách các bảng hay là một lệnh SELECT. Các tên bảng được phân tách bằng các dấu phẩy. (Các) bảng đư ợc tham chiếu phải chứa (các) tên cột xuất hiện sau từ khóa SELECT. Trong ví dụ này, lệnh FROM tham chiếu đến AROMA.MARKET. Sau này trong phần 3 sẽ thảo luận chi tiết hơn về quy ước đặt tên, Table Names and Schemas (Các tên bảng và lược đồ). Trong trường hợp này, mệnh đề FROM tham chiếu đến tên bảng đầy đủ. Phần đầu tiên là tên lược đồ và phần thứ hai là tên bảng. Các lược đồ rất có ích khi nhóm các bảng tương tự và các đối tượng DB2 khác. Trong cơ sở dữ liệu AROMADB, tất cả các bảng được thiết lập với lược đồ chung là AROMA . Dạng khác của lệnh SELECT SELECT mktkey, hq_city, hq_state, district, region FROM aroma.market Truy vấn trên sinh ra cùng một kết quả giống như SELECT * FROM aroma.market; tuy nhiên, thay cho việc sử dụng dấu sao (*) để liệt kê tất cả các cột, ở đây các tên cột đều được nêu ra. Chú ý: SELECT và FROM (và tất cả các từ khác viết bằng chữ hoa) là các từ khóa dành riêng của SQL. Các từ này phải được sử dụng chính xác đúng như đã định nghĩa trong SQL chuẩn. Chúng ta dùng định dạng chữ hoa trong bài này để làm cho các từ khóa dễ thấy hơn; SQL không phân biệt chữ hoa chữ thường, vì vậy các từ khóa có thể viết theo chữ hoa hay chữ thường đều được. Các lưu ý về cách dùng Dấu chấm phẩy (;) ở cuối của mỗi ví dụ trong hướng dẫn này không phải là một phần bắt buộc của cú pháp SQL. Theo quy ước, ngôn ngữ SQL bỏ qua các khoảng trống thừa, các dấu tab và các dấu hết dòng. Thế thì, vì dấu chấm phẩy là một dấu kết thúc câu lệnh, do đó không cần phải có nếu bạn chỉ thực hiện một lệnh đơn. Trong trường hợp bạn tạo ra một loạt các câu lệnh SQL thành kịch bản, dấu chấm phẩy sẽ là dấu kết thúc rõ ràng cho mỗi lệnh. Tuỳ thuộc vào công cụ SQL tương tác mà bạn sử dụng để nhập vào các truy vấn, có thể cần hay không cần một dấu kết thúc lệnh như thế. Khi sử dụng Bộ xử lý dòng lệnh để thực hiện nhiều lệnh SQL, dấu chấm phẩy là bắt buộc phải có để báo hiệu kết thúc của từng lệnh. Sử dụng danh sách SELECT để lấy ra các cột cụ thể Câu hỏi Những hạt nào và những vùng nào được định nghĩa trong cơ sở dữ liệu Aroma? Ví dụ truy vấn SELECT district, region FROM aroma.market; Kết quả District Region Atlanta South Atlanta South New Orleans South New Orleans South New York North New York North Boston North Boston North Chicago Central Chicago Central Minneapolis Central Minneapolis Central San Francisco West San Francisco West [...]... SELECT và cách lấy ra, nhóm và sắp xếp thứ tự các dữ liệu đã chọn ra từ các bảng quan hệ Hầu hết các câu hỏi được thảo luận trong hướng dẫn này được biểu diễn dễ dàng như các lệnh SELECT tiêu chuẩn và không phải là khó khăn gì cho cả người sử dụng lẫn SQL Các hướng dẫn còn lại của loạt bài này đề cập đến các câu hỏi khó hơn, các câu hỏi yêu cầu xử lý tuần tự, so sánh các giá trị gộp, xác lập các kết... Tất cả các chuỗi 'CLEAN', 'KLEEN', và 'VERY KLEEN' khớp với mẫu này Về truy vấn Ví dụ truy vấn lấy ra các tên của tất cả các hạt bắt đầu với các ký tự ‘Min’ và liệt kê các thành phố trong các lấy ra này Ký tự đại diện phần trăm (%) cho phép mọi tổ hợp ký tự (bao gồm cả các khoảng trống) xuất hiện sau 'n' trong' Min', nhưng các ký tự phía trước 'n' phải khớp chính xác với mẫu ký tự được lưu giữ Các lưu... Tuy được xây dựng từ các điều kiện đơn giản và sử dụng các từ nối AND, OR và NOT, các điều kiện phức tạp có thể thành khó hiểu May thay, SQL là tự do về định dạng, vì thế cấu trúc lôgíc của các điều kiện này có thể được làm rõ ra bằng cách sử dụng các ký tự tab, các khoảng trống và các ký tự xuống dòng để định nghĩa quan hệ lôgíc Về truy vấn Ví dụ truy vấn lấy ra và hiển thị tên các cửa hàng của Công... West Los Angeles West Lấy ra các cột cụ thể Bằng cách đặt tên cho các cột trong danh sách SELECT của lệnh SELECT, bạn có thể lấy ra một nhóm cột cụ thể từ bất kỳ bảng nào Các cột được trả về theo thứ tự mà bạn liệt kê trong danh sách SELECT Về truy vấn Ví dụ truy vấn yêu cầu một danh sách các hạt và các vùng tương ứng của chúng lấy từ bảng Market Các lưu ý về cách dùng Mặc dù các tên cột trong danh sách... Lấy ra các hàng cụ thể: Mệnh đề WHERE Bằng cách thêm vào một tập hợp các điều kiện lôgíc trong truy vấn, bạn có thể lấy ra một nhóm các hàng cụ thể từ một bảng Các điều kiện lôgíc được khai báo trong mệnh đề WHERE Nếu một hàng thỏa mãn các điều kiện này, truy vấn sẽ trả về hàng đó; nếu không thỏa mãn, hàng sẽ bị loại bỏ Các điều kiện lôgíc cũng được gọi là các điều kiện tìm kiếm, các thuộc tính, các ràng... lôgíc của các điều kiện một cách đơn giản, dễ hiểu và dễ bảo trì Luôn làm rõ cấu trúc lôgíc của các điều kiện hỗn hợp bằng các khoảng trống lớn, định nghĩa các khối lôgic bằng cách thụt dòng và áp đặt trình tự ưu tiên trong đánh giá biểu thức bằng các cặp dấu ngoặc Sử dụng ký tự đại diện dấu phần trăm (%) Câu hỏi Những thành phố nào nằm trong các hạt bắt đầu với các chữ cái Min? Ví dụ truy vấn SELECT... Milwaukee WI Minneapolis Sử dụng các toán tử so sánh Các điều kiện đánh giá đúng hay sai và có thể được biểu diễn bằng các toán tử so sánh hay các thuộc tính so sánh SQL gồm có các toán tử so sánh sau đây: Toán tử Tên = Bằng < Nhỏ hơn > Lớn hơn Không bằng >= Lớn hơn hoặc bằng . Hướng dẫn SQL & XQuery cho IBM DB2, Phần 2: Các truy vấn cơ sở Cơ bản về truy vấn 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,. 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ữ. 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

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

w