Một số loại truy vấn khác

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội (Trang 71)

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..

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ổ

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội (Trang 71)

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

(87 trang)