Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang

- Thông tin về các đối tượng được quản lý thường lưu trữ dưới dạng bảng

- Các bảng thường gồm các dòng và các cột

- Mỗi cột phản ánh một tiêu thức cần quản lý hay còn gọi là thuộc tính của đối tượng

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 1

Trang 1

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 2

Trang 2

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 3

Trang 3

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 4

Trang 4

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 5

Trang 5

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 6

Trang 6

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 7

Trang 7

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 8

Trang 8

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 9

Trang 9

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 136 trang Danh Thịnh 10/01/2024 4340
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang

Bài giảng Tin học ứng dụng - Chương IV: Hệ quản trị cơ sở dữ liệu Foxpro - Hà Văn Sang
TIN HỌC ỨNG DỤNG
1
Hà Văn Sang
Bộ môn: Tin học TC – KT
Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính
Tel: 0982165568
Email: sanghv@hvtc.edu.vn
Website: 
CHƯƠNG IV
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU FOXPRO
2
I. KHÁI NIỆM CHUNG
1. Cơ sở dữ liệu
a. Tệp dữ liệu
- Thông tin về các đối tượng được quản lý thường lưu 
trữ dưới dạng bảng
3
- Các bảng thường gồm các dòng và các cột
- Mỗi cột phản ánh một tiêu thức cần quản lý hay còn 
gọi là thuộc tính của đối tượng
- Mỗi dòng chứa thông tin về tất cả các thuộc tính của 
đối tượng.
- Giao của dòng và cột là giá trị cụ thể của một thuộc 
tính
1. Cơ sở dữ liệu
- Một bảng luôn chứa thông tin về một tập hợp các đối 
tượng cùng loại
Ví dụ: danh sách sinh viên K41
STT HỌ TÊN NGÀY SINH GIỚI TÍNH ĐIỂM
4
1 Nguyễn Văn A 01/01/1985 Nam 9
2 Cao Đức Cẩm 12/07/1985 Nam 8
3 Lê Lan 23/12/1985 Nữ 9
.. ... .. .. ..
- Khi lưu trữ trên máy, mỗi bảng như vậy được ghi 
thành một tệp dữ liệu
1. Cơ sở dữ liệu
Vậy có thể hiểu:
Tệp dữ liệu: là tệp chứa thông tin về các thuộc tính của 
các đối tượng cùng loại được lưu trên máy
5
- Mỗi đối tượng sẽ được quản lý trên một số thuộc tính 
nhất định.
- Một bộ thông tin về tất cả các thuộc tính được gọi là 
một bản ghi dữ liệu (Record).
- Thông tin về một thuộc tính chứa trong một phần của 
tệp gọi là một trường (Field).
1. Cơ sở dữ liệu
Tệp dữ liệu = bảng
Một bản ghi = một dòng
Một trường = một cột
6
- Một trường được xác định bởi:
• Tên trường
• Kiểu trường
• Độ rộng
• Số chữ số thập phân
1. Cơ sở dữ liệu
Tên trường (Field Name):
Dùng để đặt tên và phân biệt các trường
Qui tắc đặt tên trường trong Fox:
7
• Tên trường do người dùng đặt
• Gồm các chữ cái, số, gạch nối và không quá 10 kí tự
• Bắt đầu bởi chữ cái
• Không phân biệt chữ hoa, chữ thường
Ví dụ: STT, HoTen, Ngay_Sinh, DIEM 
1. Cơ sở dữ liệu
Kiểu trường (Type):
Dùng để xác định kiểu thông tin chứa trong trường
Các kiểu hay gặp trong Fox:
8
• Kiểu kí tự (character): thường viết tắt là C, gồm các: 
+ Chữ cái
+ Chữ số không tính toán
+ Chữ số không tính tóan và các kí tự đặc biệt.
Ví dụ: “Hoàng Hùng”, “37/CP”, “K412101”
1. Cơ sở dữ liệu
• Kiểu số (Numeric): thường viết tắt là N, chứa các số 
có thể tính toán
• Kiểu Ngày (Date): thường viết tắt là D, dùng để lưu 
ngày tháng năm cụ thể
9
• Kiểu Logic (Logical): thường viết tắt là L, dùng để lưu 
các thông tin có hai giá trị trái ngược nhau của một 
thuộc tính.
.T. là đúng, .F. là sai
Ví dụ: Giới tính nam><xuất
1. Cơ sở dữ liệu
• Kiểu kí ức (Memo): thường viết tắt là M, là kiểu dữ 
liệu đặc biệt dùng để lưu các văn bản lớn có độ dài 
không cố định
10
Ví dụ:
Tiểu sử, lý lịch của một cán bộ
Thông số, lý lịch của một loại máy
1. Cơ sở dữ liệu
Độ rộng (Width):
Dùng để xác định số kí tự tối đa ghi trong trường
Trong Fox:
11
• Kiểu kí tự (C) <=254 kí tự
• Kiểu số (N) <=20
• Kiểu Ngày (D) = 8
• Kiểu Logic (L) = 1
• Kiểu kí ức (M) <=254 mở rộng 5000
1. Cơ sở dữ liệu
Số chữ số thập phân (Dec):
Đặc trưng riêng của trường số, xác định số chữ số thập 
phân được dùng
Nếu số chữ số thập phân là 0 thì đó là số nguyên
12
Một số chú ý:
• Mỗi bản ghi có độ dài không quá 4000 kí tự
• Mỗi tệp có không quá 128 trường
• Tệp dữ liệu của Fox có phần mở rộng là DBF
I. KHÁI NIỆM CHUNG
b. Cơ sở dữ liệu
- Là tập hợp các tệp dữ liệu có quan hệ với nhau để 
cung cấp một hệ thống thông tin cho một mục tiêu 
hoặc một bài toán. 
13
c. Cấu trúc tệp dữ liệu
- Là một bảng để liệt kê các thông tin từng trường gồm 
có tên, loại, độ rộng
I. KHÁI NIỆM CHUNG
2. Hệ quản trị cơ sở dữ liệu
a. Khái niệm
- Là một hệ thống các chương trình dùng để thao tác 
trên một cơ sở dữ liệu
14
b. Các thao tác
- Cập nhập dữ liệu - Truy vấn dữ liệu.
- Lưu trữ dữ liệu - Kết xuất thông tin
c. Các hệ quản trị cơ sở dữ liệu
- SQL Server, Oracle - Foxpro, Access ..
II. Hệ QT CSDL Fox
Giới thiệu
- Fox là hệ quản trị cơ sở dữ liệu được sử dụng phổ 
biến trong các bài tóan quản lý kinh tế
15
- Fox được phát triển từ Foxbase đến Foxpro rồi đến 
Visual Foxpro theo hướng tương thích đi lên
- Là bộ sản phẩm của hãng Microsoft
- Muốn sử dụng chương trình phải cài đặt, với tệp khởi 
động là Foxpro.exe, Foxprow.exe, hoặc VFP.exe
II. Hệ QT CSDL Fox
1. Làm quen với Fox
a. Khởi động
-Để khởi động Foxpro ta dùng một trong các cách
Cách 1: Kích kép chuột tại biểu tượng Foxpro trên màn 
16
hình giao tiếp
Cách 2: Kích Start Programs mục tương ứng 
 Tên chương trình Fox
