3.5.1 Truy vấn tham khảo chĩo (Crosstab query)
3.5.1.1 Khâi niệm
Truy vấn tham khảo chĩo lă loại truy vấn dùng để tóm lƣợc dữ liệu vă trình băy kết quả theo dạng nhƣ một bảng tính. Truy vấn tham khảo chĩo cũng có thể thống kí một khối lƣợng dữ liệu lớn vă trình băy đơn giản hơn do đó thƣờng sử dụng để so sânh dữ liệu.
3.5.1.2 Tạo truy vấn tham khảo chĩo
Muốn tạo một truy vấn tham khảo chĩo chúng ta phải xâc định đƣợc 3 yếu tố chính: Trƣờng lăm tiíu đề cột ( Duy nhất 1 trƣờng), trƣờng lăm tiíu đề hăng ( Có thể nhiều trƣờng), trƣờng tính giâ trị (Duy nhất 1 trƣờng).
Câch tạo
Tạo truy vấn chọn vă đƣa câc bảng văo tham gia truy vấn Đƣa câc trƣờng văo vùng lƣới QBE
Chọn Menu Design /Crosstab Query
Quy định trường lăm tiíu đề cột
+ Tại hăng Total: Bắt buộc chọn phĩp toân Group by Tại hăng Crosstab: Chọn Column heading
Quy định trường lăm tiíu đề hăng
+ Tại hăng Total: Ít nhất một trong câc trƣờng phải chọn phĩp toân Group by Tại hăng Crosstab: Chọn Row heading
Quy định trường tính giâ trị
+ Tại hăng Total: Chọn phĩp toân thích hợp Tại hăng Crosstab: Chọn Value
Ví dụ1:
Cho 2 bảng dữ liệu: Dstruong(matruong, tentruong, sodt)
Danhsach(matruong,hoten, ngaysinh, gioitinh, xeploai) Tạo một truy vấn Crosstab để phản ânh tổng số lƣợng sinh viín xếp mỗi loại của trong từng trƣờng bao nhiíu.?
Câch lăm:
Tạo truy vấn vă đƣa 2 bảng dữ liệu văo tham gia truy vấn, đƣa câc trƣờng tentruong vă xeploai văo vùng lƣới QBE. (Trƣờng Xeploai đƣa văo 2 lần)
Chọn Menu Design / crosstab query
Tại hăng Total của trƣờng tentruong: Chọn phĩp toân Group by, hăng crosstab: chọn Row heading
Tại hăng Total của truờng Xeploai: Chọn phĩp toân Group by, hăng Crosstab chọn Column heading.
Tại hăng Total của truờng Xeploai: Chọn phĩp toân Count, hăng Crosstab chọn Value.
Hình 3.35. Ví dụ Tạo truy vấn tham khảo chĩo
Chọn View/ Datasheet View để xem kết quả
Ví dụ 2: Tính tổng số nam nữ theo từng trƣờng, vậy cần thống kí nhƣ hình mẫu → Tín trƣờng lăm tiíu dòng
→ Phâi lăm tiíu Cột
→ Số học sinh đƣợc đếm trín MAHS nhƣ ví dụ ở phần Total query
Tín Trƣờng Nam Nữ
Trƣờng PTTH Bùi Thị Xuđn ? ?
Trƣờng PTTH Chuyín Lí Hồng Phong ? ?
Trƣờng PTTH Lí Quý Đôn ? ?
Trƣờng PTTH Nguyễn Thƣợng Hiền ? ? Trƣờng PTTH Nguyễn Thị Minh Khai ? ?
Trƣờng PTTH Trƣơng Vƣơng ? ?
Câc bƣớc thực hiện
Bƣớc 1, bƣớc 2, bƣớc 3: thực hiện tƣơng tự khi tạo truy vấn Select đơn giản Bƣớc 4: Chọn nút Crosstab query trín thanh công cụ
Bƣớc 5: Trín dòng Crosstab
Chọn mục Row heading cho trƣờng lăm tiíu đề dòng Chọn mục Column heading cho trƣờng lăm tiíu đề cột Chọn mục Value cho trƣờng sẽ mang đi tính toân
Trín dòng Total chỉ chọn phĩp toân cần thống kí đối với trƣờng Value
Hình 3.37. Ví dụ Tạo truy vấn tham khảo chĩo
Bƣớc 6: Sau đó nhấn nút Run trín menu lệnh
Lƣu ý:
Khi tạo Crosstab query cần xâc định tín trƣờng dựa văo giâ trị của nó. Vì trong yíu cầu không nhắc đến tín trƣờng trực tiệp.
Trƣờng lăm tiíu đề cột thƣờng có miền giâ trị ít hơn trƣờng lăm tiíu đề dòng.
Trong một cđu Crosstab query có thể có 2 trƣờng tham gia lăm Row heading. Trƣờng thứ hai lăm Row heading thƣờng dùng để tổng hợp dữ liệu theo dòng. (Tổng trín một dòng …)
Ví dụ: Tính tổng số nam nữ theo từng trƣờng vă tổng số học sinh của trƣờng đó.
Hình 3. 39.Ví dụ Tạo truy vấn tham khảo chĩo
Hình 3.40. Kết quả Ví dụ Tạo truy vấn tham khảo chĩo
Cđu lệnh SQL tƣơng ứng cho Crosstab query TRANSFROM Hăm tính toân (Tín côt lăm value)
SELECT <Danh sâch tín cột tham gia lăm row heading> FROM <Danh sâch tín bảng>
GROUP BY < Tín cột lăm row heading Không tham gia tổng hợp> PIVOT <Tín cột lăm Column heading>;
- Định dạng cho tiíu đề cột
Với truy vấn Crosstab, chúng ta có thể can thiệp nhiều hơn về câch trình băy tiíu đề cột trong bảng. Chúng ta có thể thay đổi bằng câch đặt lại thuộc tính Column Heading của truy vấn. Thuộc tính năy cho phĩp chúng ta: Chỉ định sắp xếp câc tiíu đề cột.
Muốn định dạng tiíu đề cột thực hiện câc bƣớc sau: Tạo truy vấn Crosstab. Chuyển sang chế độ Design View. Mở bảng thuộc tính truy vấn.
Tại hăng Column Heading : Gõ câc tiíu đề cột theo thứ tự mă chúng ta muốn Câc giâ trị năy phải câch nhau bởi dấu chấm phẩy ( ;)
Hình 3.41. Định dạng cho tiíu đề cột
3.5.2 Câc loại truy vấn hănh động
Truy vấn hănh động giúp ngƣời sử dụng tạo bảng mới hay sửa đổi dữ liệu trong câc bảng. Có 4 loại truy vấn hănh động:
Truy vấn tạo bảng (Make table query): Tạo bảng mới từ một bảng hay nhiều bảngđê tồn tại dữ liệu.
Truy vấn cập nhật (Update query): Dùng để cập nhật dữ liệu cho một hoặc nhiềutruờng trong bảng dữ liệu.
Truy vấn xoâ (Delete query):Xoâ câc bản ghi thoả mên câc điều kiện từ một haynhiều bảng dữ liệu.
Truy vấn nối (Append query): Nối một số bản ghi từ một hoặc nhiều bảng dữ liệuvăo sau một hoặc nhiều bảng dữ liệu khâc.
Lƣu ý:
Câc Query hănh động có thể gđy nín việc mất dữ liệu ngoăi ý muốn, nín khi thực thi sẽ xuất hiện một thông bâo yíu cầu xâc việc thực thi Query.
Để trânh mất dữ liệu khi thiết kế câc Query hănh động nín tạo một bản sao CSDL trƣớc khi thực thi Query.
3.5.2.1 Truy vấn tạo bảng (Make Table Query )
a. Giới thiệu
Truy vấn tạo bảng sẽ tạo ra một bảng mới bằng câch rút câc bản ghi thỏa mên câc điều kiện năo đó
b. Ý nghĩa
Thiết kế câc bâo câo kết xuất những số liệu phât sinh tính từ một thời điểm năo đó hoặc tính đến một thời điểm năo đó. Ví dụ, muốn thiết kế một bảng bâo câo trình băy doanh số bân hăng trong 2 thâng cuối năm 2004. Thiết kế một Make
Table Query tạo ra một Table mới với những Record đƣợc trích từ câc Record hóa đơn bân trong 2 thâng cuối năm 2004 vă sau đó dựa văo Table mới năy để thiết kế bâo câo.
Tạo ra bản sao phòng hờ cho một Table có tầm quan trọng đặc biệt.
Lăm tăng tính hiệu quả của Form vă Report khi chúng cần những dữ liệu nguồn từ nhiều Table. Việc tạo ra Make Table Query từ nhiều Table sau đó dùng nó lăm nguồn dữ liệu cho Form hoặc Report sẽ lăm cho tốc độ khai thâc dữ liệu tăng lín đâng kể.
Thế nhƣng Make Table Query hoăn toăn bị động vă chỉ đƣợc ghi nhận tại thời điểm chạy Query.
c. Câc bƣớc tạo Make Table Query
Bƣớc 1 : Thực hiện việc tạo Query trong chế độ Design View. Bƣớc 2: Chọn câc Table vă câc Field cần thiết.
Bƣớc 3: Menu Design → Make Table Query Bƣớc 4: Hộp thoại “Make Table”:
Table Name: Nhập tín Table mới.
Current Database: Table mới sẽ thuộc CSDL hiện hănh.
Another Database: Table mới đặt trong một CSDL khâc đƣợc khai bâo trong hộp File Name.
Hình 3.42. Hộp thoại Make Table
Bƣớc 5: Kiểm tra kết quả Query: Menu View → Datasheet View Bƣớc 6: Menu Query →Run để thực thi Query
Chú ý:
Sau khi chạy (Run) Make Table Query trong CSDL sẽ tồn tại thím một Table mới, câc Field trong Table mới đƣợc lấy từ những Table khâc vă có cùng câc thuộc tính. Tuy nhiín, Table năy không có Field khóa chính vă không có sự liín hệ năo khâc. Có thể mở Table mới năy ở chế độ Design View để thím khóa chính, thiết lập mối quan hệ hoặc khai bâo thuộc tính cho những Field của Table.
Chỉ thực thi (Run) Make Table Query khi năo thực sự muốn tạo một Table mới. Ví dụ: Giả sử đê tạo đƣợc một Select query đƣa ra đƣợc bảng kết quả nhƣ sau:
Hình 3.43. Bảng dữ liệu trong ví dụ Make Table Query
Băi toân đặt ra lă: đƣa toăn bộ kết quả của query đang hiển thị ra một bảng mới có tín bangluong. Câch lăm nhƣ sau:
Bƣớc 1: Mở select query đê tạo đƣợc ở chế độ Design View;
Bƣớc 2: Ra lệnh tạo Make table query bằng câch mở thực đơn Design | Make Table query, hộp thoại Make table xuất hiện:
Hêy nhập văo tín bảng dữ liệu cần lƣu văo ô Table Name:
Chú ý:
- Nếu tín bảng nhập văo lă mới, Access sẽ tự động tạo một bảng mới vă sao chĩp toăn bộ dữ liệu mă query kết xuất đƣợc ra bảng năy;
- Nếu tín nhập văo trùng một tín bảng đê có sẵn, khi thi hănh Access sẽ xoâ bảng cũ vă điền văo dữ liệu mới (cần cđn nhắc khi đặt tín bảng trùng tín bảng đê tồn tại).
Bƣớc 3: thi hănh query để nhận kết quả bằng câch:
- Nếu query đang ở chếđộ thiết kế, nhấn nút Run trín thanh công cụ. - Hoặc nhây đúp chuột lín query cần thực hiện.
Khi đó một hộp thoại cảnh bâo việc bạn đang ra lệnh thi hănh một query có thể lăm thay đổi đến dữ liệu trín CSDL:
Hình 3.44. Mô tả chú ý khi thay đổi đến dữ liệu trín CSDL
Nhấn Yes để tiếp tục hoặc nhấn No để huỷ bỏlệnh.
Nếu trín CSDL đê tồn tại một bảng có cùng tín bảng bạn đê chỉ định cho query năy lƣu dữ liệu, Access sẽ hỏi bạn: Đê tồn tại bảng xxx trín CSDL rồi, nó sẽ bịxoâ sạch khi query năy thi hănh, bạn có muốn tiếp tục không?
Hình 3.45. Mô tả hộp thoại chú ý khi thi hănh Query
Nhấn Yes để tiếp tục (tất nhiín bảng dữ liệu đó sẽ bị xoâ vă thay văo nội dung mới);
Nhấn No để huỷ bỏ.
Cuối cùng một hộp thoại hỏi một lần cuối xem bạn có đồng ý dân xxx bản ghi văo bảng đê chỉ định hay không?
Hình 3. 46. Mô tả hộp thoại khẳng định dân bản ghi văo bảng dữ liệu
Nhấn Yes để đồng ý, No để huỷ bỏ.
3.5.2.2 Truy vấn xóa (Delete Query)
a. Giới thiệu
Dùng để loại bỏ câc Record ra khỏi Table theo một điều kiện năo đó. Đồng thời bảo đảm tính chính xâc trong thao tâc xóa bỏ.
Trong phần lớn trƣờng hợp, chỉ có thể xóa bỏ những Record trong một Table.
b. Câch tạo Delete Query
Bƣớc 1: Tạo Query trong chế độ Design. Bƣớc 2: Chọn Table.
Bƣớc 3: Chọn Menu Design → Delete
Bƣớc 4: Trong cửa sổ Design kĩo dòng có biểu tƣợng dấu * của Table chứa câc Record muốn xóa văo vùng lƣới QBE (Ô Delete của Field năy xuất hiện từ From).
Bƣớc 5: Chọn câc Field dùng để đặt điều kiện xóa văo câc cột tiếp theo (Ô Delete của câc vùng năy sẽ xuất hiện từ Where).
Bƣớc 6: Trong ô Criteria của câc vùng có từ Where khai bâo câc điều kiện xóa.
Bƣớc 7: Chuyển sang chế độ Datasheet View để kiểm tra Query. Bƣớc 8: Thực thi Query: Menu Design → Run
Ví dụ: tạo Delete query xóa đi những cân bộ đến tuổi nghỉ hƣu ra khỏi CSDL quản lý lƣơng cân bộ . Khi query năy thi hănh, danh sâch câc cân bộ đến tuổi hƣu sẽ bị xóa khỏi bảng canbo. Câch tạo query nhƣ sau:
Bƣớc 1: Tạo một Select query nhƣ sau:
Bƣớc 2: Đổi query hiện hănh thănh Delete query bằng câch mở thực đơn Design/ Delete Query.
Hình 3.48. Đổi thănh Delete query
Hình 3.49. Mô tảcâch đổi query hiện hănh thănh Delete query
Để thi hănh việc xóa cân bộ, nhấn nút Run trín thanh công cụ. Khi đó một hộp thoại cảnh bâo xuất hiện:
Hình 3.50. Mô tả hộp thoại cảnh bâo
Nhấn Yes đểđồng ý xóa đi câc bản ghi (bản ghi đê xóa không thể phục hồi lại đƣợc); nhấn No để hủy bỏ lệnh.
Phải cẩn trọng trƣớc khi quyết định lệnh xóa dữ liệu. Bản chất của Delete query thể hiện ở cđu lệnh SQL.. DELETE… FROM… [WHERE]
3.5.2.3 Truy vấn nối dữ liệu (Append Query )
a. Giới thiệu
Append Query dùng để cập nhật thím dữ liệu văo cuối một Table từ một Table khâc. Mặt khâc cũng có thể đƣa thím dữ liệu văo Table phụ thuộc văo một điều kiện năo đó.
b. Câc bƣớc tạo Append Query
Bƣớc 1: Tạo Query trong chế độ Design.
Bƣớc 2: Chọn Table có dữ liệu muốn nối thím văo Table khâc.
Bƣớc 3: Chọn Menu Design → Append Query → Xuất hiện dòng Append to trong lƣới QBE.
Bƣớc 4: Hộp thoại “ Append”:
Table name: Nhập tín Table đích nơi muốn thím dữ liệu văo Current Database: Table đích nằm trong CSDL hiện hănh
Another Database: Table đích nằm trong một CSDL khâc đƣợc khai bâo trong hộp File Name
Bƣớc 5: Chọn câc Field có dữ liệu cần nối thím văo lƣới QBE (tín Field đƣợc so sânh trong câc ô Append to).
Bƣớc 6: Thiết lập điều kiện lựa chọn tại câc ô Criteria.
Bƣớc 7: Kiểm tra kết quả của Query trong chế độ Datasheet. Bƣớc 8: Thực thi Query: Menu Design → Run
Chú ý
Trong truy vấn nối 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.
Ví dụ: thím văo bảng Chi tiết hóa đơn những mẫu tin lập trong năm 2013 Bƣớc 1: Chọn Query, nhấn new, chọn New Design rồi ấn OK.
Bƣớc 2: chọn Table hay query chứa dữ liệu nguồn
Bƣớc 3: Nhấp biểu tƣợng Query Type trín query Design toolbar rồi chọn Append Query sẽ xuất hiện hộp thoại hình 3.51
Table name: nhấp chọn tín Table đích
Another Database( Table chọn ở trong Cơ sở dữ liệu khâch vă gõ tín file ở ô File Name)
Hình 3.51. Hộp thoại make table
Bƣớc 4: Khai bâo
Hình 3.52. Khai bâo
Field: Tín cột chứa dữ liệu nguồn Append to: Tín cột đích
Criteria: Điều kiện để Record đƣợc sao chĩp
Bƣớc 5: Nhấp nút Run trín Query Design toolbar để thi hănh lệnh sẽ hiện hộp thoại
Hình 3.53. Hộp thoại “ muốn thím Record”?
Chọn Yes : nếu muốn thím Record Chọn No: nếu không muốn thím Record
3.5.2.4 Truy vấn cập nhật(Update query )
a. Giới thiệu
Cho phĩp hiệu chỉnh vă cập nhật có hệ thống dữ liệu của câc Table đang tồn tại trong CSDL hiện hănh.
b. Câc bƣớc tạo Update query
Bƣớc 1: Tạo Query trong chế độ Design View. Bƣớc 2: Chọn Table tƣơng ứng văo vùng lƣới QBE.
Bƣớc 3: Chọn Menu Design→Update Query →Xuất hiện dòng Update to trong lƣới QBE.
Bƣớc 4: Đƣa câc Field muốn cập nhật vă câc Field để lập tiíu chuẩn cập nhật văo lƣới QBE.
Bƣớc 5: Nhập tiíu chuẩn cập nhật văo câc ô Criteria tƣơng ứng.
Bƣớc 6: Nhập biểu thức có giâ trị cần cập nhật văo câc ô Update to tƣơng ứng.
Bƣớc 7: Kiểm tra Query trong chế độ Datasheet View. Bƣớc 8: Thực thi Query: Menu Design → Run
3.5.3 ToTal Query
5.3.1. Tổng quan
Dùng để nhóm câc Record trín Table|Query giống nhau theo một tiíu chuẩn năo đó của một hay nhiều Field để từ đó có đƣợc câc thông tin liín quan đến nhóm nhƣ : số Record trong nhóm, tổng giâ trị của Field liín quan của nhóm, giâ trị cao nhất của Field liín quan của nhóm, …
Ví dụ:
Giâ trị của từng hóa đơn : số sản phẩm của hóa đơn, tổng thănh tiền của hóa đơn, trung bình thănh tiền của câc hóa đơn, …
Thông tin về mỗi khâch hăng: số hóa đơn đê đặt, tổng thănh tiền phải trả, … Thông tin về mỗi sản phẩm: …
Thông tin về mỗi nhđn viín: …
Thông tin về câc hóa đơn: số sản phẩm trín đơn, thănh tiền, … Câc tiíu chuẩn thƣờng dùng để tổng hợp:
Phƣơng thức Ý nghĩa
Group by Nhóm câc Record có giâ giống nhau thănh một. Sum Tính tổng câc giâ trị trín cột của nhóm.
Avg Tính trung bình câc giâ trị trín cột của nhóm. Max Tìm giâ trị cao nhất trín cột của nhóm.
Min Tìm giâ trị thấp nhất trín cột của nhóm.
Count Đếm số Record trín cột của nhóm.
Expression Cho biết cột lă biểu thức tính toân. Where
Cho biết cột lă một biểu thức điều kiện dùng để lọc Record trƣớc khi nhóm.
5.3.2. Câc bƣớc tạo Total Query
Bƣớc 1: Tạo Query trong chế độ Design View.
Bƣớc 2: Chọn câc Table tham gia trong cửa sổ Show Table. Bƣớc 3: Chọn câc Field tham gia tạo Query.
Bƣớc 4: Menu Design → Total → Xuất hiện thím dòng Total trong cửa sổ