75
06/20/22 1 HỆ QUẢN TRỊ CƠ SỞ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU FOXPRO DỮ LIỆU FOXPRO Số tiết: 45 tiết Giảng viên: Trần Thị Hà Email: [email protected] Điện thoại: 0985.306.844

Foxpro Can Ban

Embed Size (px)

Citation preview

Page 1: Foxpro Can Ban

04/12/23 1

HỆ QUẢN TRỊ CƠ SỞ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU FOXPRODỮ LIỆU FOXPRO

Số tiết: 45 tiếtGiảng viên: Trần Thị HàEmail: [email protected]Điện thoại: 0985.306.844

Page 2: Foxpro Can Ban

04/12/23 2

Chươ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 Foxpro1/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/2/

3/3/

Page 3: Foxpro Can Ban

04/12/23 3

Chương I : Các khái niệm cơ bản

1. Bộ ký tựa/ Các chữ cái:- Chữ cài tiếng Anh A, B, …, Z; a, b, …, z Trong mã ASCII 65,66,…,90;97,98,…122- Các chữ cái tạo nên các từ khóa, các tên chuẩn, tên tự tạo,

các chuỗi kí tự và kí tự.- Các chữ cái tạo nên phương tiện, ngôn ngữ giữa người và

Máy

Page 4: Foxpro Can Ban

04/12/23 4

Chương I : Các khái niệm cơ bản

b/ Các chữ số: 0…9

48..57

Kiểu số nguyên(Numeric) (N)

Kiểu số thực (Float) (F)

Kiểu ngày tháng (Date) (D)

c/ Các kí hiệu:

& ‘ ( ) * + ; - . / : < = > \ { }

Page 5: Foxpro Can Ban

04/12/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; …

Page 6: Foxpro Can Ban

04/12/23 6

Chươ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ự.

Page 7: Foxpro Can Ban

04/12/23 7

Chương I : Các khái niệm cơ bản3. 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.

Ví dụ: 12358.368

b/ Kiểu số thực (Float): Sử dụng trong ngành toán học, vật lý và hóa học.

Ví dụ: 1.2E+3= 1200

1.2E-3=0.0012

Page 8: Foxpro Can Ban

04/12/23 8

Chương I : Các khái niệm cơ bảnc/ 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}

Page 9: Foxpro Can Ban

04/12/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

Page 10: Foxpro Can Ban

04/12/23 10

Chươ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.

Page 11: Foxpro Can Ban

04/12/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.

Page 12: Foxpro Can Ban

04/12/23 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).

Page 13: Foxpro Can Ban

04/12/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)

Page 14: Foxpro Can Ban

04/12/23 14

Chương I : Các khái niệm cơ bản

*Các đặc trưng của Record (Mẫu tin):+ Số thứ tự của Record + Kích thước của Record + Con trỏ Record *Cơ chế hoạt động:+ Chọn vùng làm việc + Mở tập 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

Page 15: Foxpro Can Ban

04/12/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 chương trình.

+ Hằng số: 0; 1.5; -23.76; 12E+3+ Hằng chuỗi: “” hoặc ‘’Ví dụ: ‘ABDFSDT’ “Chào bạn”+ Hằng ngày tháng: {}Ví dụ: {30/04/82}

{} hằng rỗng

Page 16: Foxpro Can Ban

04/12/23 16

Chương I : Các khái niệm cơ bản

7. Các phép toán số học:a/ Các phép toán số học+Toán tử đảo dấu: - Ví dụ: 10 đảo dấu -10+ Toán tử lũy thừa: * hoặc ^Ví dụ: R2= R*R= R^2+Toán tử lớp nhân: Nhân *, chia /+Toán tử lớp cộng: + hoặc –+Toán tử chia lấy dư: % Ví dụ: 11%3 = 2

Page 17: Foxpro Can Ban

04/12/23 17

Chương I : Các khái niệm cơ bản

b/ Các phép toán chuỗi kí tự:

+Phép cộng: +

Ví dụ: A=‘ABC’, B=‘DEF’, A+B= ABCDEF

+ Phép trừ: -

Dù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

Page 18: Foxpro Can Ban

04/12/23 18

Chương I : Các khái niệm cơ bản

c/ Các phép toán so sánh:<>=<>, !=, #: toán hạng trái không bằng toán hạng phải.<=>===: hoàn toàn bằng