Cách 3: Từ RUN chọn đương dẫn tới tệp chương trình 
rồi nhấn OK
1. Làm quen với Fox
Màn hình chính Thanh tiêu để
Thanh thực đơn
Cửa sổ lệnh
17
1. Làm quen với Fox
Màn hình chính gồm
- Thanh tiêu đề
- Thanh thực đơn
- Màn hình làm việc
18
- Cửa sổ lệnh (Command window): là nơi vào các lệnh 
của Fox dưới dạng văn bản
Để bật tắt cửa sổ lệnh ta nhấn Ctrl + F2 hoặc chọn 
Window Command
1. Làm quen với Fox
b. Thoát khỏi fox
- Để thoát khỏi foxpro ta thực hiện:
Cách 1: Nhấn tổ hợp phím ALT+ F4
19
Cách 2: Chọn menu File Exit
Cách3: tại cửa sổ lệnh gõ Quit và nhấn Enter
1. Làm quen với Fox
c. Hai chế độ làm việc
Fox làm việc dưới hai chế độ sau:
Chế độ hội thoại (dòng lệnh)
20
- Là chế độ mà các lệnh được đưa vào từ cửa sổ lệnh, 
sau khi nhấn Enter lệnh sẽ được thực hiện
- Các lệnh không được lưu trên đĩa nên chỉ dùng để 
thực hiện các lệnh đơn giản, hoặc các lệnh chỉ dùng 1 
lần
1. Làm quen với Fox
Chế độ chương trình
- Là chế độ ghép các lệnh thành một tệp chương trình 
và ghi lên đĩa với phần mở rộng là .PRG
- Để tạo một chương trình:
21
Cách 1: dùng một hệ soạn thảo văn bản để viết các 
lệnh, rồi ghi với phần mở rộng là .prg
Cách 2: tại cửa sổ lệnh gõ: 
MODIFY COMMAND 
Sau đó nhấn Ctrl + W để ghi lên đĩa
- Để chạy một chương trình gõ: DO 
2. Các yếu tố cơ bản của Fox
a. Bộ kí tự
- Bộ kí tự của fox chính là bộ kí tự trong bảng mã 
ASCII, gồm có:
+ 26 chữ cái a .. z, A .. Z
22
+ 10 chữ số 0..9
+ Các kí tự +, -, *, /, !, @, #, $, %
 ... n tại
