Bài 8: Truy vấn dữ liệu
1. Các khái niệm
a. Mẫu hỏi
- Trong CSDL, chứa các thông tin về đối tượng ta đang quản lí. Dựa vào nhu cầu thực tế công việc, người lập trình phải biết cách lấy thông tin ra theo yêu cầu nào đó
- Access cung cấp công cụ để tự động hóa việc trả lời các câu hỏi do chính người lập trình tạo ra
- Mẫu hỏi thường được sử dụng để:
+ Sắp xếp các bản ghi
+ Chọn các bản ghi thỏa mãn các điều kiện cho trước
+ Chọn các trường để hiển thị
+ Thực hiện tính toán trên dữ liệu lấy ra
+ Tổng hợp và hiển thị thông tin từ nhiều bảng hoặc mẫu hỏi khác
- Có 2 chế độ làm việc: Chế độ thiết kế và trang dữ liệu
b. Biểu thức trong Access
b.1. Các phép toán thường dùng
- Để thực hiện các tính toán và kiểm tra các điều kiện, ta phải biết cách viết các biểu thức đó
- Các biểu thức trong Access là: biểu thức số học, biểu thức điều kiện và biểu thức lôgic
- Các phép toán thường dùng:
+ Phép toán số học: +,-,*,/
+ Phép toán so sánh: <, >, <=,>=,=,<> (không bằng)
+ Phép toán Lôgic: AND (và), OR (hoặc), NOT (phủ định).
+ Phép toán ghép chuỗi: &
b.2. Các toán hạng trong tất cả các biểu thức
- Tên trường: (đóng vai trò các biến) được ghi trong dấu ngoặc vuông. Ví dụ: [TOAN], [LUONG]
- Hằng số: Ví dụ: 0.1; 1000000,…
- Hằng văn bản: được viết trong dấu nháy kép. Ví dụ: "Nam", "Nữ",…
- Biểu thức số học: Mô tả các trường tính toán trong mẫu hỏi. Ví dụ: MAT_DO: [SO_DAN]/[DIEN_TICH]
c. Các hàm số trong Access:
- Hàm số trong Access dùng để tính tóan các dữ liệu trên trường chỉ định. Một số hàm thông dụng để tính tóan trên trường có dữ liệu số như sau:
+ SUM: Tính tổng giá trị số trên trường chỉ định.
+ AVG: Tính giá trị trung bình các giá trị số trên trường chỉ định
+ MIN: Tìm giá trị nhỏ nhất của các số nằm trên trường chỉ định
+ MAX: Tìm giá trị lớn nhất của các số nằm trên trường chỉ định
+ COUNT: Đêm các ô khác rỗng nằm trên trường chỉ định
+ ROUND(a,n): làm tròn biểu thức số: a, đến n số lẻ.
Ví dụ về cách sử dụng hàm số ROUND((2*[TOAN]+2*[VAN]+[TIN_HOC])/5,1) là làm tròn biểu thức trong ngoặc đến 1 số lẻ
2. Tạo mẫu hỏi
- Để làm việc với mẫu hỏi, chọn Queries trong bảng chọn đối tượng.
- Có thể tạo mẫu hỏi mới bằng cách dùng thuật sĩ hoặc tự thiết kế.
- Các bước chính để tạo một mẫu hỏi bao gồm:
+ Chọn dữ liệu nguồn (các bảng và mẫu hỏi khác) cho mẫu hỏi;
+ Chọn các trường từ dữ liệu nguồn để đưa vào mẫu hỏi;
+ Khai báo các điều kiện để lọc các bản ghi cần đưa vào mẫu hỏi;
+ Chọn các trường dùng để sắp xếp các bản ghi trong mẫu hỏi;
+ Tạo các trường tính toán từ các trường đã có;
+ Đặt điều kiện gộp nhóm.
Chú ý:
- Không nhất thiết phải thực hiện tất cả các bước này.
- Có hai chế độ thường dùng để làm việc với mẫu hỏi: chế độ thiết kế và chế độ trang dữ liệu.
Trong chế độ thiết kế, ta có thể thiết kế mới hoặc xem hay sửa đổi thiết kế cũ của mẫu hỏi. Trên hình 1 dưới đây là thanh công cụ thiết kế mẫu hỏi.
Hình 1. Thanh công cụ thiết kế mẫu hỏi
Để thiết kế mẫu hỏi mới, thực hiện một trong hai cách sau:
- Cách 1: Nháy đúp vào Create query by using wizard.
- Cách 2: Nháy đúp vào Create query in Design view.
Hình 2. Mẫu hỏi ở chế độ thiết kế
Để xem hay sửa đổi thiết kế mẫu hỏi, thực hiện:
- Bước 1. Chọn mẫu hỏi cần xem hoặc sửa.
- Bước 2. Nháy nút .
Cửa sổ mẫu hỏi ở chế độ thiết kế gồm hai phần:
- Phần trên (nguồn dữ liệu) hiển thị cấu trúc các bảng (và các mẫu hỏi khác) có chứa các trường được chọn để dùng trong mẫu hỏi này.
- Phần dưới là lưới QBE (Query By Example - mẫu hỏi theo ví dụ), nơi mô tả mẫu hỏi. Mỗi cột thể hiện một trường sẽ được sử dụng trong mẫu hỏi. Nội dung của từng hàng gồm có:
+ Field: Khai báo tên các trường được chọn. Đó là các trường sẽ có mặt trong mẫu hỏi hoặc các trường dùng để lọc, sắp xếp, kiểm tra giá trị...
+ Table: Tên bảng chứa trường tương ứng.
+ Sort: Xác định (các) trường cần sắp xếp.
+ Show: Xác định (các) trường xuất hiện trong mẫu hỏi.
+ Criteria: Mô tả điều kiện để chọn các bản ghi đưa vào mẫu hỏi. Các điều kiện được viết dưới dạng biểu thức lôgic.
Khi đang ở chế độ thiết kế mẫu hỏi, ta có thể thực hiện mẫu hỏi để xem kết quả bằng cách nháy nút hoặc nút hoặc chọn lệnh View \(\rightarrow\) Datasheet View.
3. Bài tập
Khai thác CSDL: "QuanLyHocSinh", cần tạo mẫu hỏi cho biết danh sách học sinh có các điểm trung bình ở tất cả các môn từ 6,5 trở lên.
Hướng dẫn bước làm:
- Bước 1. Chọn đối tượng Queries;
- Bước 2. Chọn dòng lệnh Create query in Design view;
- Bước 3. Trong của sổ Show table \(\rightarrow\) chọn tên bảng hoặc mẫu hỏi \(\rightarrow\) Add \(\rightarrow\) Close;
- Bước 4. Mô tả điều kiện mẫu hỏi trong vùng lưới QBE. Trong lưới QBE, trên dòng Criteria, tại các cột Toan, Li, Hoa, Van, Tin gõ: >=6,5;
- Bước 5. Chạy mẫu hỏi bằng cách nháy vào nút hoặc nháy Query \(\rightarrow\) Run để thực hiện mẫu hỏi và xem kết quả;
- Bước 6. Lưu và đặt tên cho mẫu hỏi.
1. Các khái niệm
a. Mẫu hỏi
- Trong CSDL, chứa các thông tin về đối tượng ta đang quản lí. Dựa vào nhu cầu thực tế công việc, người lập trình phải biết cách lấy thông tin ra theo yêu cầu nào đó
- Access cung cấp công cụ để tự động hóa việc trả lời các câu hỏi do chính người lập trình tạo ra
- Mẫu hỏi thường được sử dụng để:
+ Sắp xếp các bản ghi
+ Chọn các bản ghi thỏa mãn các điều kiện cho trước
+ Chọn các trường để hiển thị
+ Thực hiện tính toán trên dữ liệu lấy ra
+ Tổng hợp và hiển thị thông tin từ nhiều bảng hoặc mẫu hỏi khác
- Có 2 chế độ làm việc: Chế độ thiết kế và trang dữ liệu
b. Biểu thức trong Access
b.1. Các phép toán thường dùng
- Để thực hiện các tính toán và kiểm tra các điều kiện, ta phải biết cách viết các biểu thức đó
- Các biểu thức trong Access là: biểu thức số học, biểu thức điều kiện và biểu thức lôgic
- Các phép toán thường dùng:
+ Phép toán số học: +,-,*,/
+ Phép toán so sánh: <, >, <=,>=,=,<> (không bằng)
+ Phép toán Lôgic: AND (và), OR (hoặc), NOT (phủ định).
+ Phép toán ghép chuỗi: &
b.2. Các toán hạng trong tất cả các biểu thức
- Tên trường: (đóng vai trò các biến) được ghi trong dấu ngoặc vuông. Ví dụ: [TOAN], [LUONG]
- Hằng số: Ví dụ: 0.1; 1000000,…
- Hằng văn bản: được viết trong dấu nháy kép. Ví dụ: "Nam", "Nữ",…
- Biểu thức số học: Mô tả các trường tính toán trong mẫu hỏi. Ví dụ: MAT_DO: [SO_DAN]/[DIEN_TICH]
c. Các hàm số trong Access:
- Hàm số trong Access dùng để tính tóan các dữ liệu trên trường chỉ định. Một số hàm thông dụng để tính tóan trên trường có dữ liệu số như sau:
+ SUM: Tính tổng giá trị số trên trường chỉ định.
+ AVG: Tính giá trị trung bình các giá trị số trên trường chỉ định
+ MIN: Tìm giá trị nhỏ nhất của các số nằm trên trường chỉ định
+ MAX: Tìm giá trị lớn nhất của các số nằm trên trường chỉ định
+ COUNT: Đêm các ô khác rỗng nằm trên trường chỉ định
+ ROUND(a,n): làm tròn biểu thức số: a, đến n số lẻ.
Ví dụ về cách sử dụng hàm số ROUND((2*[TOAN]+2*[VAN]+[TIN_HOC])/5,1) là làm tròn biểu thức trong ngoặc đến 1 số lẻ
2. Tạo mẫu hỏi
- Để làm việc với mẫu hỏi, chọn Queries trong bảng chọn đối tượng.
- Có thể tạo mẫu hỏi mới bằng cách dùng thuật sĩ hoặc tự thiết kế.
- Các bước chính để tạo một mẫu hỏi bao gồm:
+ Chọn dữ liệu nguồn (các bảng và mẫu hỏi khác) cho mẫu hỏi;
+ Chọn các trường từ dữ liệu nguồn để đưa vào mẫu hỏi;
+ Khai báo các điều kiện để lọc các bản ghi cần đưa vào mẫu hỏi;
+ Chọn các trường dùng để sắp xếp các bản ghi trong mẫu hỏi;
+ Tạo các trường tính toán từ các trường đã có;
+ Đặt điều kiện gộp nhóm.
Chú ý:
- Không nhất thiết phải thực hiện tất cả các bước này.
- Có hai chế độ thường dùng để làm việc với mẫu hỏi: chế độ thiết kế và chế độ trang dữ liệu.
Trong chế độ thiết kế, ta có thể thiết kế mới hoặc xem hay sửa đổi thiết kế cũ của mẫu hỏi. Trên hình 1 dưới đây là thanh công cụ thiết kế mẫu hỏi.
Hình 1. Thanh công cụ thiết kế mẫu hỏi
Để thiết kế mẫu hỏi mới, thực hiện một trong hai cách sau:
- Cách 1: Nháy đúp vào Create query by using wizard.
- Cách 2: Nháy đúp vào Create query in Design view.
Hình 2. Mẫu hỏi ở chế độ thiết kế
Để xem hay sửa đổi thiết kế mẫu hỏi, thực hiện:
- Bước 1. Chọn mẫu hỏi cần xem hoặc sửa.
- Bước 2. Nháy nút .
Cửa sổ mẫu hỏi ở chế độ thiết kế gồm hai phần:
- Phần trên (nguồn dữ liệu) hiển thị cấu trúc các bảng (và các mẫu hỏi khác) có chứa các trường được chọn để dùng trong mẫu hỏi này.
- Phần dưới là lưới QBE (Query By Example - mẫu hỏi theo ví dụ), nơi mô tả mẫu hỏi. Mỗi cột thể hiện một trường sẽ được sử dụng trong mẫu hỏi. Nội dung của từng hàng gồm có:
+ Field: Khai báo tên các trường được chọn. Đó là các trường sẽ có mặt trong mẫu hỏi hoặc các trường dùng để lọc, sắp xếp, kiểm tra giá trị...
+ Table: Tên bảng chứa trường tương ứng.
+ Sort: Xác định (các) trường cần sắp xếp.
+ Show: Xác định (các) trường xuất hiện trong mẫu hỏi.
+ Criteria: Mô tả điều kiện để chọn các bản ghi đưa vào mẫu hỏi. Các điều kiện được viết dưới dạng biểu thức lôgic.
Khi đang ở chế độ thiết kế mẫu hỏi, ta có thể thực hiện mẫu hỏi để xem kết quả bằng cách nháy nút hoặc nút hoặc chọn lệnh View \(\rightarrow\) Datasheet View.
3. Bài tập
Khai thác CSDL: "QuanLyHocSinh", cần tạo mẫu hỏi cho biết danh sách học sinh có các điểm trung bình ở tất cả các môn từ 6,5 trở lên.
Hướng dẫn bước làm:
- Bước 1. Chọn đối tượng Queries;
- Bước 2. Chọn dòng lệnh Create query in Design view;
- Bước 3. Trong của sổ Show table \(\rightarrow\) chọn tên bảng hoặc mẫu hỏi \(\rightarrow\) Add \(\rightarrow\) Close;
- Bước 4. Mô tả điều kiện mẫu hỏi trong vùng lưới QBE. Trong lưới QBE, trên dòng Criteria, tại các cột Toan, Li, Hoa, Van, Tin gõ: >=6,5;
- Bước 5. Chạy mẫu hỏi bằng cách nháy vào nút hoặc nháy Query \(\rightarrow\) Run để thực hiện mẫu hỏi và xem kết quả;
- Bước 6. Lưu và đặt tên cho mẫu hỏi.