Các toán tử quan hệ tác động lên hai toán hạng cùng kiểu (Mumeric, character, date, logic) cho kết quả đúng (.T.) hoặc sai (.F.)

Page 19: Foxpro Can Ban

04/12/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.

Page 20: Foxpro Can Ban

04/12/23 20

Chươ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.

Ví dụ:

Holot= ‘Nguyễn Văn’

Ten=‘Nam’

? Holot + ’ ‘ + Ten= ‘Nguyễn Văn Nam’

Page 21: Foxpro Can Ban

04/12/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 cộng (+) hoặc toán hạng trừ (-)

Ví dụ:A= {31/05/99}B= {01/05/99}? A-B= 30?B+10=11/05/99

Page 22: Foxpro Can Ban

04/12/23 22

Chươ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.

Page 23: Foxpro Can Ban

04/12/23 23

Chương I : Các khái niệm cơ bản

b/ Cách khai báo mảng:Cú pháp: Dimension / Declare <tên mảng>[<btn1>[<btn2>]]

Trong đó:

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

Page 24: Foxpro Can Ban

04/12/23 24

Chươ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.

Page 25: Foxpro Can Ban

04/12/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}

Page 26: Foxpro Can Ban

04/12/23 26

Chương II : Tạo lập – Hiệu chỉnh CSDL

Trong đó: + Lệnh: là một từ khóa của Foxpro.+ Phạm vi:

All tất cả. Next <btn>: n bản ghi kể từ bản ghi hiện hành. Record <btn>: chỉ tác động đến bản ghi thứ <btn>. Rest: từ bản ghi hiện hành cho đến hết tập tin.

Page 27: Foxpro Can Ban

04/12/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ở.

Page 28: Foxpro Can Ban

04/12/23 28

Chươ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.

Page 29: Foxpro Can Ban

04/12/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>

Page 30: Foxpro Can Ban

04/12/23 30

Chươ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à .BDFSau khi gõ lệnh xong Poxro yêu cầu ta khai báo cấu trúc của

tệp.

Page 31: Foxpro Can Ban

04/12/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

Page 32: Foxpro Can Ban

04/12/23 32

Chươ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); tongdiem(n,5,2): ghi tổng số điểm(diemtoan+diemvan+ưutien)

Sau đó nhập dữ liệu vào khoảng 10 mẫu tin rồi lưu lên đĩa.Bài giải:Creat ts

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 record now ?” để nhập dữ liệu vào chúng ta chọn “Yes” nhập xong 10 dữ liệu ta ấn Ctrl + W để lưu.

Page 33: Foxpro Can Ban

04/12/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 structureCú 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.Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước: uses ts Display structure List structure to print

Page 34: Foxpro Can Ban

04/12/23 34

Chươ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 structureCú 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.

Page 35: Foxpro Can Ban

04/12/23 35

Chương II : Tạo lập – Hiệu chỉnh CSDL

Chú ý: 1. Để xem thông tin theo từng trang của màn hình thì dùng lệnh display, trong trường hợp in ra giấy in thì dùng lệnh list.2. Đố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

Page 36: Foxpro Can Ban

04/12/23 36

Chương II : Tạo lập – Hiệu chỉnh CSDL

Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước:

uses ts Display all holten, ngaysinh, gioitinh, diemtoan, diemvan off

use

Page 37: Foxpro Can Ban

04/12/23 37

Chương II : Tạo lập – Hiệu chỉnh CSDL

d/ Sửa cấu trúc.

Modify structure Sau khi gõ lệnh này xong trên màn hình diễn ra cấu trúc của tệp dữ liệu.

Nếu chỉ xem mà không sửa thì xem xong ấn phím Esc để thoát ra.

Page 38: Foxpro Can Ban

04/12/23 38

Chươ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: use ts modi stru use

Page 39: Foxpro Can Ban

04/12/23 39

Chương II : Tạo lập – Hiệu chỉnh CSDL

e. Sao chép cấu trúc từ tệp csdl đã có.

Cú pháp:

Copy structure to <tên csdl mới>[fields<các trường>] Trong đó:

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

Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước:

Use ts Copy stru to tsm1 fiel holot, ten, ngaysinh, gioitinh use tsm1 disp stru use

Page 40: Foxpro Can Ban

04/12/23 40

Chươ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 use

Page 41: Foxpro Can Ban