• Trường 1, 2 ..n là các trường cần thay thế giá trị
• Biểu thức phải có kiểu phù hợp với kiểu của trường
87
Tác động:
- Khi gặp lệnh này, Fox sẽ thay thế nội dung của các 
trường với giá trị của các biểu thức tương ứng
- Chỉ có các bản ghi nằm trong phạm vi và thỏa mãn biểu 
thức logic mới chịu tác động của lệnh
Chú ý:
- Dữ liệu do máy thay thế tự động nên phải cẩn thận khi 
dùng lệnh
3.3 Lệnh xem sửa tệp dữ liệu
Ví dụ:
Use QLSV
REPL ALL DTB WITH 0, PL WITH “ ”
USE
88
- Nhập 10 vào điểm môn 2 của sinh viên có tên Trần Anh
Use QLSV
REPL D2 with 10 FOR Ten=“Anh” .AND. Hodem=“Trần”
Hoặc
LOCATE FOR Ten=“Anh” .AND. Hodem=“Trần”
REPL D2 with 10
3.3 Lệnh xem sửa tệp dữ liệu
Tính điểm trung bình theo công thức
DTB = (D1x2 + D2x3)/5
Phân loại:
- Giỏi nếu ĐTB >=8.0 - Khá nếu 8.0>ĐTB>=7.0
89
- TB nếu 7>ĐTB >=5.0
REPL ALL DTB with (D1*2 + D2*3)/5
- Yếu nếu TB<5.0
REPL ALL PL with “Giỏi” FOR DTB>=8.0
REPL PL with “Khá” FOR DTB>=7.0 .AND. DTB<8.0
REPL PL with “Tb” FOR DTB>=5.0 .AND. DTB<7.0
REPL PL with “Yếu” FOR DTB<5.0
3.4 Lệnh thêm bớt bản ghi
a. Lệnh INSERT
- Tác dụng:
Dùng để chèn một bản ghi vào một vị trí bất kỳ trong tệp
- Dạng lệnh
90
INSERT [BEFORE] [BLANK]
- Tác động:
Lệnh sẽ cho chèn vào tệp 1 bản ghi, cụ thể:
+Nếu có BEFORE thì chèn vào trước bản ghi hiện thời
+Nếu không có BEFORE thì chèn vào sau bản ghi hiện thời
3.4 Lệnh thêm bớt bản ghi
+ Nếu có BLANK sẽ tự động chèn 1 bản ghi rỗng
Nếu là kiểu C nhận giá trị là các khoảng trống
Nếu là kiểu N nhận giá trị 0
Nếu là kiểu L nhận giá trị .F.
91
Nếu là kiểu D nhận giá trị ../../....
+ Nếu không có BLANK sẽ chèn bản ghi sau đó cho 
người dùng nhập dữ liệu
Chú ý: Lệnh này ít được dùng vì máy phải thực hiện ghi 
chép lại tệp nên tốc độ rất chậm
3.4 Lệnh thêm bớt bản ghi
Ví dụ: chèn 1 bản ghi số 50 vào tệp QLSV
Use QLSV
GO 50
INSERT BEFORE
92
- Nhập dữ liệu cho bản ghi
Hoặc cách 2:
Go 50
INSERT BEFORE BLANK
REPL Ten WITH “Anh”, Hodem WITH “Trần”
3.4 Lệnh thêm bớt bản ghi
b. Lệnh DELETE
- Tác dụng:
Dùng để đánh dấu xóa các bản ghi trong tệp đang mở
- Dạng lệnh
93
DELETE [Phạm vi] [FOR ]
Trong đó: phạm vi ngầm định là bản ghi hiện thời
- Tác động:
Fox sẽ đánh dấu xóa các bản ghi thuộc phạm vi thỏa 
mãn biểu thức logic
3.4 Lệnh thêm bớt bản ghi
Ví dụ: đánh dấu xóa sinh viên khóa 39
Use QLSV
DELETE ALL FOR LEFT(Lop,2)=’39’
USE
94
Đánh dấu xóa bản ghi số 49
USE QLSV
GO 49
DELETE
USE
3.4 Lệnh thêm bớt bản ghi
c. Lệnh RECALL
- Tác dụng:
Dùng để hủy việc đánh dấu xóa các bản ghi trong tệp 
đang mở
- Dạng lệnh
95
RECALL [Phạm vi] [FOR ]
Trong đó: phạm vi ngầm định là bản ghi hiện thời
- Tác động:
Fox sẽ hủy bỏ việc đánh dấu xóa các bản ghi thuộc phạm 
vi thỏa mãn biểu thức logic
3.4 Lệnh thêm bớt bản ghi
Ví dụ: bỏ đánh dấu xóa sinh viên khóa 39
Use QLSV
RECALL ALL FOR LEFT(Lop,2)=’39’
USE
96
Hủy bỏ đánh dấu xóa bản ghi số 49
USE QLSV
GO 49
RECALL
USE
3.4 Lệnh thêm bớt bản ghi
d. Lệnh PACK
- Tác dụng:
Dùng để loại bỏ các bản ghi đã bị đánh dấu xóa ra khỏi tệp
- Dạng lệnh
97
PACK
- Tác động:
Fox sẽ xóa hẳn các bản ghi bị đánh dấu xóa khỏi tệp, và 
không thể phục hồi
3.4 Lệnh thêm bớt bản ghi
e. Lệnh ZAP
- Tác dụng:
Xóa bỏ toàn bộ các bản ghi trong tệp đang mở
- Dạng lệnh
98
ZAP
- Tác động:
Fox sẽ xóa tất cả các bản ghi trong tệp và chỉ để lại cấu 
trúc của tệp.
Lệnh này tương đương với việc đánh dấu xóa tất cả rồi 
Pack nhưng tốc độ thì nhanh hơn.
3.5 Sắp xếp và tìm kiếm
- Sắp xếp và tìm kiếm là công việc thường gặp trong quá 
trình xử lý của máy tính
- Để tìm kiếm được nhanh trước hết ta phải sắp xêp dữ 
liệu
- Trước khi sắp xếp ta phải xác định được:
99
Trường cần sắp xếp hay còn gọi là khóa
Sắp xếp theo thứ tự tăng hay giảm
Trường nào được ưu tiên sắp trước
Có phân biệt chữ hoa hay thường không?
3.5 Sắp xếp và tìm kiếm
a. Lệnh INDEX (tạo chỉ mục)
Tệp chỉ dẫn:
- Là tệp được sử dụng để chỉ dẫn cho tệp dữ liệu gốc
- Phục vụ cho công việc tìm kiếm dữ liệu
100
- Gồm 2 trường: trường chỉ dẫn và số hiệu bản ghi
- Các bản ghi trong tệp dữ liệu có sử dụng tệp chỉ dẫn 
được sắp xếp theo thứ tự tăng dần của trường chỉ dẫn
3.5 Sắp xếp và tìm kiếm
a. Lệnh INDEX (tạo chỉ mục)
-Tác dụng:
- Dùng tạo ra một tệp chỉ dẫn để sắp xếp tệp đang mở 
theo thứ tự tăng dần của khóa sắp xêp
- Dạng lệnh:
101
INDEX ON TO [FOR ]
Trong đó:
-BT: là biểu thức bất kỳ dùng làm khóa sắp xếp
-Tentep: là tên tệp chỉ dẫn với đuôi ngầm định .idx
3.5 Sắp xếp và tìm kiếm
- Tác động:
Lệnh sẽ tạo ra tệp chỉ dẫn có tên là để sắp 
xếp các bản ghi của tệp đang mở theo thứ tự tăng dần 
của khóa là BT
102
Nếu các bản ghi có cùng giá trị khóa sắp xếp thì fox sẽ 
sắp xếp các bản ghi theo trật tự đã có
Nếu có FOR thì chỉ những bản ghi thỏa mãn bt logic 
mới được coi là có mặt trong tệp và tham gia sắp xếp
3.5 Sắp xếp và tìm kiếm
- Ví dụ:
Trong tệp QLSV ta sắp xếp điểm trung bình
INDEX ON DTB TO cdDTB FOR DTB >=5
103
Tệp gốc
# DTB
1 5.0
2 7.5
3 4.3
4 7.5
5 6.0
Tệp chỉ dẫn
# DTB
1 5.0
5 6.0
2 7.5
4 7.5
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
In danh sách lớp 41.21.01 theo tứ tự Abc của tên
USE QLSV
104
INDEX ON ten+hodem TO vd1 FOR Lop=“41.21.01”
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
- Ví dụ 2:
In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo 
điểm trung bình tăng dần
USE QLSV
INDEX ON LOP + STR(DTB,5,2) TO vd2 FOR
105
LEFT(Lop,2)=“41”
DISP all TO PRINTER
Use
Để sắp xếp DTB giảm dần ta làm như sau
INDEX ON – DTB To cdDTB
3.5 Sắp xếp và tìm kiếm
- Ví dụ 3:
In danh sách khóa 41 xếp theo lớp, cùng lớp xếp theo 
ngày sinh tăng dần
USE QLSV
INDEX ON LOP + STR(YEAR(NS),4) +
106
STR(MONTH(NS),2) + STR(DAY(NS),2) TO vd3 FOR
LEFT(Lop,2)=“41”
DISP ALL TO PRINTER
Use
Lưu ý: Khi sắp xếp theo một trường thì viết tên trường 
sau ON, nhiều trường thì biến tất cả thành kiểu xâu để 
ghép
3.5 Sắp xếp và tìm kiếm
b. Lệnh SORT (sắp xếp)
-Tác dụng:
- Dùng sắp xếp các bản ghi trong tệp đang mở và gửi 
kết quả sang tệp mới
107
- Dạng lệnh:
SORT TO ON [/A|/D][/C]
[,trường 2 [/A | /D][/C]..]
[FIELDS ]
[FOR ]
3.5 Sắp xếp và tìm kiếm
- Tác động:
Lệnh sẽ sắp xếp các bản ghi dựa theo khóa là các 
trường
Nếu có /A thì sắp xếp tăng dần (ngầm định là /A)
108
Nếu có /D thì sắp xếp giảm dần
Nếu có /C thì không phân biệt chữ hoa, chữ thường
Kết quả được lưu vào tệp mới có tên là tentep
Nếu có FIELDS thì chỉ có các trường trong ds trường 
mới được gửi sang tệp kết quả
Nếu có FOR thì chỉ các bản ghi thỏa mãn mới được sắp 
xếp
3.5 Sắp xếp và tìm kiếm
- Lưu ý:
Không đặt tên tệp kết quả trùng với tệp gốc
Không sắp xếp trường kí ức và trường logic
Sau khi sắp xếp, muốn xem kết quả phải mở tệp kết quả
109
Lệnh Sort có tốc độ chậm hơn so với lệnh Index
Có nhiều lệnh không thực hiện được trên tệp xếp bằng 
lệnh Sort
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
In danh sách toàn trường theo khóa, lớp, điểm trung bình
USE QLSV
SORT TO VD1 ON LOP, DTB/D
110
USE VD1
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
- Ví dụ 2:
In danh sách lớp 41.21.01 với tên đã được xếp theo 
alphabe
USE QLSV
SORT TO VD2 ON TEN/AC, HODEM/AC FOR
111
LOP=“41.21.01”
USE VD2
LIST TO PRINTER
USE
3.5 Sắp xếp và tìm kiếm
c. Lệnh LOCATE
-Tác dụng:
- Dùng để tìm kiếm và định vị con trỏ đến bản ghi thỏa 
mãn điều kiện nào đó
- Dạng lệnh:
112
LOCATE FOR 
Lệnh sẽ duyệt tuần tự từ đầu tệp để tìm bản ghi đầu tiên 
thỏa mãn biểu thức logic
- Tác động:
Nếu thấy sẽ đặt con trỏ tại bản ghi đó
Nếu không thấy sẽ đặt con trỏ tại bản ghi EOF
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
Tìm sinh viên có mã là “HTC123”
USE QLSV
LOCATE FOR MASV=“HTC123”
113
DISPLAY
USE
Tìm sinh viên nữ sinh ngày 20/10/1985
USE QLSV
LOCATE FOR .NOT. GT .AND. NS={20/10/1985}
DISPLAY
3.5 Sắp xếp và tìm kiếm
d. Lệnh SEEK và FIND
-Tác dụng:
- Dùng để tìm kiếm nhanh 1 bản ghi trên tệp đã sắp 
xếp bằng lệnh Index
- Dạng lệnh:
114
SEEK 
FIND 
Biểu thức của lệnh SEEK phải là kiểu xâu
- Trong đó:
Biểu thức của lệnh FIND là biểu thức bất kỳ
3.5 Sắp xếp và tìm kiếm
- Ví dụ 1:
Tìm sinh viên có mã là “HTC123”
USE QLSV
LOCATE FOR MASV= “HTC123”
DISPLAY
115
USE
SEEK “HTC123”
DISPLAY
USE
INDEX ON MASV TO CDMASV
USE QLSV
3.6 Lệnh tính toán
a. Lệnh COUNT
-Tác dụng:
- Dùng để đếm số bản ghi trên tệp 
- Dạng lệnh:
116
COUNT [TO ] [FOR ]
Biến: là biến nhớ dùng để lưu kết quả sau khi đếm
- Trong đó:
3.6 Lệnh tính toán
-Tác động:
- Lệnh sẽ đếm số bản ghi thỏa mãn biểu thức logic và 
gửi kết quả vào biến 
- Nếu không có TO thì hiện kết quả lên màn hình 
nếu ở chế độ SET TALK ON
117
Để in kết quả lên màn hình ta dùng lệnh:
? 
?? 
3.6 Lệnh tính toán
- Ví dụ 1:
Tính tỷ lệ khá giỏi của khóa 41
USE QLSV
COUNT TO TSO FOR LEFT(LOP,2)=’41’
118
COUNT TO TGIOI FOR LEFT(LOP,2)=’41’ .AND.
DTB>=8.0
COUNT TO TKHA FOR LEFT(LOP,2)=’41’ .AND.
DTB>=7.0 .AND. DTB<8.0
?’Tỷ lệ sv giỏi: ’, TGIOI/TSO *100, ‘%’
?’Tỷ lệ sv khá: ’, TKHA/TSO *100, ‘%’
3.6 Lệnh tính toán
b. Lệnh SUM
-Tác dụng:
Dùng để tính tổng các trường số trên tệp
- Dạng lệnh:
119
SUM [phạm vi] [ds biểu thức] [TO ]
[FOR ]
Phạm vi ngầm định là tất cả các bản ghi
- Trong đó:
Ds biểu thức gồm các trường số cần tính tổng, ngầm 
định là mọi trường số
Ds biến là các biến lưu kết quả sau khi tính tổng
3.6 Lệnh tính toán
-Tác động:
- Lệnh duyệt từ đầu tệp tới cuối tệp để tính tổng các 
trường số trên các bản ghi
- Sau đó gửi kết quả vào các biến
120
- Trường hợp có FOR thì chỉ có những bản ghi thỏa 
mãn biểu thức logic mới được tính tổng
-Ví dụ:
Tệp dữ liệu quản lý vật tư có cấu trúc như sau:
Thuộc tính Name Type Width
Loại Lp L 1 .T. (Nhập)
Số phiếu Sp C 5
Ngày lập Nl D 8
Nội dung ND C 30
Tên vật tư TENVT C 15
121
Mã vật tư MAVT C 6
Đơn vị tính DVT C 4
Khối lượng KL N 10
Đơn giá DG N 10
Số tiền ST N 12
Mã kho MAKH C 2
3.6 Lệnh tính toán
- Ví dụ 1:
Tính tổng khối lượng, số tiền nhập xi măng mã “XM30” 
trong quí I năm 2006
USE QLVT
122
SUM KL, ST TO TKL, TST FOR LP .AND. MAVT=“XM30”
.AND. MONT(NL)<4 .AND. YEAR(NL) =2006
?’ Tổng khối lượng: ‘, TKL
?’ Tổng số tiền: ‘, TST
3.6 Lệnh tính toán
- Ví dụ 2:
Giả sử có 2 loại đơn vị tính là KG và Tấn chưa chuẩn 
hóa, yêu cầu tính tổng khối lượng xi măng XM30 còn lại 
trong các kho
Các bước:
123
- Đổi đơn vị từ tấn sang kg (khối lượng, đơn giá)
- Tính tổng nhập
- Tính tổng xuất
- Kết quả bằng tổng nhập – tổng xuất
3.6 Lệnh tính toán
- Ví dụ 2:
USE QLVT
REPL DVT WITH “KG”, KL WITH KL*1000
, DG WITH DG/1000
124
FOR DVT=“TẤN”
SUM KL TO TN FOR LP .AND. MAVT=“XM30”
SUM KL TO TX FOR .NOT. LP .AND. MAVT=“XM30”
?’Còn lại là: ‘, Tn-Tx
3.6 Lệnh tính toán
c. Lệnh AVERAGE
-Tác dụng:
Dùng để tính trung bình cộng các trường số trên tệp
- Dạng lệnh:
125
AVERAGE [ds biểu thức] [TO ] [FOR ]
- Trong đó:
Ds biểu thức gồm các trường số cần tính trung bình 
cộng, ngầm định là mọi trường số
Ds biến là các biến lưu kết quả sau khi tính trung bình 
cộng
3.6 Lệnh tính toán
-Tác động:
- Lệnh duyệt từ đầu tệp tới cuối tệp để tính trung bình 
cộng các trường số trên các bản ghi
- Sau đó gửi kết quả vào các biến
126
- Trường hợp có FOR thì chỉ có những bản ghi thỏa 
mãn biểu thức logic mới được tính bình quân
-Ví dụ:
Tính khối lượng bình quân của vật tư có mã XM30:
USE QLVT
AVER KL TO KLBQ FOR MAVT=“XM30”
?KLBQ
3.6 Lệnh tính toán
d. Lệnh TOTAL
-Tác dụng:
Dùng để tính tổng trên các nhóm con các bản ghi của tệp
Nhóm bản ghi:
127
- Là các bản ghi thỏa mãn:
1. Liên tiếp nhau 2. Cùng tiêu thức phân nhóm
MAVT TENVT KL ST
01 Sắt 3 5
02 Gạch 5 8
01 Sắt 6 2 6
MAVT TENVT KL ST
01 Sắt 3 5
01 Sắt 6 2 6
02 Gạch 5 8
 Để phân nhóm ta sắp xếp (Index)
