Truy vấn nâng cao

Một phần của tài liệu GIÁO TRÌNH Mô đun HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG (Trang 68 - 78)

I. Giới thiệu về truy vấn

3 Truy vấn nâng cao

7. 3.1. Truy vấn tham số (Parameter Query)

a) Khái niệm

Một số truy vấn địi hỏi người dùng phải tự nhập điều kiện từ bàn phím trong mỗi lần thi hành. Các truy vấn này đa phần là các truy vấn thường được thực hiện nhiều lần, mỗi lần lại với một giá trị điều kiện khác nhau, thay vì phải thiết kế lại truy vấn sau mỗi lần thực hiện, cĩ thể tiết kiệm thời gian bằng cách tạo truy vấn tham số. Khi thực hiện loại này Access sẽ nhắc nhập điều kiện chọn trong hộp thoại Enter Parameter Value. Khi thực hiện truy vấn tham số, dữ liệu trong bảng kết quả của nĩ trình bày cĩ thể chỉnh sửa được.

Ví dụ:

61 Hình 3.25. Hộp thoại “Enter Parameter Value”

b) Các bước thực hiện truy vấn tham số

 Từ cửa sổ “Database”, click vào đối tưọng “Queries”

 Chọn nút “New” Chọn “Design View”  chọn “OK” hoặc double-click trên “Create Query in Design View”. Hộp

thoại “Show Table” xuất hiện.

 Trong bảng “Show Table” chọn tab “tables” để hiển thị các bảng tham gia vào truy vấn hoặc tab “Queries” để hiện các query hoặc tab “Both” để hiện cả tables và queries.

Hình 3.26.Cửa sổ New Query

 Chọn table hoặc query mà bạn muốn dùng trong query đang tạo và nhấn nút “Add” để hiển thị trong cửa sổ Select Query, lặp lại cho tất cả bảng và truy vấn cần dùng, sau đĩ nhấn “Close” để đĩng hộp thoại Show

Table.

 Đưa các trường từ các bảng (hoặc truy vấn) vào tham gia truy vấn mới bằng cách kéo các trường và thả vào hàng Field trong vùng lưới QBE (hoặc double- click vào tên trường cần hiển thị). Nếu hiển thị tất cả các trường trong một bảng thì double-click

vào * ở mỗi bảng. Hình 3.27.Cửa sổ Show Table

 Trong hàng Sort: Sắp xếp dữ liệu (nếu cĩ) (Ascending: tăng dần, Descending: giảm dần)

 Show: Cĩ hiển thị trường trong truy vấn hay khơng

 Trong hàng Criteria: Gõ vào chuỗi nhắc tham số cho các trường cĩ điều kiện (nếu cĩ)

62

Chú ý: Chuỗi nhắc tham số phải nằm giữa 2 dấu ngoặc vuơng ([]) và cĩ thể là

hằng, số, chuỗi, ngày… nhưng khơng được là một biểu thức.

Chúng ta cĩ thể quy định kiểu dữ liệu cho tham số hoặc khơng chọn cũng được, nếu khơng quy định kiểu dữ liệu cho tham số thì Access sẽ mặc định chọn dữ liệu trùng với kiểu dữ liệu được thiết kế cho trường ở bảng biểu, quy định kiểu dữ liệu tham số bằng cách Chọn Queries/ Parameter Query. Trong hộp thoại Query parameters: Trong mục parameter chọn tham số, trong mục DataType chọn kiểu dữ liệu tương ứng

 Click vào nút “Run” trên thanh cơng cụ để xem kết quả chạy Query vừa tạo.

 Lưu truy vấn

Như vậy, các bước thực hiện truy vấn tham số cũng giống như thực hiện truy vấn chọn, chỉ khác là gõ vào chuỗi nhắc tham số cho các trường chứa điều kiện tại hàng Criteria thay vì gõ vào điều kiện như truy vấn chọn.

c) Ví dụ:

Truy vấn tham số 1: Hãy lọc những thơng tin về Sinh Viên, cĩ nơi sinh nhập từ bàn

phím

 Tạo truy vấn chọn và đưa bảng SinhVien vào tham gia truy vấn

 Đưa tất cả các trường trong bảng SinhVien vào vùng lưới QBE

 Tại hàng Criteria của trường NoiSinh gõ vào chuỗi nhắc tham số [Hãy nhập vào nơi sinh]

 Chọn Queries/ Parameter Query, chọn kiểu tham số là Text

Hình 3.28. Vùng lưới QBE thiết kế và cửa sổ Query Parameters cho truy vấn tham số 1

63

 Sau khi chạy truy vấn thì xuất hiện thơng báo yêu cầu nhập vào nơi sinh

Hình 3.29. Cửa sổ yêu cầu nhập tham số truy vấn tham số 1