04/12/23 41

Chương II : Tạo lập – Hiệu chỉnh CSDL

3.Nhập và sửa dữ liệu.a/ Lệnh Append bổ sung mẫu tin.Cú pháp: Append Sau khi nhập xong dữ liệu thì ấn ctrl +W để lưu.Ví dụ: use ts append

use

Page 42: Foxpro Can Ban

04/12/23 42

Chươ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

Page 43: Foxpro Can Ban

04/12/23 43

Chương II : Tạo lập – Hiệu chỉnh CSDL

Cú pháp: @ <tọa độ> Say ‘thông báo’ Ví dụ: @ 20,15 say ‘Dien tich tam giac:’ + str (s)

Page 44: Foxpro Can Ban

04/12/23 44

Chươ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ệ

Page 45: Foxpro Can Ban

04/12/23 45

Chương II : Tạo lập – Hiệu chỉnh CSDL

Ví dụ: Tl= space(1)@ 20,15 say ‘Ban co lam nua khong C/K ?’get tl valid tl $ ‘CcKk’Read

Page 46: Foxpro Can Ban

04/12/23 46

Chươ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 xLệnh này chỉ cho phép nhập dữ liệu kiểu character

Page 47: Foxpro Can Ban

04/12/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

được chỉ định. -[while<đk2>]: Tác động từ record hiện hành cho đến hết tập

tin theo điều kiện được chỉ định.Ví dụ: ta sử dụng tệp CSDL ts.BDF đã tạo từ ví dụ trước:tinh tongdiem trong tệp này (tongdiem=diemtoan+diemvan+uutien) Use ts repl all tongdiem with (diemtoan+diemvan+uutien) brow use

Page 48: Foxpro Can Ban

04/12/23 48

Chươ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 Use

Page 49: Foxpro Can Ban

04/12/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 Có 2 dạng:Cú pháp:Dạng 1: Edit [phạm vi] [fields <d/s các trường>] [for/while<đk>] Dạng 2: 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

Page 50: Foxpro Can Ban

04/12/23 50

Chươ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àyCú 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/ddVí 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ố

Page 51: Foxpro Can Ban

04/12/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ânCú pháp: set decimal to <n> (n là số nguyên)Ví dụ: set decimal to 4iv. Lệnh cài đặt chính xác trong quá trình so sánh set exact on chính xác set exact off không chính xácNgầm định là offv. Lệnh mở tệp dữ liệu (đã có) 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

Page 52: Foxpro Can Ban

04/12/23 52

Chương II : Tạo lập – Hiệu chỉnh CSDL

vi. Lệnh xuất dữ liệu ra màn hìnhDạ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: ‘, sDạ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

Page 53: Foxpro Can Ban

04/12/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

Page 54: Foxpro Can Ban

04/12/23 54

Chương II : Tạo lập – Hiệu chỉnh CSDL

Trả lời bài cũ

Câu 1: Creat ts Câu 2: Ấn Ctrl + W để lưu

Câu 3: Replace all tongdiem with (diemtoan+diemvan+uutien)

Câu 4: Browse use

Page 55: Foxpro Can Ban

04/12/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()Ví dụ:

Use ts Use ts go 4 goto 4 brow brow use use

Page 56: Foxpro Can Ban

04/12/23 56

Chươ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

skip 4 Brow use

Page 57: Foxpro Can Ban

04/12/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ở.

Cú pháp: Insert [before][blank] Chú ý: -Nếu có ghi before: tức là chèn về phía trước mẫu tin

hiện hành. -Nếu không ghi before: tức là chèn về phía sau mẫu tin

hiện hành. - Nếu ghi blank tức là chèn thêm một mẫu tin trống

nhưng khồng hiện lên màn hình. Muốn nhập dữ liệu cho mẫu tin này ta dùng lệnh Replace, Change, Edit, Browse hoặc bằng chương trình.

Page 58: Foxpro Can Ban

04/12/23 58

Chương III : Các lệnh xử lý trên một CSDL

Ví dụ: Cần chèn vào danh sách ts.DBF một học sinh (giữa mẫu tin 03 và 04)

Use ts hoặc Use ts Go 03 Go 04 Insert Insert before nhập dữ liệu cần chèn ấn Ctrl+W để lưu.Brow Brow Use Use

Page 59: Foxpro Can Ban

04/12/23 59