3.6 Lệnh tính toán
- Dạng lệnh:
TOTAL ON To [FIELDS ]
[FOR ]
- Trong đó:
128
: là biểu thức bất kỳ dùng làm tiêu thức phân nhóm
: là tên của tệp kết quả (.dbf)
: là tên các trường số cần tính tổng, ngầm 
định là tất cả các trường số có trong tệp
3.6 Lệnh tính toán
- Tác động:
Fox sẽ duyệt các bản ghi từ đầu tới cuối tệp để chia các 
bản ghi thành các nhóm căn cứ vào:
+ Vị trí trên tệp
+ Tiêu thức phân nhóm
129
Sau đó tính tổng các trường số trên từng nhóm bản ghi 
và gửi kết quả của mỗi nhóm vào một bản ghi của tệp 
dữ liệu kết quả
Trường hợp có FOR thì chỉ bản ghi thỏa mãn mới được 
tính tổng
3.6 Lệnh tính toán
- Nhận xét:
Tệp ghi kết quả có:
+ Cấu trúc giống tệp ban đầu
+ Số bản ghi bằng số nhóm con
130
+ Giá trị ở trường được tính tổng là tổng nhóm tương ứng
+ Giá trị ở trường không được tính tổng là giá trị của 
trường nằm trên bản ghi đầu tiên của nhóm
Vậy khác nhau giữa sum và total là:
Sum tính tổng trên một nhóm bản ghi cụ thể
Total tính tổng trên nhiều nhóm bản ghi
3.6 Lệnh tính toán
- Ví dụ 1:
Báo cáo tổng khối lượng, tổng số tiền từng loại vật tư 
trong kho
Các bước:
131
- Sắp xếp vật tư theo từng nhóm INDEX
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
3.6 Lệnh tính toán
USE QLVT
INDEX ON MAVT TO VD1.IDX FOR LP
TOTAL ON MAVT TO KQ1.DBF FIELDS KL, ST
132
USE KQ1
LIST FIELDS MAVT, TENVT, KL, ST
USE
3.6 Lệnh tính toán
- Ví dụ 2:
Báo cáo tồn kho từng loại vật tư (đơn vị đã chuẩn hóa)
Các bước:
133
- Gán KL của chứng từ xuất là số âm
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
- Sắp xếp vật tư theo từng nhóm INDEX
3.6 Lệnh tính toán
USE QLVT
REPL KL WITH –KL FOR .NOT. LP
INDEX ON MAVT TO VD2.IDX
134
TOTAL ON MAVT TO KQ2.DBF FIELDS KL
USE KQ2
LIST FIELDS MAVT, TENVT, KL
USE
3.6 Lệnh tính toán
- Ví dụ 3:
Tính tổng số tiền từng loại vật tư trong từng kho của 
tháng 9 năm 2006
Các bước:
135
- Sắp xếp vật tư theo từng nhóm INDEX
- Tính tổng các nhóm TOTAL
- Mở tệp kết quả
- Hiển thị kết quả
3.6 Lệnh tính toán
USE QLVT
INDEX ON MAVT+MAKH TO VD3.IDX FOR LP .AND.
MONT(NL)=9 .AND. YEAR(NL)=2006
136
TOTAL ON MAVT+MAKH TO KQ3.DBF FIELDS ST
USE KQ3
LIST FIELDS MAVT, TENVT, ST
USE

File đính kèm:

  • pdfbai_giang_tin_hoc_ung_dung_chuong_iv_he_quan_tri_co_so_du_li.pdf