Truy vấn tham số 2: Tạo một truy vấn hiển thị danh sách Sinh viên cĩ ngày sinh

trong khoảng thời gian nào đĩ (Thời gian được nhập từ bàn phím) Truy vấn này cĩ nhiều tham số trên cùng một trường là NgaySinh

 Tạo truy vấn chọn và đưa bảng SinhVien vào tham gia truy vấn

 Đưa tất cả các trường vào vùng lưới QBE

 Tại hàng Criteria của trường NGAYSINH gõ vào chuỗi nhắc tham số: Between[Từ ngày] and [Đến ngày]

Hình 3.30. Vùng lưới QBE thiết kế truy vấn tham số 2

64 Hình 3.31. Cửa sổ Query Parameters thiết kế truy vấn tham số 2

 Khi chạy truy vấn sẽ cho kết quả sau

Hình 3.32. Cửa sổ yêu cầu nhập tham số truy vấn tham số 2

Truy vấn tham số 3: Hãy tạo một truy vấn để thể hiện tổng học bổng của một khoa

nào đĩ (Makhoa được nhập từ bàn phím), thơng tin hiển thị gồm: MaKhoa, TenKhoa, TongHB.

Đây là truy vấn tham số kết hợp với truy vấn tính tổng, chúng ta phải tiến hành tính tổng học bổng của trên mỗi khoa được gom nhĩm, và đưa chuỗi nhắc tham số vào trường mã khoa để khi chạy truy vấn thì nhập vào mã khoa

 Tạo một truy vấn chọn đưa bảng SinhVien và DMkhoa vào tham gia truy vấn.

 Đưa các trường MaKhoa, TenKhoa, HocBong vào vùng lưới QBE

 Chọn View/ Totals

 Trong hàng Total: Chọn Group by đối với trường MaKhoa, TenKhoa và Sum đối với trường HocBong

 Trong hàng Criteria đối của trường MaKH ta chọn tham số sau: [Nhập mã khoa]

65

8. 3.2. Truy vấn chéo (Crosstab Query)

a) Khái niệm

Truy vấn chéo là loại truy vấn dùng để tĩm lược dữ liệu theo chủng loại và trình bày kết quả dưới hình thức của một bảng thống kê, thể hiện các dịng dữ liệu lưu trữ trong bảng thành các cột khi chuyển ra ngồi. Truy vấn chéo thường dùng để so sánh dữ liệu. Khi thực hiện truy vấn chéo, dữ liệu trong bảng kết quả của nĩ trình bày khơng thể chỉnh sửa được

Ví dụ: Hãy thống kê mỗi khoa cĩ bao nhiêu sinh viên nam và bao nhiêu sinh viên

nữ

Hình 3.34. Bảng kết quả của thí dụ trên

Một yêu cầu như vậy phải dùng Crosstab Query. Đĩ là loại truy vấn duy nhất cĩ khả năng tạo bảng tham chiếu chéo: Tổng hợp từ một đến nhiều chỉ tiêu theo hàng (Row Heading), trên một hàng lại tổng hợp (chỉ một) chỉ tiêu khác theo cột (Column Heading), vùng giao nhau giữa hàng và cột thì hiện chỉ số tổng hợp của một (chỉ một) chỉ tiêu thứ ba (Value)

b) Xác định các yếu tố trong truy vấn chéo

 Tiêu đề cột (Column Heading): - Chỉ cĩ duy nhất một trường

- Giá trị của cột trong bảng làm tên cột trong query thì tên cột trong bảng làm tiêu đề cột

 Tiêu đề dịng (Row Heading): - Cĩ một hoặc nhiều trường

- Các tên cột cịn lại trong query sẽ là tiêu đề dịng

 Giá trị (Value)

- Duy nhất một trường (thơng thường là trường khĩa chính) - Vùng giao nhau giữa hàng và cột thể hiện chỉ số tổng hợp

Với ví dụ trên, ta thấy rằng 2 cột “Nam” và “Nữ” chính là giá trị của trường GioiTinh trong bảng SinhVien, nên trường GioiTinh chính là tiêu đề cột (chỉ cĩ duy nhất một trường), ngồi 2 cột “Nam” và “Nữ” cịn cĩ 2 cột cịn lại là MaKhoa và

66 TenKhoa chính là tiêu đề dịng, vùng giao giữa cột và hàng là số lượng sinh viên nên cột giá trị chính là MaSV (chỉ cĩ duy nhất một cột)

