Hệ quản trị cơ sở dữ liệu FOXPRO giảng viên Trần Thị Hà
Trang 2Chương I : Các khái niệm cơ bản
Tài liệu tham khảo:
1/Giáo trình Lý thuyết và bài tập Foxpro
Tác giả: Nguyễn Đình Tê, Hoàng Đức Hải
2/
3/
3/
Trang 4Chương I : Các khái niệm cơ bản
Trang 512/26/23 5
Chương I : Các khái niệm cơ bản
2 Từ khóa
Mỗi ngôn ngữ lập trình đều có một bộ từ khóa riêng, đó là bộ
từ vững giao tiếp giữa người và máy theo ngôn ngữ tự nhiên
Foxpro cho phép viết tắt chỉ cần 4 ký tự của một từ khóa dài
Ví dụ: Modify command -> modi comm
* Các tên chuẩn: Là bộ từ vững của Foxpro dùng để giao tiếp giữa người và máy trong chế độ trực tiếp hoặc gián tiếp
Ví dụ: go/ goto; input; list; …
Trang 6Chương I : Các khái niệm cơ bản
+ Tên tự đặt: Dùng để chỉ các hằng, các biến, các hàm, các thủ tục các tên chương trình, các trường trong các Record Tên có thể đặt tùy ý nhưng phải tuân theo nguyên tắc sau:
- Phải bắt đầu bằng một kí tự, tiếp theo sau có thể dùng kí số
và dấu gạch dưới
- Không được trùng với các từ chuẩn và phải viết liền nhau Tối đa là 10 kí tự
Trang 712/26/23 7
Chương I : Các khái niệm cơ bản
3 Kiểu dữ liệu
a/ Kiểu số (Numeric) số nguyên: có thể biểu diễn 20 kí số
gồm phần nguyên, phần thập phân và dấu chấm
Trang 8Chương I : Các khái niệm cơ bản
c/ Kiểu chuỗi (Character): Tập hợp các ký tự trong bảng mã
ASCII có kích thước tối đa là 254 bytes và được đặt trong
cặp dấu nháy ‘ ‘, hoặc dấu nháy kép “ “
d/ Kiểu ngày (Date): Kích thước cố định 8 bytes
Mặc định ngày của Mỹ: {mm/dd/yy}
Cài đặt kiểu ngày của French: Set date french -> {dd/mm/yy}
Ví dụ: {30/04/99}
Trang 912/26/23 9
Chương I : Các khái niệm cơ bản
e/ Kiểu logic (Logical):Kiểu luận lý chỉ có hai giá trị đúng (.T.)
hoặc sai (.F.)
Kí hiệu: Đúng: T
Sai: F
f/ Kiểu ghi nhớ (Memo): dùng cho những phần văn bản có
kích thước lớn hơn 254 bytes Dữ liệu kiểu Memo được lưu trữ trong tập tin cùng tên với tập tin CSDL nhưng có phần
mở rộng FPT
Trang 10Chương I : Các khái niệm cơ bản
4 Biến bộ nhớ
Foxpro có nhiều loại biến: Biến nhớ, biến trường, biến hệ thống, biến chung, biến riêng, biến mảng và biến màn hình Biến nhớ (gọi tắt là biến) là tên được đặt cho các vùng
nhớ của RAM dành để chứa các giá trị có thể thay đổi mỗi
lúc một khác nhau khi ta sử dụng chúng trong chế độ trực
tiếp hoặc gián tiếp
Trang 1112/26/23 11
Chương I : Các khái niệm cơ bản
5 Cơ sở dữ liệu
Muốn có một CSDL thì trước hết phải tạo lập cấu trúc
Cũng giống như muốn xây nhà thì phải đổ móng và đúc
khung nhà.(sử dụng lệnh Creat) Xem cấu trúc (sử dụng lệnh List Structure) hoặc sửa (sử dụng lệnh Modify Structure) cấu trúc mà bạn tạo lập
Trang 12
Chương I : Các khái niệm cơ bản
Sau khi đã có cấu trúc CSDL bạn có thể nhập dữ liệu và tập tin CSDL cũng giống như sau khi có nền móng và khung
nhà, người ta bắt đầu xây dựng những chi tiết của tòa nhà
(sử dụng lệnh Append)
Trang 13
12/26/23 13
Chương I : Các khái niệm cơ bản
*Định nghĩa về CSDL
Cột: Mỗi cột mô tả một thuộc tính gọi là Fields( trường)
Dòng: Mỗi dòng mô tả đầy đủ một đơn vị của CSDL gọi là
Record (mẫu tin) Như vậy mỗi Record là tập hợp các Fields
để được một đối tượng nào đó
*Các đặc trưng của Fields (trường)
+ Tên trường (field name)
+ Kiểu của trường (field type)
+ Kích thước của trường (field width)
Trang 14Chương I : Các khái niệm cơ bản
*Các đặc trưng của Record (Mẫu tin):
+ Các vị trí trong tập tin + Bắt đầu tập tin BOF
+ Kết thúc tập tin EOF + Record thứ N
+ Xử lý nội dung tập tin + Đóng tập tin CSDL
Trang 1512/26/23 15
Chương I : Các khái niệm cơ bản
6 Hằng:
Hằng là loại dữ liệu thuộc một trong các kiểu dữ liệu của
Foxpro có trị không thay đổi trong suốt quá trình thực hiện
Trang 16Chương I : Các khái niệm cơ bản
Trang 17Dùng để nối 2 kí tự, ký tự trống cuối chuỗi thứ nhất sẽ chuyển
về cuối chuỗi thứ hai của chuỗi mới tạo
Ví dụ: A=‘ABC’, B=‘DEF’, A+B= ABCDEF
Trang 18Chương I : Các khái niệm cơ bản
Trang 1912/26/23 19
Chương I : Các khái niệm cơ bản
d/ Các phép toán logic: Not, And, Or
+ Not kí hiệu: !
+ And giao hay và: T , F
+ Or hoặc : T , F
Trang 20Chương I : Các khái niệm cơ bản
8 Biểu thức (Expression)
a/ Biểu thức số (Numeric) là biểu thức có trị là các số.
b/ Biểu thức character( btc) là biểu thức có các toán hạng là
các chuỗi kí tự, kết quả cũng là chuỗi
Trang 2112/26/23 21
Chương I : Các khái niệm cơ bản
c/ Biểu thức logic (btL) là biểu thức mà các toán hạng kết hợp
với các toán tử logic, kết quả là trị logic (.T hoặc F.)
d/ Biểu thức date (btD) là biểu thức có các toán hạng có trị là
ngày, chuỗi ngày và số nguyên kết hợp với các toán hạng
Trang 22Chương I : Các khái niệm cơ bản
9 Mảng (Array)
a/ Định nghĩa: Mảng là một vùng bộ nhớ dùng để ghi nhớ một
tập hợp các dữ liệu Tên mảng được xác định như tên biến
Trang 23<Tên mảng>: tuân theo quy tắc đặt tên biến nhớ.
<btn1>: độ lớn của mảng 1 chiều hay độ lớn của chiều thứ
nhất (dòng) đối với mảng hai chiều
<btn2>: độ lớn của chiều thứ 2 (cột) đối với mảng 2 chiều
Ví dụ: dimension A[5]
dimension B[5,3]
c/ Cách truy nhâp Tương tự trong Pascal.
Trang 24Chương II : Tạo lập – Hiệu chỉnh CSDL
1.Cấu trúc chung nhiều lệnh.
a/ Định nghĩa: Lệnh là một chỉ thị bắt máy phải thi hành Khi ra
lệnh cho máy, nếu ở chế độ trực tiếp, bạn gõ lệnh từ cựa sổ lệnh và ấn phím enter ( )
Nếu ở chế độ gián tiếp thì phải viết câu lệnh trong văn bản chương trình và chỉ thị nào bạn chạy chương trình bằng lệnh
DO thì câu lệnh trong chương trình mới có hiệu lực dù gõ
lệnh ở chế độ trực tiếp hay viết lệnh ở chế độ gián tiếp thì
bạn cũng phải viết đúng lệnh
Trang 2512/26/23 25
Chương II : Tạo lập – Hiệu chỉnh CSDL
b/ Cấu tạo lệnh:
Dạng tổng quát của một câu lệnh:
Lệnh [phạm vi] [for / while <điều kiện>] [like <mẫu>];
[[field] <danh sách các trường];
[from <tên tập tin> / array <tên mảng>];
[to printer / to file <tên tập tin> / <danh sách biến>]{off}
Trang 26Chương II : Tạo lập – Hiệu chỉnh CSDL
Trang 2712/26/23 27
Chương II : Tạo lập – Hiệu chỉnh CSDL
+For / while <điều kiện>: điều kiện lôgic
+For: tác động lên toàn bộ tập tin
+While: tác động từ bản ghi hiện hành đến hết tập tin
+Field <danh sách các trường>: liệt kê danh sách các trường
cần tác động trong câu lệnh
+From <tên tập tin> / Array <mảng>: Tên của tập tin hay tên
của mảng mà tử đó lệnh này sẽ lấy số hiệu để sử dụng cho tập tin DBF đang mở
Trang 28Chương II : Tạo lập – Hiệu chỉnh CSDL
+Like <mẫu>: chỉ tác động những thành phần giống như mẫu
chỉ định
+To printer / to file <tên tập tin> / <danh sách biến>: xuất kết
quả ra máy in hoặc tập tin Tùy chọn này chỉ có vài lệnh sử dụng được
+Off: Tắt số thứ tự của Record
Trang 2912/26/23 29
Chương II : Tạo lập – Hiệu chỉnh CSDL
c/ Phân loại lệnh:
+ Có 2 loại lệnh:
+ Lệnh trực tiếp: - Lệnh gõ trực tiếp từ cựa sổ lệnh
- Các lệnh thực hiện thông qua hệ thống
Menu
+ Lệnh gián tiếp: DO < tên chương trình>
Trang 30Chương II : Tạo lập – Hiệu chỉnh CSDL
2.Tạo lập – Xem – Sửa – Ghép cấu trúc CSDL.
a/ Tạo cấu trúc bằng lệnh Creat từ cựa sổ lệnh:
*Cú pháp: Creat [<Tên tập tin CSDL>]
Tạo cấu trúc dữ liệu cho tập tin được chỉ định
<Tên tập tin CSDL>: Là tên do bạn tự đặt Foxpro ngầm định
phần mở rộng là BDF
Sau khi gõ lệnh xong Poxro yêu cầu ta khai báo cấu trúc của
tệp
Trang 3112/26/23 31
Chương II : Tạo lập – Hiệu chỉnh CSDL
Cụ thể là:
+ khai báo - tên trường (field name)
- kiểu trường (field type)
- độ rộng của trường (field width)
- chữ số thập phân nếu là kiểu số
Sau khi khai báo xong ta ấn Ctrl+W để lưu cấu trúc này lên đĩa
Chọn Yes để nhập dữ liệu không nhập chọn No
Trang 32Chương II : Tạo lập – Hiệu chỉnh CSDL
Ví dụ: Tạo tập dữ liệu TS.DBF để quản lý học sinh thi chuyển
cấp có cấu trúc như sau:
Hoten (c, 30); ngaysinh (d, 8); gioitinh(L,1) T là Nam, F là
Nu, Sbd (n, 3); truong( c,15) ghi tên trường mà học sinh tốt
nghiệp; diemtoan(n,5,2); diemvan(n,5,2); ưutien(n,5,2);
Khai báo cấu trúc cho tệp Khai báo xong chương trình ấn
Ctrl + W để lưu lúc này trên màn hình xuất hiện “In put data
Trang 3312/26/23 33
Chương II : Tạo lập – Hiệu chỉnh CSDL
b/ Xem cấu trúc bằng lệnh Display structure hay List structure
Cú pháp:
+ Display/List structure [to print] [to file]<tên tập tin> [off]
Trong đó:
- display structure: hiển thị cấu trúc theo từng trang màn hình
- list structure: hiển thị cấu trúc theo kiểu cuốn màn hình
- to print: In cấu trúc ra giấy
- to file<tên tập tin>: ghi cấu trúc vào tệp văn bản
Trang 34Chương II : Tạo lập – Hiệu chỉnh CSDL
c/ Xem cấu trúc bằng lệnh Display structure hay List structure
Cú pháp:
+ Display / List [phạm vi] [danh sách các trường] [for <đk1>];
[while<đk2>] [to print] [off]
Trong đó:
- display : hiển thị nội dung của các record theo từng trang màn hình
- list : hiển thị nội dung của các record theo kiểu cuốn màn hình
- to print: In nội dung của các record ra giấy
- [for <đk1>] và [while<đk2>]: điều kiện để hạn chế hiển thị record
- [off]: khi không muốn hiển thị số thứ tự của các record
Trang 352 Đối với lệnh list không ghi phạm vi thì máy ngầm định là
all Còn đối với lệnh display nếu không ghi phạm vi thì ngầm định là một mẫu tin hiện hành
3.Trong trường hợp lệnh quá dài ta có thể ghi chúng trên
nhiều hàng nhưng trước khi xuống hàng ta phải ghi dấu
chấm phẩy (;)
4 Chúng ta có thể dùng phím tắt F5
Trang 36Chương II : Tạo lập – Hiệu chỉnh CSDL
Trang 38Chương II : Tạo lập – Hiệu chỉnh CSDL
Nếu có sửa thì tiến hành:
+ Đưa con trỏ đến cột trước cột cần chèn rồi ấn Ctrl + I để chèn
thêm cột vào
+ Đưa con trỏ đến cột trước cột cần xóa rồi ấn Ctrl + D để xóa cột + Đưa con trỏ đến cột trước cột cần di chuyển rồi ấn Ctrl + Page Up hoặc Ctrl + Page Down để di chuyển cột này về phía trước hoặc phía sau
+ Sửa trực tiếp về kiểu dữ liệu, độ rộng Sau khi sửa xong ấn Ctrl +
W để lưu rồi chọn mục Yes
Chú ý: Muốn xóa màn hình trong Foxpro thì bạn gõ lệnh Clear
Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước:
Trang 39- to <tên csdl mới>: sao chép cấu trúc của tập tin DBF đang mở vào
một tập tin mới Tập tin này chỉ có cấu trúc, không có dữ liệu.
Trang 40Chương II : Tạo lập – Hiệu chỉnh CSDL
f/Tạo tập tin cấu trúc mới từ một tập tin cấu trúc csdl.
Cú pháp:
Creat <tên tập tin mới> From <Tên tập tin cấu trúc CSDL>
Lệnh này cũng tạo ra tập tin cấu trúc giống như thực hiện lệnh Copy structure nhưng không phải mở tập tin nguồn.
Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước:
creat tsm2 from ts
use tsm2
disp stru
Trang 42Chương II : Tạo lập – Hiệu chỉnh CSDL
b/ Điều chỉnh dữ liệu bằng lệnh @ … say … get …
Cú pháp:
@ <tọa độ> Say ‘thông báo’ Get <biến nhớ>;
[valid <đk>] [range a[, b]]
Ví dụ: tl= space(1)
@ 20,15 say ‘Ban co lam nua khong (C/K)?’ get tl
read
Trang 44Chương II : Tạo lập – Hiệu chỉnh CSDL
Chú ý:
1.Các biến nhớ trong câu lệnh này phải được khai báo trước cụ thể:
Nếu là biến kiểu số thì khai báo: biến = 0
Nếu là biến kiểu chữ thì khai báo: biến = space(m) (m là kí
tự)
Nếu là biến kiểu ngày thì khai báo: biến = {}
Nếu là biến kiểu logic thì khai báo: biến = T hoặc F
2.Nếu có ghi Valid<đk>: hợp lệ
Invalid: không hợp lệ
Trang 46Chương II : Tạo lập – Hiệu chỉnh CSDL
*Lệnh nhập xuất dữ liệu cơ bản:
Dang 1: Input ‘Thông báo’ to <biến nhớ>
Ví dụ: Input ‘Ban cho biet ten ? ‘ to t
Input ‘Cho biet ngay sinh của bạn ?’ to ns
Dang 2: Accept ‘Thông báo’ to <biến nhớ> (nhận lấy)
Ví dụ: Accept ‘cho biet ho ten cua ban ?’ to x
Lệnh này chỉ cho phép nhập dữ liệu kiểu character
Trang 4712/26/23 47
Chương II : Tạo lập – Hiệu chỉnh CSDL
c/Lệnh thay thế dữ liệu các trường trong tệp
Cú pháp:
Replace [phạm vi] <trường i> with <giá trị i> [for <đk1>] ; [while<đk2>]
Trong đó: - [for<đk1>]: Tác động cho toàn bộ tập tin theo điều kiện
Trang 48Chương II : Tạo lập – Hiệu chỉnh CSDL
d/Lệnh xem và sửa dữ liệu trong tệp dữ liệu
Cú pháp:
Browse [phạm vi] [fields <d/s các trường>] [for<đk>]
Lệnh browse là lệnh mạnh nhất của foxpro dùng để hiệu
chỉnh dữ liệu bao gồm: Xem, sửa, thêm, tìm kiếm, đánh dấu xóa một hoặc nhiều record
Ví dụ: Giả sử cần xem và sửa lại 4 mẫu tin đầu tiên của tệp
ts.DBF
Use ts
Browse next 4
Trang 4912/26/23 49
Chương II : Tạo lập – Hiệu chỉnh CSDL
e/Lệnh sửa đổi nội dung của mẫu tin trong tệp dữ liệu
Change [phạm vi] [fields <d/s các trường>] [for/while<đk>]
Ví dụ: Giả sử cần sửa lại điểm môn toán cho thí sinh có SBD 15 trong tệp ts.DBF
Use ts Edit all field diemtoan for sbd= ’15’ Sửa lại điểm toan xong ấn Ctrl + W để lưu
Use
Trang 50Chương II : Tạo lập – Hiệu chỉnh CSDL
f/Một số lệnh cài đặt
i Lệnh đặt lại kiểu ngày
Cú pháp: Set date <tên kiểu ngày>
Kiểu ngày gồm: American: mm/dd/yy
French: dd/mm/yy
Japan: yy/mm/dd
Ví dụ: set day french
ii Lệnh cho phép biểu diễn năm 4 chữ số hoặc 2 chữ số.
Set century on 4 chữ số
Set century off 2 chữ số
Trang 5112/26/23 51
Chương II : Tạo lập – Hiệu chỉnh CSDL
iii Lệnh cài đặt số chữ số thập phân
Cú pháp: set decimal to <n> (n là số nguyên)
Use <tên tệp dữ liệu>
Use có tác dụng đóng tập tin CSDL và các tập tin chỉ mục
liên quan
Ví dụ: use ts Mở tệp ts
use Đóng tệp ts
Trang 52Chương II : Tạo lập – Hiệu chỉnh CSDL
vi Lệnh xuất dữ liệu ra màn hình
Dạng 1: ? ‘ thông báo’ , bt1, bt2 (Writeln)
Xuất dữ liệu theo từng dòng
Ví dụ: ? ‘Dien tich hinh vuong la: ‘, s
Dạng 2: ?? ‘ thông báo’ , bt1, bt2 (Write)
Xuất dữ liệu trên cùng một dòng
Ví dụ: ?? ‘Dien tich hinh vuong la: ‘, s
Trang 5312/26/23 53
Chương II : Tạo lập – Hiệu chỉnh CSDL
Hỏi bài cũ
Câu 1 Tạo tập dữ liệu ts.DBF để quản lý học sinh cấp 2 thi
chuyển cấp lên cấp 3 có cấu trúc như sau:
Hoten (c, 30); ngaysinh (d, 8); gioitinh(L,1) T là Nam, F là
Nu, Sbd (n, 3); truong( c,15): ghi tên trường mà học sinh tốt nghiệp; diemtoan(n,5,2); diemvan(n,5,2); ưutien(n,5,2): tốt
nghiệp loại gioi +2 điểm, loại khá +1.5 điểm, con liệt sỹ
+1điểm; tongdiem(n,5,2): ghi tổng số điểm (diemtoan +
diemvan + ưutien )
Câu 2 Lưu csdl ts.DBF
Câu 3 Tính trường tongdiem
Câu 4 Xem toàn bộ csdl của tập dữ liệu ts
Trang 54Chương II : Tạo lập – Hiệu chỉnh CSDL
Trang 5512/26/23 55
Chương III : Các lệnh xử lý trên một CSDL
1.Go/ Goto (Dịch chuyển con trỏ tệp).
Cú pháp : (định vị tuyệt đối)
Go <n>
Goto <n>
Đưa con trỏ tới mẫu tin thứ n trong tệp (n>=1 và n<=số thư tự
của record cuối cùng).
Chú ý: Go top đưa con trỏ về mẫu tin đầu tiên.
Go bottom đưa con trỏ về mẫu tin cuối cùng.
Xác định số record hiện hành dùng hàm Recno()
Trang 56Chương III : Các lệnh xử lý trên một CSDL
2.Skip (Dịch chuyển con trỏ tệp).
Cú pháp: (định vị tương đối)
Skip <n>
Đưa con trỏ qua n mẫu tin kể từ mẫu tin hiện hành.
Trong đó: n>0 con trỏ dời về phía cuối tập tin.
n<0 con trỏ dời về phía đầu tập tin
nếu không có n thì mặc định là dời xuống dưới 1 record
nếu di chuyển con trỏ quá vị trí BOF hoặc EOF thì sẽ xuất hiện thông bão lỗi.
Chú ý : Trong lập trình ta thường sử dụng lệnh Skip tức là dịch chuyển
xuống 1 mẫu tin kế tiếp.
Ví dụ: use ts
Trang 5712/26/23 57
Chương III : Các lệnh xử lý trên một CSDL
3.Insert (chèn thêm mẫu tin).
Lệnh Insert cho phép chèn thêm record trống vào bất kỳ vị trí nào trong tập tin CSDL đang mở.