James Perry, Richard Newmark
Chương 4
Tạo và dùng câu truy vấn
Tra các dòng đã chọn trong bảng
Truy vấn là cách tốt nhất để trích nhóm các bản ghi từ bảng lớn. Truy vấn một bảng thì dễ tạo, rút gọn về danh sách dễ quản lý. Ta sẽ tạo truy vấn một bảng trên bảng tồn kho tblInventory. Nó chứa một số mô tả sản phẩm quan trọng gồm kiểu thức uống Beverage (chỉ gồm các giá trị cho phép là c hay t, viết tắt là cà phê coffee và trà tea) và liệu cà phê hay trà có được ướp hương (Flavored) hay không (trường này có giá trị Yes hay No). Các mô tả khác bao gồm nước xuất xứ (là bảng tra cứu trỏ đến bảng tblCountry và trả về tên nước qua việc dùng cột CountryID) và những chú thích Comments sống động về hạt cà phê và lá trà cụ thể. Hình 4.3 trình bày một số dòng trong bảng tồn kho. Chỉ xuất hiện các cột đã chọn, và kết quả được sắp giảm dần theo trường thức uống Beverage rồi theo tên ItemName – có được nhờ dùng lưới QBE.
Hình 4.3 Một số dòng trong bảng tblInventory.
Sẽ hữu ích nếu biết những công ty nào mà quản lý viên chuỗi cung ứng có thể liên hệ để đặt mua thêm sản phẩm (trường UnitsOnHand) đối với những sản phẩm có số lượng gần bằng 0 hay nhỏ hơn 0 (đặt mua sau). May thay, có một bảng liên quan chứa thông tin bổ sung vào các mặt hàng trong kho – tên và địa chỉ của tất cả nhà cung ứng. Quan hệ giữa tồn kho và nhà cung ứng là quan hệ nhiều-nhiều (M-M). Cơ sở dữ liệu quan hệ không thể giải quyết tốt quan hệ M-M, vì vậy vấn đề này được giải quyết bằng cách tạo bảng trung gian nối hai bảng lẽ ra có quan hệ nhiều-nhiều. Bảng trung gian sẽ qui về hai quan hệ một-nhiều với bảng tồn kho ở phía này và bảng nhà cung ứng ở phía kia. Bảng được tạo bằng cách lấy khóa chính ở mỗi bảng bỏ vào bảng nối mới. Hình 4.2 (góc phải trên) trình bày bảng nối này. Bảng được gọi là tblInvSup và cung cấp hai quan hệ một-nhiều liên kết bảng tồn kho tblInventory với bảng nhà cung ứng tblSuppliers.
Kế đến, bạn sẽ tạo một truy vấn đơn giản để định vị và hiển thị tất cả các cà phê không ướp hương liệu mà hạt cà phê được mô tả là “hard bean” (hạt cứng) trong trường chú thích Comments. (Cà phê hạt cứng được trồng ở độ cao cao hơn các loại cà phê khác và thường ngon hơn.)
BÀI TẬP 4.1: TẠO TRUY VẤN MỘT BẢNG
1. Kích CREATE tab rồi kích Query Design trong nhóm Queries. (Thường dễ tạo truy vấn hơn nếu không dùng Query Wizard.)
2. Kích kép tên bảng tblInventory từ danh sách trong hộp thoại Show Table, rồi kích nút Close. Nếu hộp thoại Show Table không xuất hiện, kích tab ngữ cảnh DESIGN rồi kích Show Table trong nhóm Query Setup.
3. Kéo các trường InventoryID, ItemName, Comments, Beverage, và Flavored từ danh sách trường tblInventory trong khung vào các ô thứ nhất đến thứ năm vào dòng Field của lưới QBE ở khung Criteria.
4. Xóa ô đánh dấu Show bên dưới Beverage và Flavored trong lưới QBE, vì bạn không muốn hiển thị các trường này trong kết quả - chúng có trong câu truy vấn để ta có thể dùng chúng trong việc qui định tiêu chí.
5. Gõ ba tiêu chí chọn sau vào dòng tiêu chí Criteria cho các cột đã định:
⦁ bên dưới cột Comments, gõ Like “*hard bean*” (có dấu nháy kép và dấu hoa thị ở hai đầu của chuỗi),
⦁ bên dưới cột Beverage, gõ “c” (có dấu nháy kép),
⦁ và bên dưới cột Flavored, gõ no (chữ thường hay hoa không quan trọng, nhưng đừng có dấu nháy kép quanh tiêu chí này hay bất kỳ tiêu chí Yes/No).
6. Chọn Datasheet View từ View menu để xem kết quả truy vấn (tập động dynaset).
7. Để xem kết quả rõ hơn, hãy mở rộng các cột tên mặt hàng ItemName và chú thích Comments. Bắt đầu với ItemName bằng cách kích kép đường phân chia ở bên phải cột tên. Rồi kéo đường bên phải cột Comments sang phải để lấp đầy khoảng trống. Nhớ là bạn có thể kích nút đóng/mở của Navigation Pane để tạo thêm khoảng trống nhằm xem kết quả rõ hơn.
Tập động dynaset cần giống với Hình 4.4. Truy vấn này đã được lưu với tên qryHardBeanCoffee trong cơ sở dữ liệu Chương 4, nên bạn không cần lưu. Cứ đóng câu truy vấn bạn vừa tạo.
Hình 4.4 Truy vấn một bảng và tập động dynaset.
Nếu bạn muốn xem mọi mặt hàng hoặc không ướp hương liệu hoặc là cà phê thì sao? Ta sẽ đặt một tiêu chí trên dòng Criteria và tiêu chí kia trên dòng “or” bên dưới tiêu chí trước. (Kiểu truy vấn này là kiểu truy vấn OR kinh điển.) Hình 4.5 trình bày truy vấn OR và một phần kết quả. Như đã chỉ ra ở dòng trạng thái, câu truy vấn đã trả về nhiều dòng – mọi thức uống (trà hay cà phê) không ướp hương liệu và mọi cà phê (cho dù có ướp hương liệu hay không).
Hình 4.5 Truy vấn với nhiều tiêu chí độc lập.
Không có nhận xét nào:
Đăng nhận xét