Chương III : Các lệnh xử lý trên một CSDL

Bài tập:Câu 1.Tạo cấu trúc cho tệp tin HSNV.DBF gồm các trường sau: Holot(c,20); ten(c,10); gioitinh(c,3); ngaysinh(d,8);

bacluong(n,9,2); giadinh(L,1). Sau đó nhập khoảng 10 mẫu tin.Câu 2. Di chuyển con trỏ đến mẫu tin thứ 4Câu 3. Di chuyển con trỏ về đầu tập tin.Câu 4. Di chuyển con trỏ qua 4 mẫu tin kể từ mẫu tin hiện hành.Câu 5. Chèn mẫu tin vào sau mẫu tin thứ 7Câu 6. Chèn mẫu tin vào trước mẫu tin thứ 10

Page 60: Foxpro Can Ban

04/12/23 60

Chương III : Các lệnh xử lý trên một CSDL

Giải Bài tập:Câu 1: Create HSNV khai báo cấu trúc tệp, xong ấn Ctrl+W lưu cấu trúc,

chọn Yes để nhập dữ liệu, nhập xong ấn Ctrl+W để lưuCâu 2: Goto 4 browCâu 3: Go top browCâu 4: Recno() skip 4 brow

Page 61: Foxpro Can Ban

04/12/23 61

Chương III : Các lệnh xử lý trên một CSDL

Câu 5: go top go 7

insert nhập dữ liệu cần chèn ấn Ctrl+W để lưu.

browCâu 6: go top go 10 insert befor nhập dữ liệu cần chèn ấn Ctrl+W để lưu

brow use

Page 62: Foxpro Can Ban

04/12/23 62

Chương III : Các lệnh xử lý trên một CSDL

4. Delete (đánh dấu xóa các mẫu tin).Cú pháp: Delete [phạm vi] [for/while<đk> ] Chú ý:1.Sau khi thực hiện lệnh xong những mẫu tin đánh đấu

để xóa sẽ có kí hiệu * ở đầu mỗi mẫu tin (Display/list) kí hiệu bôi đen ở đầu mỗi mẫu tin(Browse).

2. Delete: Đánh dấu xóa record hiện hành.Ví dụ: use ts

delete all for diemtoan<5 brow

use

Page 63: Foxpro Can Ban

04/12/23 63

Chương III : Các lệnh xử lý trên một CSDL

5.Recall (Khôi phục các mẫu tin đã bị đánh dấu).Cú pháp: Recall [phạm vi] [for/while <đk> ] Chú ý: Sau khi thực hiện lệnh xong những mẫu tin bị đánh đấu

để xóa sẽ được khôi phục lại.Ví dụ: use ts

Recall all for diemtoan<5 brow

use

Page 64: Foxpro Can Ban

04/12/23 64

Chương III : Các lệnh xử lý trên một CSDL

6.Pack (xóa các mẫu tin đã bị đánh dấu).Cú pháp: Pack [memo] [dbf] Pack: xóa các record đã bị đánh dấu xóa từ vị trí con trỏ đến

hết tập tin.Pack memo: chỉ xóa các khoảng trống không được sử dụng

trong trường memo của tập tin .FPT, không xóa các record đã đánh đấu xóa trong tập tin CSDL

Pack DBF: Xóa các record đã bị đánh dấu xóa trong tập tin CSDL.

Page 65: Foxpro Can Ban

04/12/23 65

Chương III : Các lệnh xử lý trên một CSDL

7. Zap (xóa tất cả mẫu tin trong CSDL).Cú pháp: Zap Lệnh Zap tương đương cặp lệnh delete all pack

Page 66: Foxpro Can Ban

04/12/23 66

Chương III : Các lệnh xử lý trên một CSDL

Bài TậpSử dụng tập tin HSNV.DBF bài tập trước thưc hiện một số

công việc sau:Câu 1: Đánh đấu xóa toàn bộ các mẫu tin có gioitinh= ‘Nam’Câu 2: Khôi phục lại toàn bộ các mẫu tin có gioitinh=‘Nam’ và

giadinh=.T.Câu 3: Xóa những mẫu tin đã bị đánh dấu.

Page 67: Foxpro Can Ban

04/12/23 67

Chương III : Các lệnh xử lý trên một CSDL

Giải Bài Tập:Câu 1: use HSNV dele all for gioitinh='Nam' browCâu 2: recal all for gioitinh=‘Nam’ .and. Giadinh=.T. browCâu 3: pack brow use

