Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
560,55 KB
Nội dung
Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 48 CHƯƠNG IV: QUERIES VÀ VIEWS I. Thiết lập quan hệ giữa các bảng Trên thực tế, các bảng của CSDL thường có quan hệ nào đó với nhau. Mối quan hệ giữa các bảng có thể thiết lập qua lệnh (Lệnh SET RELATION ) - mối quan hệ tạm thời , hoặc trong quá trình thiết kế cơ sở dữ liệu - mối quan hệ bền vững. Để đặt quan hệ giữa các bảng thì việc đầu tiên cần làm đó là xác định các Index cho bả ng. Việc xác định các Index cho bảng có thể thực hiện qua lệnh (lệnh INDEX) hoặc có thể xác định khi thiết kế bảng trong giao diện Table Designer. • Tạo index trong Table Designe. • Thiết lập quan hệ bền vững giữa các bảng trong CSDL. Mối quan hệ bền vững được tạo trong quá trình thiết kế CSDL, và được lưu lại trong file csdl (DBC) và có những đặc điểm sau: • Được tự động sử dụng như các k ết nối mặc nhiên (khi tạo Queries và Views) • Được thể hiện bằng các đường nối trong Database Designer. • Được thể hiện trong Data Environment. • Dùng để lưu thông tin về mối quan hệ toàn vẹn. Không giống như các mối quan hệ tạm thời được tạo bằng lệnh SET RELATION, mối quan hệ bền vững không không cần phải tạo lại mỗi khi sử dụng đến các bảng dữ liệu. Tuy nhiên bởi mố i quan hệ bền vững không điều khiển các con trỏ bản ghi giữa các bảng dữ liệu nên mối quan hệ tạm thời vẫn rất cần thiết khi phát triển ứng dụng. Các bước thiết lập quan hệ bền vững • Mở Project / Chọn Tab Data • Chọn mục Database và mở rộng (expand). Chọn Database cần làm việc. • Chọn mục Modify, khi đó giao diện Database Designer xuất hiện. Lầ n lượt thêm các tables vào. • Trong giao diện Database Designer để tạo quan hệ giữa 2 bảng chỉ cần kéo-thả trường Index (Primary) từ bảng cha đến trường Index (Regular) của bảng con. Chú ý: Tạo Index cho các trường trước khi thiết lập quan hệ giữa các bảng. Sau khi thiết lập xong quan hệ giữa các bảng ta có giao diện Database Designer có dạng như hình 6.1. Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 49 Hình 6.1 Quan hệ giữa các bảng trong CSDL Đường nối thể hiện quan hệ giữa các bảng. • Thiết lập quan hệ toàn vẹn giữa các bảng Thực chất là xác định các qui tắc ứng xử giữa các bảng có quan hệ với nhau. Các qui tắc đó sẽ kiểm soát các việc như thay đổi (Update), Thêm (Insert), Xoá (Delete) sao cho vẫn đảm bảo mối quan hệ giữa các bảng này không bị vi phạm. Để thiết lập quan hệ toàn v ẹn giữa các bảng, D_Click vào đường liên kết bất kỳ giữa 2 bảng, tiếp đến chọn lệnh Referential Integrity như hình 6.2. có thể hiệu chỉnh mối quan hệ giữa các tables ở bước này. Hình 6.2 Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 50 Khi chọn Referential Integrity giao diện này xuất hiện như hình 6.3 Hình 6.3 Giao diện Referential Integrity, Rules For Updating Trong đó: • Dòng (trong grid phía dưới): Thể hiện các quan hệ hiện có của CSDL, các thông tin của một quan hệ gồm có: Bảng cha (Parent Table), Bảng con (Child Table), Trường/Biểu thức quan hệ trên bảng cha (Parent Tag), Trường/Biểu thức quan hệ trên bảng con (Child Tag). • Tab Rules for Updating: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con của một quan hệ nào đó (phía dưới) khi sửa đổi. Các qui tắc ứng xử ở đây là: o Ignore: Cho phép sửa các bản ghi liên quan trên bảng con một cách độc lập (không phụ thuộc vào bảng cha), đây là giá trị mặc định. o Restrict: Không cho phép sửa đổi các bản ghi trong bảng cha nếu tồn tại những bản ghi liên quan trong bảng con. o Cascade: Sửa tất cả những bản ghi có quan hệ trong bảng con với giá trị khoá mới tương ứng của bảng cha. • Tab Rules for Deleting: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con c ủa một quan hệ nào đó (phía dưới) khi xoá. Các qui tắc ứng xử ở đây là: o Ignore: Cho phép xoá các bản ghi liên quan trên bảng con một cách độc lập (không phụ thuộc vào bảng cha), đây là giá trị mặc định. o Restrict: Không cho phép xoá các bản ghi trong bảng cha nếu tồn tại những bản ghi liên quan trong bảng con. o Cascade: Xoá tất cả những bản ghi có quan hệ trong bảng con tương ứng với bản ghi bị xoá của bảng cha. Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 51 Hình 6.4 Rules For Deleting • Tab Rules for Inserting: cho phép thiết lập qui tắc ứng xử giữa 2 bảng cha/con của một quan hệ nào đó (phía dưới) khi thêm mới. Các qui tắc ứng xử ở đây là: Hình 6.4 Rules For Inserting o Ignore: Cho phép thêm các bản ghi vào bảng con một cách độc lập (không phụ thuộc vào bảng cha), đây là giá trị mặc định. Ví dụ o Restrict: Không cho phép thêm các bản ghi vào bảng con nếu không tồn tại một bản ghi tương ứng trong bảng cha. Ví dụ Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 52 II. Tạo các queries Query: Công cụ truy vấn dữ liệu. • Có thể tạo ra query đáp ứng các tiêu chuẩn nhằm: để tổ chức thông tin cho Report, biểu đồ, để trả lời nhanh một câu hỏi Sắp xếp và nhóm các record khi cần thiết. • Ví dụ, với bảng DIEM; khi biết mã sinh viên và cần xem sinh viên đó có tên là gì? Bảng điểm của một môn học nào đó. • Quá trình thiết kế Query: o Bắt đầ u tạo Query với một Wizard Query hoặc Query Designer. o Chọn Table hoặc View chứa thông tin. o Xác định kết quả Query bằng cách chọn các field cần thiết, kiểu sắp xếp, điều kiện của các record muốn hiển thị. o Tôt chức các kết quả bằng cách nhóm và sắp xếp. o Chọn kiểu kết xuất: Table, Report, Browse,… o Chạy và kiểm tra Query. 1. Tạo mới một Query sử dụ ng Wizard 1. Trong Project Manager chọn Tab Data 2. Chọn Queries/Chọn New/Chọn Query Wizard 3. Chọn kiểu Query Wizard cần tạo, có các kiểu là Cross-Tab, Graph và Query. Ví dụ 1: Tạo một Cross Tab Query Giả sử cần xác định xem số lượng thí sinh thi trượt lần 1 các môn học theo lớp có số lượng là như thế nào? Số liệu cần đưa ra dạng sau: Lớp /môn MH1 MH2 MHn 3A-04 4 7 3B-04 3 5 Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 53 Khi đó cần sử dụng một Cross-Tab. 1. Chọn Cross-Tab Wizard, chọn OK. 2. Step 1 - Select Fields: Chọn Database, Tables và Fields (Sử dụng lệnh >, >> để chọn các trường cần thiết). Khi đã chọn xong các trường, chọn Next để qua bước 3. 3. Step 2 - Define Layout: Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 54 Bước này cần định nghĩa 3 đối tượng cho Cross-Tab đó là: Row (trong ví dụ này là Malop), Column (Mamon) và Data (Diem1) bàng cách nhấp-thả (Drag) các trường vào các ô (Row, Column, Data) tương ứng. Chọn Next để tiếp tục 4. Step 3 - Add summary Information: Chọn các hàm thống kê đối với đối tượng Data, các hàm này có thể là: Sum, Countm Average, Max, Min, trong ví dụ này thì Summary chọn là Count. Tuỳ chọn Subtotal cho phép thêm vào cột cuối để tính subtotal cho mỗi dòng. Tiếp đến chọn Finish và nhập vào tên file Query để hoàn tất công việc (hoặc chọn Next sẽ chuyển đến b ước 4 Step 4 - Finish). Trong cửa sổ Project Manager chọn Query vừa tạo rồi chọn lệnh Run - > Được kết quả thể hiển của Query. Ví dụ 2: Tạo một Graph Form bằng Graph Wizard Giả sử cần thể hiện số lượng sản phẩm của các mặt hàng hiện có trong kho dạng biểu đồ. Khi đó sử dụng Graph Wizard như sau: 1. Chọn Graph Wizard, chọn OK. 2. Step 1 - Select Fields: Như ví dụ trên 3. Step 2 - Define Layout: Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 55 Bước này cần định nghĩa 2 đối tượng cho là: Data series - Trường số (trong ví dụ này là Soluong) và Axis - Trong ví dụ này là Ma. Chọn Next để tiếp tục (lưu ý là Next và Finish chỉ cho phép khi đã chọn đủ Data series và Axis). 4. Step 3 - Select Graph Style Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 56 Bước này cho phép chọn kiểu biểu đồ, trong ví dụ này chọn biểu đồ cột (thứ 6). Chọn Next để tiếp tục 5. Step 4 - Finish: Chọn Finish rồi nhập vào tên form cần lưu (Kết quả của Wizard này là một Form). Trong cửa sổ Project Manager chọn Form vừa tạo rồi chọn lệnh Run - > Được kết quả thể hiển của Query. Với ví dụ 2 ta có form DMHANG dạng biểu đồ như hình sau: 2. Tạo mới một Query sử dụng Queries Designer Giả sử cần xem bảng điểm một môn học của một lớp nào đó, bảng điểm bao gồm Masv, Hoten, Ngaysinh và điểm. Với yêu cầu này có thể sủ dụng Query để lấy thông tin theo các bước sau: 1. Trong Project Manager chọn Tab Data 2. Chọn Queries 3. Chọn New 4. Chọn New Query 5. Chọn Table hoặc View làm nguồn cho Query như hình sau. Trong ví dụ này chọn Table Diem (rồi Add) và Hososv (rồi Add). Chọn Close để đóng cửa sổ Add Table or View Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 57 6. Tiếp đến giao diện Query xuất hiện như hình 6.6 • Phía trên: Thể hiện các bảng (hoặc View) sử dụng trong Query. o Run Query: Thực hiện (chạy) query này o View SQL: Xem query ở dạng SQL o Remove Table: Loại bỏ bảng đã chọn khỏi Query (khi chọn vào bảng) o Add Table: Show giao diện Add Table or View o Output Setting: Tuỳ chọn đầu ra cho query (xem sau). Hình 6.6 - Query Designer Đường nối thể hiện quan hệ giữa các bảng. [...]... bản ghi H4, H5, các bản ghi này không có trong Hoađon, và ngược lại trong Hoadon có mặt hàng H10 là loại hàng chưa có trong Dmhang Như vậy khi ghép 2 bảng này mặt hang H4, H5 có số hóa đơn là bao nhiêu? Hóa đơn 7 mặt hàng H10 thì tên hàng là gì, đơn giá là bao nhiêu? Để giái quyết vấn đề này chúng ta sẽ xét các Joint sau đây Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 58 Bài giảng Visual FoxPro •... Hiển thị kết quả trong cửa sổ Browse Lưu kết quả của Query trong table để đọc tạm Lưu kết quả Query như một Table Kết quả Query có thể sử dụng với Microsoft Graph - ứng dụng độc lập với Visual FoxPro Hiển thị kết quả Query trong cửa sổ Visual FoxPro chính, hoặc trong cửa sổ tích cực hiện hành Gửi kết xuất vào file Report (.frx) Gửi đầu xuất vào file Label (.lbx) Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn... Joint và Right Outer Joint 3 Xác định các kết quả • Chọn các field cần xuất: tại available fields chọn tên field -> Click nút Add • Loại bỏ field: tại selected field chọn field cần bỏ -> click nút Remove • Hiển thị tên riêng cho 1 field: trong hộp Functions and expression gõ: AS • Sắp xếp thứ tự các field kết xuất: trong phần selected fields, kéo ô vuông tương ứng với field và thả... Functions and expressions: gõ biểu thức tính toán o Chọn nút Add để đặt biểu thức này vào hộp Selected Fields • Có thể giới hạn kết quả hiển thị: Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 59 Bài giảng Visual FoxPro o Trong Group By, chọn Having o Hộp thoại Having: Field name: chọn tên field hoặc biểu thức tính toán Chọn biểu thức so sánh Example: Nhập giá trị tiêu chuẩn 5 Hướng kết xuất của Query.. .Bài giảng Visual FoxPro • Phía dưới: Các tuỳ chọn cho thiết kế Query Tab Fields: Chọn các trường cho query Available Fields: Các filed có thể chọn cho query Selected Fields: Các trường đã chọn Lệnh Add: Thêm trường... mục logical • Sắp xếp các kết quả Query Trong tab Order By: o Đặt tiêu chuẩn sắp xếp: tại Selected Fields, chọn tên field -> Add o Loại bỏ tiêu chuẩn sắp xếp: chọn field muốn loại bỏ -> Remove o Thứ tự các field trong Ordering criteria xác định tầm quan trọng của kết quả sắp xếp 4 Nhóm kết quả của Query Là tập hợp những record cùng loại Có thể thực hiện việc tính toán trên nhóm các records • Thẻ Group... trái (bảng cha) • Right Table: Bảng phía phải (bảng con) • Joint Type: Có thể 1 trong các loại sau: • Inner joint: Chỉ trả về các bản ghi có thể so khớp được với nhau trên 2 bảng (khi đó các bản ghi H4, H5 và H7 trong cả 2 bảng sẽ không được trả về) • Left Outer Joint: là mối kết nối giữa hai tables mà các record nằm trong table bên trái sẽ xuất hiện trong kết quả của Query cho dù nó có so khớp với . MHn 3A- 04 4 7 3B- 04 3 5 Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 53 Khi đó cần sử dụng một Cross-Tab. 1. Chọn Cross-Tab Wizard, chọn OK. 2. Step 1 - Select. qua bước 3. 3. Step 2 - Define Layout: Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 54 Bước này cần định nghĩa 3 đối tượng cho Cross-Tab đó là: Row (trong ví. Bài giảng Visual FoxPro Bộ môn Tin học – ĐHTN http://www.ebook.edu.vn 48 CHƯƠNG IV: QUERIES VÀ VIEWS I. Thiết lập quan hệ giữa các