Hình 3.35. Bảng SinhVien trong CSDL QuanLySinhVien.mdb c) Các bước thực hiện tạo truy vấn chéo

 Từ cửa sổ “Database”, click vào đối tưọng “Queries”

 Chọn nút “New” Chọn “Design View”  chọn “OK” hoặc double-click trên “Create Query in Design View”. Hộp thoại “Show Table” xuất hiện.

 Trong bảng “Show Table” chọn tab “tables” để hiển thị các bảng tham gia vào truy vấn hoặc tab “Queries” để hiện các query hoặc tab “Both” để hiện cả tables và queries.

 Chọn table hoặc query mà bạn muốn dùng trong query đang tạo và nhấn nút “Add” để hiển thị trong cửa sổ Crosstab Query, lặp lại cho tất cả bảng và truy vấn cần dùng, sau đĩ nhấn “Close” để đĩng hộp thoại Show Table.

 Chọn Query/ Crosstab Query, lúc này cửa sổ hiện thêm một hàng mới là Crosstab

67 Hình 3.36. Cửa sổ thiết kế truy vấn chéo

 Đưa các trường tiêu đề cột, tiêu đề dịng và giá trị vào trong vùng lưới QBE

 Tiêu đề cột:

- Tại hàng Total: Bắt buộc chọn phép tốn Group by - Tại hàng Crosstab: Chọn Column heading

 Tiêu đề dịng:

- Tại hàng Total: Ít nhất một trong các trường phải chọn phép tốn Group by - Tại hàng Crosstab: Chọn Row Heading

 Giá trị:

- Tại hàng Total: Chọn phép tốn thích hợp - Tại hàng Crosstab: Chọn Value

 Trong hàng Sort: Sắp xếp dữ liệu (nếu cĩ)

 Show: Cĩ hiển thị trường trong truy vấn hay khơng

 Trong hàng Criteria: Đặt điều kiện (nếu cĩ)

 Click vào nút “Run” trên thanh cơng cụ để xem kết quả chạy Query vừa tạo.

 Lưu truy vấn d) Ví dụ

Truy vấn chéo 1: Hãy thống kê mỗi khoa cĩ bao nhiêu sinh viên nam và bao nhiêu

sinh viên nữ

Các yếu tố về tiêu đề cột, tiêu đề dịng và giá trị thì như đã phân tích xác định ở trên.

68

 Chọn Query/ Crosstab Query, đưa các trường GioiTinh, MaKh, TenKhoa, MaSV vào vùng lưới QBE

 Trường GioiTinh

- Tại hàng Total: Chọn Group by

- Tại hàng Crosstab: Chọn Column heading

 Trường MaKh, TenKhoa

- Tại hàng Total: Chọn Group by

- Tại hàng Crosstab: Chọn Row heading

 Trường MaSV:

- Tại hàng Total: Chọn Count - Tại hàng Crosstab: Chọn Value

Hình 3.37. Vùng lưới QBE thiết kế truy vấn chéo 1

Truy vấn chéo 2: Hãy tính tổng học bổng và đếm số lượng sinh viên theo giới tính

của mỗi khoa, theo mẫu sau:

Hình 3.38. Yêu cầu kết quả truy vấn chéo 2

Với ví dụ trên, 2 cột “Nam” và “Nữ” chính là giá trị của trường GioiTinh trong bảng SinhVien, nên trường GioiTinh chính là tiêu đề cột (Groupby), ngồi 2 cột “Nam” và “Nữ” cịn cĩ 2 cột cịn lại là TenKhoa và TongSV chính là tiêu đề dịng (TenKhoa dùng phép tốn Groupby cịn TongSV thì dùng Count trên trường MaSV), vùng giao giữa cột và hàng là tổng học bổng nên cột giá trị chính là HocBong (dùng

69 phép tốn Sum). Như vậy, qua ví dụ trên chúng ta thấy rằng khơng phải lúc nào các trường tiêu đề dịng cũng dùng phép tốn Group by mà chỉ cần ít nhất một phép tốn Group by là được, cịn trường giá trị khơng phải lúc nào cũng là trường làm khĩa chính mà thơng thường là trường khĩa chính, cịn ở ví dụ này là trường HocBong.

 Tạo truy vấn, đưa các bảng DMkhoa và SinhVien vào tham gia truy vấn

 Chọn Query/ Crosstab Query, đưa các trường GioiTinh, TenKhoa, MaSV, HocBong vào vùng lưới QBE

 Trường GioiTinh

- Tại hàng Total: Chọn Group by

- Tại hàng Crosstab: Chọn Column heading

 Trường TenKhoa

- Tại hàng Total: Chọn Group by

- Tại hàng Crosstab: Chọn Row heading

 Trường MaSV: Đổi tên thành TongSV - Tại hàng Total: Chọn Count

- Tại hàng Crosstab: Chọn Row heading

 Trường MaSV:

- Tại hàng Total: Chọn Count - Tại hàng Crosstab: Chọn Value

70

Một phần của tài liệu GIÁO TRÌNH Mô đun HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG (Trang 68 - 78)

Tải bản đầy đủ (PDF)

(158 trang)