Page 68: Foxpro Can Ban

04/12/23 68

Chương III : Các lệnh xử lý trên một CSDL

8.Count (đếm số mẫu tin).Cú pháp: Count [phạm vi] [for/while <đk>] [ to<biến nhớ>] Trong đó: [ to<biến nhớ>] : Đếm số record và lưu kết quả

vào một biến, nếu không có mệnh đề này thì kết quả hiển thị ra màn hình.

Ví dụ: use ts count all for gioitinh=‘Nam’ to m

? m use

Page 69: Foxpro Can Ban

04/12/23 69

Chương III : Các lệnh xử lý trên một CSDL

9. Sum (tính tổng giá trị các biểu thức số).Cú pháp: Sum [phạm vi] [d/s các trường] [for/while<đk>] [to<d/s

các biến nhớ>] *d/s các biến nhớ: nhằm để lưu kết quả sau khi tính tổng

và cho phép sử dụng thuận tiện về sau.Ví dụ: use ts

sum all toan, van, anh to t, v, a ? t ? v ? a use

Page 70: Foxpro Can Ban

04/12/23 70

Chương III : Các lệnh xử lý trên một CSDL

10. Average (tính trung bình cộng các biểu thức số).Cú pháp: Average [phạm vi] [d/s các trường] [for/while<đk>] [ to<d/s

các biến nhớ>] *d/s các biến nhớ: nhằm để lưu kết quả sau khi tính trung bình

công và cho phép sử dụng thuận tiện về sau.Ví dụ: use ts

average all toan, van, anh to t ? t

use

Page 71: Foxpro Can Ban

04/12/23 71

Chương III : Các lệnh xử lý trên một CSDL

11. Sort (Sắp xếp mẫu tin).Cú pháp: Sort [phạm vi] on <trường> </chỉ tiêu SX>[for/while<đk>]; [ to<tệp mới>] Trong đó: [ to<tệp mới>]: Là tập tin dữ liệu (.DBF) lưu kết

quả sắp xếp của lệnh sort.Ví dụ: Giả sử cần sắp xếp lại danh sách học sinh theo hoten

theo thứ tự từ điển.use ts Sort all on hoten / AC to Kq ta được tập tin Kq.DBFuse kq Display all

Page 72: Foxpro Can Ban

04/12/23 72

Chương III : Các lệnh xử lý trên một CSDL

Chú ý: Chỉ tiêu sắp xếp gồm có:

- Ascending : Sắp xếp tăng dần (chỉ cần gõ /A).

- Descending: Sắp xếp giảm dần (chỉ cần gõ /A).

- Character: Không phân biệt chữ hoa hay chữ thường.

Page 73: Foxpro Can Ban

04/12/23 73

Chương III : Các lệnh xử lý trên một CSDL

12. Locate (Tìm kiếm mẫu tin).Cú pháp: Locate [phạm vi] [for/while<đk>] Chú ý: 1.Sau khi gõ lệnh này xong, để biết kết quả ta dùng lệnh sau đây:

? Found() Nếu xuất hiện: .T. (tìm thấy) .F. (không tim thấy)Mẫu tin được tìm thấy sẽ là mẫu tin đầu tiên trong tệp dữ liệu.2.Nếu muốn biết thêm trong tệp này có còn mẫu tin nào khác mà

thỏa mãn điều kiện tìm kiếm thì ta dùng lệnh.? EOF()

Nếu xuất hiện: .T. (hết tệp);.F. (chưa hết tệp) gõ lệnh Continue tiếp tục tìm kiếm.

Page 74: Foxpro Can Ban

04/12/23 74

Chương III : Các lệnh xử lý trên một CSDL

Ví dụ: Tìm xem trong danh sách ts.DBF có học sinh nam nào có điểm toán trên 8 không?

Use ts Locate all for (gioitinh=‘Nam’) .and. (toan>8) ? Found() Nếu kết quả hiện ra là .T. => cóMuốn biết rõ về mẫu tin tìm thấy này ta gõ.Display

Muốn tìm kiếm tiếp tục ta gõ lệnh?EOF() continue ?found() Display

Page 75: Foxpro Can Ban

04/12/23 75

Chương III : Các lệnh xử lý trên một CSDL

Bài tập cuối chương: