5.1. Truy vấn tạo bảng mới (Make Table Query)
Truy vấn tạo bảng sẽ tạo ra một bảng từ tất cả hoặc một phần dữ liệu từ một hoặc nhiều bảng.
a. Các bước thực hiện truy vấn tạo bảng mới
Bước 1: Tạo bảng chúng ta tạo truy vấn chọn và đưa bảng vào tham gia truy vấn. Đưa các trường vào vùng lưới QBE
Bước 2: ChọnDesign| Make Table
Bước 3: Trong mụcTable Name: Đặt tên cho bảng muốn tạo mới
- ChọnCurrent Database: CSDL hiện thời hoặc Another Database: Tạo bảng trong CSDL khác
- Chọn OK
Hình 2. 53. Tạo bảng SinhVienMoi bằng Make Table
Bước 4: Click vào nút “Run” trên thanh công cụ để xem kết quả chạy Query vừa tạo. Sau khi chạy truy vấn thì một bảng mới sẽ được tạo ra trong mụcTables
Bước 5: Lưu truy vấn
b. Truy vấn tạo bảng 1: Tính tổng sinh viên ở mỗi khoa, thông tin gồm: MaKhoa, TenKhoa, Tổng SV, kết quả lưu vào một bảng mới tên là TongSV_Khoa.
Đây là truy vấn tạo bảng mới kết hợp với truy vấn tính tổng, ngoài ra cũng có thể kết hợp truy vấn tạo bảng mới với những truy vấn khác đã học như truy vấn chéo, truy vấn chọn, truy vấn tham số… Thực ra truy vấn tạo bảng có bản chất dựa vào những truy vấn trên nhưng kết quả được lưu vào một bảng trong cửa sổ Tables
Bước 1: Thực hiện như truy vấn tổng 1 Bước 2: ChọnQuery/ Make Table Query
Bước 3: Trong mục Table Name: gõ vào TongSV_Khoa| Chọn Current Database| ChọnOK
Bước 4: Click vào nút “Run” trên thanh công cụ để xem kết quả chạy Query vừa tạo, thì Access sẽ thông báo là có bao nhiêu mẫu tin trong bảng mới vừa tạo, chọn Yes
Hình 2. 55. Hộp thoại thông báo số mẫu tin truy vấn tạo bảng 1
Sau khi chạy truy vấn thì một bảng mới sẽ được tạo ra trong mục Tables
Hình 2. 56. Cửa sổ Tables khi có bảng mới tạo
Bước 5: Lưu truy vấn
Lưu ý: Nếu chạy truy vấn này một lần nữa thì Access sẽ thông báo là xóa bảng TongSV_Khoa cũ đã tạo, sau đó tạo một bảng mới khác cùng tên và chèn các mẫu tin vào bảng mới đó.
Hình 2. 57. Thông báo xóa bảng cũ của Access
c. Truy vấn tạo bảng 2: Tạo bảng SV_TH chỉ hiện thị sinh viên thuộc khoa TH và trường Họ và tên được hiển thị trên cùng một cột.
Các bước thực hiện:
Bước 1: Creat|Query Design|
Bước 2: Tại bảng Show Table| chọn bảng có trường tham gia truy vấn -Tạo trường mới HoVaTenSV: [HoSV] & " " & [tenSV]
- Tại hàng Criteria của trường MaKH, gõ “TH”
Hình 2. 58. Cửa sổ thiết kế truy vấn tạo bảng 2
Bước 4: Click vào nút “Run”
Hình 2. 59. Hộp thoại thông báo số mẫu tin truy vấn tạo bảng 2
Bước 5: Lưu truy vấn
- Mở bảng SV_TN ở chế độ Datasheet View để xem kết quả
Hình 2. 60. Kết quả truy vấn tạo bảng 2
5.2. Truy vấn thêm dữ liệu (Append Query)
Truy vấn nối dữ liệu dùng để nối dữ liệu từ một bảng này vào sau một bảng khác hoặc thêm một mẫu tin vào một bảng.
a. Các bước thực hiện truy vấn thêm dữ liệu
Loại truy vấn nối dữ liệu từ một bảng này vào sau một bảng khác:
b. Truy vấn Appen 1. Giử sử có hai bảng dữ liệu SV_NN và SV_TH, cần thực hiện nối danh sách sinh viên từ bảng SV_NN sang bảng TH
Các bước thực hiện như sau:
Bước 1: Create| Query Design | trong hộp thoại Show Table chọn bảng SV_NN Bước 2: Chọn toàn bộ các trường của bảng SV_NN
Hình 2. 61. Cửa sổ thiết kế truy vấn cập nhật dữ liệu 1
Bước 4: Click vào nút “Run” . Xuất hiện hộp thoại thông báo dữ liệu được cập nhật
Bước 5: Lưu truy vấn
- Mở bảng SV_TH ở chế độ Datashet View để xem kết quả
Hình 2. 62. truy vấn cập nhật dữ liệu 1
Lưu ý:
Trong truy vấn thêm dữ liệu thì các trường được nối với nhau tương ứng phải cùng kiểu dữ liệu. Nếu các trường tương ứng không có cùng kiểu dữ liệu thì sẽ không được nối. Nếu các trường có Field size không phù hợp thì tuỳ theo việc nối dữ liệu mà sẽ cắt bớt hoăc thêm vào ký tự trắng.
Loại truy vấn thêm một bản ghi tự nhập vào một bảng đã có:
Tạo truy vấn chọn và trong hộp thoại Show Table sẽ không chọn một bảng nào hết.
Chọn Queries/Append Query. Hộp thoại Append xuất hiện: Chọn Current Database: CSDL hiện thời
Another Database: Tạo bảng trong CSDL khác
Trong mục Table Name: Chọn bảng nhận dữ liệu và chọn OK. Trong vùng lưới QBE của truy vấn:
- Tại hàng Field: Gõ vào dữ liệu mẫu tin cần thêm.
- Tại hàng Append to: Đưa các trường tương ứng của bảng nhận.
Nếu chạy truy vấn vừa tạo thêm một lần nữa thì Access sẽ xuất hiện thông báo lỗi vì dữ liệu khóa chính sẽ bị trùng lặp, cho nên truy vấn thêm dữ liệu chỉ được phép chạy một lần duy nhất.
Hình 2. 63. Access thông báo lỗi khi chạy truy vấn thêm dữ liệu lần 2
c.Truy vấn thêm dữ liệu 2: Hãy thêm một mẫu tin vào bảng MonHoc với dữ liệu tự nhập như sau: MaMH: 18, TenMH: “Lý thuyết đồ thị”, Số tiết :90
Bước 1: Create| Query Design | trong hộp thoạiShow Tablekhông chọn bảng nào Bước 2: Chọn Design/Append Hộp thoại Append xuất hiện:
Hình 2. 64. Hộ thoại truy vấn thêm dữ liệu 2
- Chọn Current Database: CSDL hiện thời - Trong mục Table Name: Chọn bảng MonHoc
- Trong vùng lưới QBE của truy vấn có nội dung như 2.59
Hình 2. 65. Vùng lưới QBE truy vấn thêm dữ liệu 2
Bước 3: Lưu truy vấn và chạy xem kết quả của truy vấn.
Mở bảng MonHoc, chúng ta sẽ thấy mẫu tin mới được thêm vào.
5.3. Truy vấn xóa dữ liệu (Delete Query)
Truy vấn xoá giúp chúng ta loại bỏ các mẫu tin từ một bảng (Không xóa cấu trúc của bảng).
a. Các bước thực hiện truy vấn xóa dữ liệu
- Để tạo truy vấn xoá chúng ta tạo truy vấn chọn và đưa bảng vào tham gia truy vấn - Chọn Query/ Delete Query
- Trong vùng lười QBE tại hàng Field chọn các trường cần so sánh với điều kiện xoá - Tại hàng Delete: Chọn phép toán Where
- Tại hàng Criteria: Chọn điều kiện xoá
- Lưu truy vấn và chạy truy vấn, mở bảng xem kết quả các mẫu tin có bị xóa hay không.
b. Ví dụ:
- Tạo truy vấn để xoá những sinh viên có MaSV là “A01”. - Tạo truy vấn chọn và đưa bảng SinhVien vào truy vấn. - Chọn Query/ Delete Query
- Trong vùng lưới QBE có nội dung như sau:
Hình 2. 67. Cửa sổ thiết kế truy vấn xóa mẫu tin
- Khi chạy truy vấn thì Access sẽ thông báo số mẫu tin bị xóa, click “Yes” để xóa, “No” thì ngừng.
Mở bảng SinhVien thì mẫu tin có nội dung sinh viên A01 đã bị xóa.
Hình 2. 68. Bảng SinhVien đã bị xóa mẫu tin “A01”
5.4. Truy vấn cập nhật (Update Query)
a. Các bước thực hiện truy vấn cập nhật
Bước 1: Tạo một truy vấn chọn và đưa bảng vào tham gia truy vấn tại Show Table. Bước 2: Chọn Query/Update Query
Bước 3: Tại hàng Field: Chọn trường cần cập nhật dữ liệu
Bước 4: Tại hàng Update to: Đưa vào giá trị hoặc biểu thức cập nhật Bước 5: Tại hàng Criteria: Đưa vào điều kiện (nếu có)
Bước 6: Lưu truy vấn và chạy xem kết quả của truy vấn. Lưu ý:
Truy vấn cập nhật chỉ chạy một lần duy nhất tại vì nếu chạy truy vấn bao nhiêu lần thì dữ liệu sẽ được cập nhất mới bấy nhiêu lần và như vậy thì dữ liệu không còn được cập nhật đúng nữa.
Trong truy vấn cập nhật chỉ nên hiển thị các trường cần cập nhật và các trường điều kiện trong vùng lưới QBE, không nên hiển thị tất cả các trường trong bảng như những truy vấn khác.
b. Truy vấn cập nhật 1: Tạo truy vấn để cập nhật giá trị cho trường HocBong=(HocBong)+50000 cho những sinh viên học ngành TH.
Bước 1: Tạo một truy vấn chọn và đưa bảng SinhVien vào tham gia truy vấn. Bước 2: Chọn Query/Update Query
Bước 3: Trong vùng lưới QBE có nội dung như sau:
Bước 4: Lưu truy vấn và chạy xem kết quả của truy vấn, khi đó Access sẽ thông báo số mẫu tin trong bảng được cập nhật là bao nhiêu, như hình sau:
Hình 2. 69. Cửa sổ truy vấn cập nhật
Nếu chạy truy vấn trên thêm lần nữa thì HocBong sẽ được cộng thêm 50000 nữa và như vậy thì HocBong bị cập nhật sai.
Hình 2. 70.Kết quả truy vấn cập nhật
CÂU HỎI, BÀI TẬP A. Câu hỏi
1. Nêu khái niệm truy vấn, cho ví dụ?
2. Truy vấn gồm có những loại nào?
3. Truy vấn chọn có những chức năng nào mạnh hơn chức năng Filter trong bảng, cho ví dụ minh họa?
4. Trình bày các bước tạo mới một truy vấn?
5. Trình bày thao tác lưu và chạy xem kết quả của truy vấn?
6. Nêu các thao tác thường dùng trên vùng lưới QBE?
7. Nêu ý nghĩa và ký hiệu của các toán tử, cấu trúc và công dụng của các hàm thường dùng trong truy vấn chọn?
8. Trong những trường hợp nào thì sử dụng phép toán Like?
9. Nêu có nhiều phép toán logic (And, Or, Not) trên nhiều trường thì Access sẽ thực hiện thứ tự ưu tiên nhu thế nào? Cho ví dụ minh họa?
10. Nêu cấu trúc tạo trường mới, cho ví dụ?
11. Sử dụng cộng cụ nào để lấy 3 mẫu tin đầu tiên trong bảng thực hiện kết quả truy vấn chọn?
12. Nêu khái niệm truy vấn tính tổng? Cho ví dụ?
13. Trình bày các bước thực hiện truy vấn tính tổng? So sánh với các bước thực hiện truy vấn chọn?
14. Trình bày các phép toán thường dùng trong truy vấn tính tổng?
15. Có thể tính tổng trên nhiều trường gom nhóm không? Cho ví dụ?
16. Trong truy vấn tính tổng, điều kiện được đặt ở những trường nào? Cho ví dụ minh họa?
17. Nêu khái niệm truy vấn tham số? Cho ví dụ cụ thể?
18. Trình bày các bước thực hiện truy vấn tham số? So sánh với truy vấn chọn?
19. Có thể kết hợp truy vấn tham số với truy vấn tính tổng được không? Cho ví dụ minh họa?
20. Nêu khái niệm truy vấn chéo? Dấu hiện để phân biệt truy vấn tính tổng với truy vấn chéo?
21. Trình bày cách xác định 3 yếu tố trong truy vấn chéo?
22. Trình bày các bước thực hiện truy vấn chéo?
23. Bảng kết quả của những truy vấn nào (Truy vấn chọn, tính tổng, tham số, chéo) có thể chỉnh sửa được?
24. Truy vấn hành động có bao nhiêu loại? Muốn kiểm tra kết quả thực hiện của truy vấn hành động thì xem ở đâu?
25. Nêu khái niệm truy vấn tạo bảng mới? Có thể kết hợp truy vấn tạo bảng mới với những loại truy vấn nào? Cho ví dụ?
26. Trình bày các bước thực hiện truy vấn tạo bảng mới?
27. Nêu khái niệm truy vấn thêm dữ liệu? Có bao nhiêu loại truy vấn thêm dữ liệu?
28. Trình bày các bước thực hiện truy vấn thêm dữ liệu?
29. Trong truy vấn thêm dữ liệu nếu các trường cho và nhận tương ứng không cùng kiểu dữ liệu thì sẽ ra sao?
30. Nêu khái niệm truy vấn cập nhật?
31. Trình bày các bước thực hiện truy vấn cập nhật?
33. Trình bày các bước thực hiện truy vấn xóa dữ liệu?
34. Trong các loại truy vấn hành động, truy vấn nào chỉ nên chạy truy vấn 1 lần? Giải thích vì sao như vậy?
B. Bài tập
Bài 1. Sử dụng CSDL QuanLySinhVien.accdb đã tạo ở bài tập bài 2 để tạo các truy vấn theo yêu cầu sau :
I- Truy vấn chọn
1. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoSV, TenSV, NgaySinh, GioiTinh.
2. Hiển thị danh sách sinh viên như câu 1 nhưng sắp xếp theo MaSV tăng dần. 3. Hiển thị danh sách sinh viên gồm các thông tin sau: Masv, HoSV, TenSV, NgaySinh, GioiTinh, MaKH, HocBong (sắp xếp MaKH tăng dần, MaSV giảm dần) 4. Hiển thị bảng điểm sinh viên gồm các thông tin: MaSV, HoSV, TenSV, MaMH, Diem
5. Hiển thị thông tin sinh viên với các môn học thông tin: MaSV, HoSV, TenSV, TenMH, SoTiet
6. Hiển thị danh sách sinh viên có tên là “Chính”
7. Hiển thị danh sách sinh viên có Nơi sinh là “Sài Gòn”
8. Hiển thị danh sách sinh viên có Nơi sinh là “Sài Gòn” hoặc “Hà Nội” 9. Hiển thị danh sách sinh viên có Nơi Sinh là “Hà Nội” và học Khoa “TH” 10. Hiển thị danh sách sinh viên có Họ là “Trần” và học Khoa “NN”
11. Hiển thị danh sách sinh viên có Mã số bắt đầu là B và học Khoa “NN” 12. Hiển thị danh sách sinh viên có GioiTinh là “Nữ” và nơi sinh là “Bến tre” 13. Hiển thị danh sách sinh viên có ngàysinh >=01/01/1997
14. Hiển thị danh sách sinh viên không có Học Bổng
15. Hiển thị danh sách sinh viên có Học bổng và học Khoa “TH”
II- Truy vấn chọn với các cột tính toán tự tạo ra thông qua các hàm
1. Hiển thị danh sách sinh viên gồm các cột sau: MaKH, MaSV, HoSV,TenSV, Namsinh, Tuoi, sắp xếp tuổi theo thứ tự tăng dần. Biết rằng tuổi sẽ là Năm hiện Hành – Năm Sinh.
2. Hiển thị danh sách sinh viên gồm các cột sau: MaSV, HoTenSV, GioiTinh, MaKH, TenKhoa. biết rằng HoTenSV= [HoSV] & [TenSV].
3. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 12.
4. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 11 và năm 1997.
5. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, HocBong, MaKhoa, TenKhoa, HocBongMoi. Biết rằng Học bổng mới = 10%*[HocBong] +[HocBong]
6. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV,TenMH, Diem, DanhGia. Biết rằng nếu điểm <5 thì DanhGia là Rớt, ngược lại là Đậu.
III- Truy vấn tính tổng
1. Hãy đếm số sinh viên của từng Quận, thông tin gồm: Quan, TongSoSV
2. Hãy đếm số sinh viên của từng Khoa, thông tin gồm: MaKH, TenKhoa, TongSoSV, chỉ hiển thị khoa “TH” hoặc “NN”.
3. Cho biết Học Bổng cao nhất, thấp nhất của từng khoa, thông tin hiển thị: MaKhoa, TenKhoa, HBMax, HBMin
4. Hãy đếm số sinh Viên Nam của từng Khoa là bao nhiêu, thông tin gồm: MaKhoa, TenKhoa, TongSVNam
5. Hãy đếm số sinh Viên Nữ của từng Khoa là bao nhiêu, thông tin gồm: MaKhoa, TenKhoa, TongSVNu
6. Cho biết tuổi trung bình của Sinh viên trong từng Khoa là bao nhiêu thông tin gồm: MaKhoa, TenKhoa, TuoiTB
7. Hiển thị bảng điểm tổng hợp của sinh Viên gồm thông tin: MaSV, HoTenSV, DiemTB, TongSoMonThi. Trong đó DiemTB là điểm trung bình của các Môn thi, TongSoMonThi là tổng số các môn thi của các sinh viên. Điểm TB lấy 2 số lẻ.
8. Hãy đếm số sinh viên của từng Môn Học thông tin gồm: TenMH, TongSoSV. 9. Cho biết tổng học bổng của mỗi khoa, thông tin gồm: MaKH, TenKH, TongHocBong, chỉ hiển thị các khoa có tổng học bổng >3000000.
10. Cho biết tổng số tiết học của mỗi sinh viên học khoa “TH”, thông tin gồm: MaSV, HoTenSV, TongSoTiet.
IV- Truy vấn tham số
1. Hiển thị danh sách sinh viên có MaKh được nhập từ bàn phím.
2. Hiển thị danh sách sinh viên có Năm sinh là một khoảng thời gian được nhập từ bàn phím.
3. Tính tổng học bổng của mỗi Quan, có Quan được nhập từ bàn phím, thông tin gồm: Quan, TongHB.
4. Đếm số lượng sinh viên của từng khoa, có MaKh và giới tính được nhập từ bàn phím, thông tin gồm: MaKhoa, TenKhoa, GioiTinh, TongSV
5. Cho biết Học Bổng cao nhất, thấp nhất của từng khoa, có MaKh được nhập từ bàn phím, thông tin hiển thị: MaKh, TenKhoa, HBMax, HBMin.
V- Truy vấn chéo: