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 đó. .. • Q 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 ... ... ... ...
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.
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 để hồ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ướ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).
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
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
• 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 đã chọn từ Available Fields vào Selected Fields. Lệnh Add All: Thêm tất cả các trường từ Available Fields vào Selected Fields. Lệnh Remove: Loại bỏ 1 trường đã chọn trong Selected Fields.
Lệnh Remove All: Loại bỏ tất cả các trường đã chọn trong Selected Fields.
Mục Functions and Expressions: Khai báo 1 biểu thức và có thể thêm (Add) biểu thức này vào Selected fields (và nó có vai trị như 1 trường, dùng khai báo AS <TenTruong> để đặt tên cho biểu thức này).
Tab Joint: Thiết lập các thuộc tính về kết nối giữa 2 bảng.
Các bảng dùng cho 1 query thường có quan hệ với nhau. Khi truy xuất dữ liệu, kiểu liên kết (Joint Type) có vai trị quan trọng trong việc ứng xử giữa các bảng. Ví dụ có 2 bảng
Dmhang và Hoadon được dùng trong 1 query và có số liệu như hình sau:
Bảng Dmhang có chứa các 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.
• Left Table: Bảng phía 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 bảng kia hay khơng.
• Right Outer joint: tương tự Left Outer Joint nhưng tất cả các record nằm trong table bên phải sẽ xuất hiện trong kết quả
• Full Joint: là loại kết nối giữa Left Outer 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õ: <tên-field> AS <tên-riêng>.
• 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ả vào vị trí thích hợp.
• Chọn các record cho kết quả: thông thường các kết quả trả về phải thỏa mãn một tiêu chuẩn nào đó. Vì vậy, cần đặt điều kiện lọc dữ liệu cho kết quả Query trong tab Filter.
o Chọn một field làm chuẩn để chọn các record.
o Từ danh sách Criteria, chọn biểu thức so sánh.
o Nhập tiêu chuẩn so sánh trong hộp Example.
o Case: khơng phân biệt chữ hoa hay chữ thường.
• Có thể giới hạn kết quả tìm kiếm bằng cách kết hợp với các tốn tử ở 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 tốn trên nhóm các records. • Thẻ Group By: chọn field hoặc biểu thức làm tiêu chuẩn nhóm.
• Xây dựng biểu thức tính tốn kết quả nhóm:
o Trong thẻ Field, hộp Functions and expressions: gõ biểu thức tính tố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ị:
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 tố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.
Có thể gửi kết quả của Query đến các nơi khác nhau. Mặc định, kết quả của Query sẽ được hiển thị trong cửa sổ Browse.
• Từ thanh cơng cụ Query Design, chọn Query Destination. • Trong hộp thoại Query Destination, chọn nơi kết xuất:
Nút lệnh Nơi kết xuất
Browse Hiển thị kết quả trong cửa sổ Browse
Cursor Lưu kết quả của Query trong table để đọc tạm Table Lưu kết quả Query như một Table.
Graph Kết quả Query có thể sử dụng với Microsoft Graph - ứng dụng độc lập với Visual FoxPro.
Screen 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.
Report Gửi kết xuất vào file Report (.frx) Label Gửi đầu xuất vào file Label (.lbx)