1 / 68

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Microsoft Visual FoxPro

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Microsoft Visual FoxPro. TS. ĐỖ QUANG VINH Email: dqvinh@live.com Hà Nội - 2008. I - TỔNG QUAN VỀ Microsoft Visual FoxPro MỞ ĐẦU - VFP 9.0 SP2 phát hành vào năm 2007 YÊU CẦU HỆ THỐNG Máy tính PC Pentium Bộ nhớ 64 MB RAM (128 MB or cao h ơ n)

tanisha-orr
Download Presentation

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Microsoft Visual FoxPro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Microsoft Visual FoxPro TS. ĐỖ QUANG VINH Email: dqvinh@live.com Hà Nội - 2008

  2. I - TỔNG QUAN VỀ Microsoft Visual FoxPro • MỞ ĐẦU - VFP 9.0 SP2 phát hành vào năm 2007 • YÊU CẦU HỆ THỐNG Máy tính PC Pentium Bộ nhớ 64 MB RAM (128 MB or cao hơn) Dung lượng đĩa cứng dành cho VFP 9.0 165 MB Màn hình có độ phân giải 800 x 600, 256 màu hoặc High color 16-bit Ổ đĩa CD-ROM/DVD Chuột Hệ điều hành WINDOWS XP và Windows Server 2003 Tốt nhất là cài đầy đủ VFP9.0 SP2 từ đĩa CD ĐỖ QUANG VINH - HUC

  3. KHỞI ĐỘNG Microsoft Visual FoxPro • Cách 1: Start\Program\Microsoft Visual FoxPro 9 • Cách 2: Start\Run • Cách 3: nháy vào biểu tượng Microsoft Visual FoxPro 9 trên màn hình nền Desktop • CÁC CHẾ ĐỘ LÀM VIỆC: 2 a. Chế độ tương tác b. Chế độ chương trình • THOÁT KHỎI Visual FoxPro: lệnh QUIT • GIAO DIỆN • HỆ THỐNG BẢNG CHỌN a. Bảng chọn menu b. Mục chọn c. Menu PopUp d. Menu Option ĐỖ QUANG VINH - HUC

  4. CỬA SỔ LỆNH COMMAND • TRỢ GIÚPHELP • CÁC KHÁI NIỆM CƠ BẢN • LỆNH Visual FoxPro - Lệnh của VFP là một chỉ thị cho VFP thực hiện một thao tác quản trị dữ liệu cụ thể. - Cú pháp tổng quát của lệnh VFP: <Lệnh VFP> [<phạm vi>] [<FIELDS <danh sách trường>] [<danh sách biểu thức>] [FORWHILE <biểu thức logic L>] + Bao gồm một số từ khoá để chỉ hành động và các phương thức hoạt động + Độ dài mỗi dòng lệnh không quá 254 ký tự + Không phân biệt ký tự hoa hay ký tự thường đối với các từ khoá hay các tên hàm mẫu + Cho phép chỉ cần viết 4 ký tự đầu ĐỖ QUANG VINH - HUC

  5. - Phạm vi là miền tác động của lệnh khi thực hiện: 4 + ALL thao tác với tất cả các bản ghi + RECORD <n> thao tác với bản ghi thứ <n> + NEXT <n> thao tác với <n> bản ghi tiếp theo kể từ bản ghi hiện thời + REST thao tác với các bản ghi kể từ bản ghi hiện thời đến bản ghi cuối cùng • CÁC KIỂU DỮ LIỆU - Kiểu ký tự C (Character) + có dạng một xâu ký tự thuộc bảng mã ASCII + có độ rộng tối đa là 254 ký tự + phân biệt giữa ký tự hoa và ký tự thường - Kiểu số thập phân N (Numeric) biểu diễn một giá trị số với tối đa 20 ký số kể cả phần nguyên, thập phân và dấu chấm thập phân ĐỖ QUANG VINH - HUC

  6. - Kiểu ngày tháng D (Date) + ngày dương lịch từ 01/01/0001 đến 31/12/9999 + dạng mặc định là mm/dd/yy + Độ rộng cố định là 8 + dùng lệnh SET DATE và SET CENTURY ON - Kiểu Logic L (Logical) + chỉ lấy một trong hai giá trị: đúng .T. hoặc sai .F. + mặc định giá trị .T. lớn hơn .F. + có độ rộng cố định là 1 - Kiểu ký ức M (Memo) + văn bản có độ rộng  4000 ký tự + độ rộng khai báo = 4 - Kiểu chung G (General) + dùng để lưu trữ các đối tượng OLE + Độ rộng khai báo = 4 ĐỖ QUANG VINH - HUC

  7. - Kiểu số dấu chấm động F (Float) - Kiểu số Integer - Kiểu số Double - Kiểu tài chính (Currency) • HẰNG - Là đại lượng có giá trị không thay đổi - 4 loại hằng: + Hằng số + Hằng ký tự + Hằng logic + Hằng ngày tháng • BIẾN - Là đại lượng có giá trị thay đổi - 3 loại biến: ĐỖ QUANG VINH - HUC

  8. + Biến bộ nhớ + Biến trường + Biến hệ thống • TOÁN TỬ - Là các phép toán trên các giá trị nhằm sinh ra một giá trị mới - 4 loại toán tử: + Toán tử số học + Toán tử xâu ký tự + Toán tử quan hệ/ toán tử so sánh + Toán tử logic • HÀM - Là một loại chương trình con - Xây dựng một thư viện các hàm mẫu - Cú pháp: <tên hàm>(danh sách đối số) ĐỖ QUANG VINH - HUC

  9. - Phân loại hàm: • Hàm mẫu + Hàm số học ABS(x) cho biết trị tuyệt đối của số x SQRT(x) tính căn bậc 2 của x EXP(x) tính e mũ x LOG(x) tính loga cơ số e của x INT(x) lấy phần nguyên của x ROUND (x,n) làm tròn số x với n chữ số thập phân MAX(<biểu thức 1>,<biểu thức 2>) cho giá trị lớn nhất của hai biểu thức MIN(<biểu thức 1>,<biểu thức 2>) cho giá trị nhỏ nhất của hai biểu thức MOD(<biểu thức 1>,<biểu thức 2>) cho số dư của phép toán <biểu thức 1> chia cho <biểu thức 2> VAL(s) trả lại giá trị số của xâu s ĐỖ QUANG VINH - HUC

  10. + Hàm xâu LEN(s) cho biết độ dài của xâu s LEFT(s,n) trích n ký tự bên trái xâu s RIGHT(s,n) trích ký tự bên phải của xâu s SUBSTR(s,i,n) trích n ký tự của xâu s kể từ ký tự thứ i REPLICATE(s,n) tạo một xâu gồm n lần xâu s SPACE(n) tạo một xâu gồm n ký tự trắng LTRIM(s) cắt các dấu trắng bên trái xâu s RTRIM(s) cắt các dấu trắng bên phải xâu s ALLTRIM(s) cắt các dấu trắng ở hai bên xâu s TRIM(s) UPPER(s) biến tất cả các chữ cái trong xâu s thành chữ hoa LOWER(s) biến tất cả các chữ cái trong xâu s thành chữ nhỏ PROPER(s) STR(x,n,m) trả lại giá trị xâu của số x, gồm n ký tự với m chữ số lẻ ASC(s) cho biết mã ASCII của ký tự đầu tiên trong xâu s ĐỖ QUANG VINH - HUC

  11. CHR(n) cho biết ký tự có mã ASCII là n AT(t,s) cho biết vị trí đầu tiên xâu con t xuất hiện trong xâu s, nếu không tìm thấy t trong s, hàm trả lại giá trị 0 + Hàm ngày tháng CTOD(s) chuyển đổi xâu s sang kiểu ngày tháng D DTOC(d) chuyển đổi ngày D sang kiểu ký tự C DTOS(d) ‘yyyymmdd’ YEAR(d) cho biết giá trị số của năm trong ngày d MONTH(d) cho biết giá trị số của tháng trong ngày d DAY(d) cho biết giá trị số của ngày trong ngày d DOW(d) trả lại ngày trong tuần của ngày d (1 là chủ nhật, 2 là thứ hai , ... ,7 là thứ bảy) DATE () cho biết giá trị của ngày hiện tại + Hàm đối với tệp dữ liệu DBF([<biểu thức số N>]) cho tên đầy đủ của tệp dữ liệu đang mở trong vùng làm việc thứ <biểu thức số N> ĐỖ QUANG VINH - HUC

  12. ALIAS([<biểu thức số N>]) chỉ bí danh của tệp dữ liệu đang mở trong vùng làm việc thứ <biểu thức số N> BOF([<biểu thức số N>]) dùng để kiểm tra xem vị trí con trỏ có ở đầu tệp dữ liệu trong vùng <biểu thức số N> không? EOF([<biểu thức số N>]) dùng để kiểm tra xem vị trí con trỏ có ở cuối tệp dữ liệu trong vùng <biểu thức số N> không? DELETED([<biểu thức số N>]) cho giá trị .T. nếu bản ghi hiện thời trong vùng làm việc thứ <biểu thức số N> bị đánh dấu xoá FOUND([<biểu thức số N>]) cho giá trị .T. nếu lệnh tìm kiếm LOCATE ... CONTINUE, SEEK, FIND trong vùng <biểu thức số N> tìm được một bản ghi ĐỖ QUANG VINH - HUC

  13. RECCOUNT([<biểu thức số N>]) cho biết số bản ghi có trong tệp cơ sở dữ liệu đang mở trong vùng <biểu thức số N> RECNO([<biểu thức số N>]) cho số hiệu của bản ghi hiện thời trong vùng <biểu thức số N> SELECT() cho số hiệu của vùng làm việc hiện thời + Hàm môi trường làm việc DISKSPACE() cho số byte còn trống trên ổ đĩa hiện thời OS() cho biết hệ điều hành đang sử dụng VERSION() cho biết ấn bản của VFP đang sử dụng ĐỖ QUANG VINH - HUC

  14. + Hàm logic IIF(<biểu thức logic L>, <biểu thức 1>, <biểu thức 2>) cho giá trị <biểu thức 1> nếu <biểu thức logic L> là .T., ngược lại, hàm cho giá trị <biểu thức 2> BETWEEN(x, a, b) cho giá trị .T. nếu x nằm trong khoảng từ a đến b INLIST(x, a1, a2, ..., an) cho giá trị .T. nếu x = a1 hoặc x = a2 ... hoặc x = an ĐỖ QUANG VINH - HUC

  15. Hàm tự xây dựng của người sử dụng UDF (User Defined Function) FUNCTION TRICHTEN parameters s private t,j t = rtrim(s) j = rat(' ',t) t = substr(t,j) return padr(t,7) • BIỂU THỨC - Là một tổ hợp các hằng, biến, hàm và toán tử - Phân loại biểu thức: biểu thức ký tự C, biểu thức số N, biểu thức logic L, biểu thức ngày tháng D ĐỖ QUANG VINH - HUC

  16. II - TẠO LẬP BẢNG DỮ LIỆU • KHÁI NIỆM - Bảng dữ liệu: Là một tập hợp thông tin về một đối tượng quản lý và được tổ chức theo một nguyên tắc nhất định - Trường (Field): Là một thuộc tính của đối tượng quản lý - Bản ghi (Record): Là các thông tin phản ánh về từng đối tượng được quản lý - Mỗi trường nhận một tên, kiểu dữ liệu và có độ rộng nhất định. Số lượng trường tối đa trong một bảng dữ liệu là 255 trường ĐỖ QUANG VINH - HUC

  17. TẠO LẬP BẢNG DỮ LIỆU - 2 bước: + Khai báo cấu trúc bảng dữ liệu + Nhập bản ghi dữ liệu ban đầu vào bảng dữ liệu a. Tạo và khai báo cấu trúc bảng dữ liệu: 2 cách • Cách 1: tại khung cửa sổ lệnh: CREATE <tên bảng dữ liệu> + Bước 1: tại khung cửa sổ lệnh, gõ: CREATE SINHVIEN + Bước 2: khai báo từng trường như Tên trường (Name), Kiểu trường (Type), Độ rộng trường (Width), Phần thập phân (Decimal) ... • Cách 2: tạo cấu trúc bằng hộp thoại Table Designer ĐỖ QUANG VINH - HUC

  18. Cách 2: tạo cấu trúc bằng hộp thoại Table Designer Bước 1: từ menu File, chọn New hoặc ấn 2 phím <Ctrl+N> để xuất hiện hộp thoại New. Chọn mục Table rồi chọn tiếp New File. Bước 2: hộp thoại CREATE xuất hiện Bước 3: Khai báo cấu trúc bảng dữ liệu b. Nhập bản ghidữ liệu • Cách 1: BROWSE • Cách 2: APPEND hoặc INSERT • LIỆT KÊ DANH SÁCH BẢNG DỮ LIỆU:3 cách - DISPLAY - LIST - BROWSE ĐỖ QUANG VINH - HUC

  19. KHAI BÁO SỬ DỤNG BẢNG DỮ LIỆU 2 cách khai báo để sử dụng bảng dữ liệu: • Cách 1: Tại khung cửa sổ lệnh, gõ: USE <Tên bảng dữ liệu> • Cách 2: Chọn lệnh File\Open • HIỂN THỊ CẤU TRÚC CỦA BẢNG DỮ LIỆU DISPLAY STRUCTURE [TO <PRINTER>] [TO FILE <tên tệp>] hoặc LIST STRUCTURE [TO <PRINTER>] [TO FILE <tên tệp>] ĐỖ QUANG VINH - HUC

  20. III - CẬP NHẬT DỮ LIỆU 1. ĐẶT VẤN ĐỀ Cập nhật dữ liệu liên quan đến các trường hợp sau: - Cập nhật có thể là việc huỷ bỏ một số bản ghi lỗi thời hoặc nhập sai gây dư thừa hay trùng lặp dữ liệu. - Cập nhật có thể liên quan đến việc chèn thêm bản ghi mới, xảy ra sau khi tệp dữ liệu đã được tạo lập, hoặc trong một chu kỳ xử lý - Cập nhật có thể là việc thay đổi nội dung của, thay đổi trị số một trường - Cập nhật cũng có thể liên quan đến dữ liệu đúng 2. CHÈN THÊM BẢN GHI: 2 cách + Chèn thêm vào giữa bảng dữ liệu INSERT ĐỖ QUANG VINH - HUC

  21. + Chèn thêm vào cuối bảng dữ liệu - BROWSE - APPEND - APPEND FROM • CHÈN THÊM BẢN GHI VÀO CUỐI BẢNG DỮ LIỆU APPEND - Chèn thêm một hoặc nhiều bản ghi mới vào cuối bảng dữ liệu - Cú pháp: APPEND [BLANK] [IN <n>/ <bí danh bảng dữ liệu>] [NOMENU] • NỐI THÊM BẢN GHI VÀO CUỐI BẢNG DỮ LIỆU APPEND FROM ĐỖ QUANG VINH - HUC

  22. USE <tệp tin nguồn> APPEND FROM <tệp tin trung gian> [<điều kiện>] • CHÈN THÊM VÀO GIỮA BẢNG DỮ LIỆU INSERT - Cú pháp: INSERT [BLANK] [BEFORE] 3. SỬA ĐỔI DỮ LIỆU: 3 - CHANGE/ EDIT - BROWSE - REPLACE • LỆNH EDIT/CHANGE - Cho phép hiệu chỉnh dữ liệu của bảng dữ liệu hiện thời - Cú pháp: ĐỖ QUANG VINH - HUC

  23. EDIT/CHANGE [<phạm vi>] [FIELDS <danh sách trường>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [FONT<tên font chữ> [, <cỡ chữ>]] [STYLE <kiểu chữ>] [FREEZE <tên trường>] [KEY <biểu thức1> [,<biểu thức 2>]] [LAST/ NOINIT] [LPARTITION] [NAME <tên đối tượng>] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT/ NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] • LỆNH BROWSE - Là một trong những lệnh mạnh nhất của Visual FoxPro - Cú pháp: ĐỖ QUANG VINH - HUC

  24. BROWSE [FIELDS <danh sách trường>] [FOR <biểu thức logic L> [REST]] [FONT <tên font chữ> [,< cỡ chữ>]] [FORMAT] [STYLE <kiểu chữ>] [FREEZE <tên trường>] [KEY <biểu thức 1>] [,<biểu thức 2>]] [LOCK <n>] [LPARTITION] [NAME <tên đối tượng>] [NOAPPEND] [NOCLEAR] [NODELETE] [NOEDIT/ NOMODIFY] [NOLINK] [NOMENU] [NOLGRID] [NORGRID] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT] [PARTITION <m>] [LEDIT] [REDIT] ĐỖ QUANG VINH - HUC

  25. LỆNH REPLACE - Trường hợp muốn cập nhật nhiều bản ghi, trường - Cú pháp: REPLACE <trường 1> WITH <biểu thức 1> [ADDITIVE] [,<trường 2> WITH <biểu thức 2> [ADDTIVE]] ... [ phạm vi] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [IN <n>/ <bí danh bảng dữ liệu>] [NOOPTIMIZE] 4. XOÁ DỮ LIỆU: 2 mức + Mức 1: đánh dấu bản ghi / xoá logic  bản ghi không tham gia vào xử lý thông tin, nhưng vẫn tồn tại trong bảng dữ liệu và có thể phục hồi bằng lệnh RECALL ĐỖ QUANG VINH - HUC

  26. + Mức 2: xoá vật lý các bản ghi đã bị đánh dấu xoá  bản ghi bị xoá hoàn toàn, không tồn tại trong bảng dữ liệu, không thể phục hồi • XOÁ LOGIC • Lệnh DELETE - Cú pháp: DELETE [phạm vi] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>][IN <n>/ <bí danh bảng dữ liệu>] • Đánh dấu xoá bản ghi ở lệnh BROWSE + ấn tổ hợp phím <Ctrl+T> + Chọn mụcTable/Delete Record • LỆNH SETDELETED ON/OFF • XOÁ VẬT LÝ PACK ZAP ĐỖ QUANG VINH - HUC

  27. PHỤC HỒI BẢN GHI - Phục hồi các bản ghi đã bị đánh dấu xóa - Cú pháp: RECALL [<phạm vi>] [FOR<biểu thức logic L>] [WHILE<biểu thức logic L>] [NOOPTIMIZE] 5. SỬA ĐỔI CẤU TRÚC BẢNG DỮ LIỆU - Cho phép thực hiện: + Xóa trường + Thêm trường + Đổi tên trường/ kiểu trường/ độ rộng trường + Thay đổi thứ tự các trường - Cú pháp: MODIFY STRUCTURE ĐỖ QUANG VINH - HUC

  28. 6. SAO CHÉP CẤU TRÚC BẢNG DỮ LIỆU • LỆNH COPY STRUCTURE - Tạo lập một tệp dữ liệu mới, rỗng - Cú pháp: USE <tên bảng dữ liệu gốc> COPY STRUCTURE TO <tên bảng dữ liệu mới> [FIELDS <danh sách trường>] • LỆNH APPEND FROM - Cú pháp: APPEND FROM <tên tệp nguồn>/ ?[FIELDS <danh sách trường>] [FOR<biểu thức logic L>][TYPE] DIF/ MOD/ SDF/ SYLK/ WK1/ WK3/ WKS/ FW2/ PDOX/ WR1/ WRK/ XLS/ XL5/ RPD/ DELIMITED[WITH Delimiter/WITH BLANK / WITH TAB]] [AS <n>] ĐỖ QUANG VINH - HUC

  29. 7. SAO LƯU CẤU TRÚC TỆP DỮ LIỆU • LỆNH COPY STRUCTURE EXTENDED - Cú pháp: USE <tên bảng dữ liệu> COPY STRUCTURE EXTENDED TO <tên bảng sao lưu cấu trúc> [FIELDS <danh sách trường>] • LỆNH CREATE FROM - Cú pháp: CREATE <bảng dữ liệu mới> FROM <bảng sao lưu cấu trúc> ĐỖ QUANG VINH - HUC

  30. IV - SẮP XẾP VÀ CHỈ MỤC 1. ĐẶT VẤN ĐỀ - 2 cách: + Sắp xếp vật lý SORT: lệnh SORT sẽ tạo ra tệp thứ hai cùng kích thước như tệp nguồn nhưng được sắp xếp theo một trật tự mới về mặt vật lý + Sắp xếp theo chỉ mục INDEX: đối với lệnh INDEX, tệp nguồn không thay đổi, nhưng một tệp chỉ mục (index file) được tạo ra theo tiêu chí cần sắp xếp + Trường/ biểu thức dùng làm tiêu chí để sắp xếp là khoá sắp xếp khi dùng SORT hoặc INDEX. + Có thể sắp xếp theo theo thứ tự tăng dần hoặc giảm dần. ĐỖ QUANG VINH - HUC

  31. 2. SẮP XẾP VẬT LÝ SORT - Cú pháp: SORTTO <tên bảng sắp xếp > ON <tên trường 1> [/A] [/D] [/C][,<tên trường 2> [/A] [/D] [/C], ...] [ASCENDING | DESCENDING][<phạm vi>] [FOR <biểu thức logic L> | WHILE <biểu thức logic L>] [FIELDS <danh sách trường> | FIELD LIKE <Skeleton> | FIELD EXCEPT <Skeleton>] [NOOPTIMIZE]    + Bảng dữ liệu cần sắp xếp (bảng nguồn) là bảng hiện hành. + <tên bảng sắp xếp > là tên bảng đã được sắp xếp (bảng đích) + <tên trường i> là trường thứ i dùng làm tiêu chí sắp xếp. Trường hợp dùng nhiều trường khoá thì tên các trường khoá phải được phân cách bằng dấu phẩy + Số trường khoá không hạn chế nhưng tổng độ dài của lệnh SORT không quá 254 ký tự ĐỖ QUANG VINH - HUC

  32.     + Trường khoá có thể là dữ liệu kiểu C, N, D, L + Có thể sắp xếp tăng dần [/A] hoặc giảm dần [/D]. Nếu không có tham số [/A] hoặc [/D] thì mặc định là tăng dần + Đối với trường khoá, nếu không có tham số [/A] hoặc [/D] thì sắp xếp tăng dần khi dùng từ khoá [ASCENDING] hoặc giảm dần khi dùng từ khoá [DESCENING] + Đối với trường kiểu C, nếu sắp xếp không phân biệt chữ hoa và chữ thường thì dùng từ khoá [/C] • Nhận xét: - Yêu cầu dung lượng nhớ trống tối thiểu trên ổ đĩa  3 lần kích thước tệp cần sắp xếp - Sắp xếp đơn giản - Không cho phép sắp xếp theo trường khoá là biểu thức phức tạp, nghĩa là một phần của trường, biến bộ nhớ, hàm hoặc biểu thức ĐỖ QUANG VINH - HUC

  33. - Chỉ thích hợp đối với các tệp dữ liệu nhỏ và vừa Đối với các tệp dữ liệu có kích thước lớn lệnh SORT có những nhược điểm sau đây:   - Tốc độ sắp xếp rất chậm so với INDEX vì phải chép qua chép lại các bản ghi. Nếu tệp nhỏ ~ 1000 ÷ 2000 bản ghi thì tốc độ thực hiện chậm của lệnh SORT không thể hiện rõ, nhưng khi tệp lớn trên chục nghìn bản ghi thì tốc độ thực hiện rất chậm. - Các bản ghi của tệp đích không cùng số hiệu với các bản ghi tương ứng trong tệp dữ liệu nguồn - Gây khó khăn cho người dùng vì mỗi lần thực hiện lệnh SORT tạo ra một tệp dữ liệu mới cùng với tiêu chí sắp xếp ĐỖ QUANG VINH - HUC

  34. 3. SẮP XẾP THEO CHỈ MỤC • KHÁI NIỆM VỀ CHỈ MỤC - Sắp xếp theo chỉ mục được dựa trên nguyên tắc tương tự như bảng mục lục của một quyển sách • PHÂN LOẠI TỆP CHỈ MỤC THEO TỔ CHỨC: 3 - Tệp chỉ mục độc lập .IDX (còn gọi là stand-alone IDX) - Tệp chỉ mục kết hợp .CDX structural - Tệp chỉ mục kết hợp .CDX non-structural • PHÂN LOẠI TỆP CHỈ MỤC THEO SỬ DỤNG: 4 - Chỉ mục chính (primary index) - Chỉ mục dự bị (candidate index) - Chỉ mục thông thường (regular index) - Chỉ mục duy nhất (unique index) ĐỖ QUANG VINH - HUC

  35. TẠO TỆP CHỈ MỤC • Tạo tệp chỉ mục bằng lệnh INDEX - Cú pháp: INDEXON <biểu thức> TO <tên tệp IDX> | TAG <tên đính mục> [OF <tên tệp CDX>] [FOR <biểu thức logic L>] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] • Sử dụng bảng chọn để tạo tệp chỉ mục a. Mở bảng dữ liệu qua khung giao diện hoặc gõ lệnh USE <tên bảng dữ liệu> tại khung cửa sổ lệnh b. Chọn mục View\Browse để hiển thị bảng dữ liệu ở chế độ Browse hoặc gõ Browse tại cửa sổ lệnh c. Chọn mục View\Table Designer, khung hội thoại Table Designer xuất hiện với thẻ mặc định là Fields d. Chọn thẻ Indexes ĐỖ QUANG VINH - HUC

  36. e. Nhập tên tệp chỉ mục (hoặc tên đính mục) f. Sau khi nhập xong cột Name cột Type hiện lên giá trị mặc định là regular g. Tại cột Expression nhập biểu thức dùng làm trường khoá • CÁCH THÀNH LẬP BIỂU THỨC CHỈ MỤC + Chỉ mục trên các biểu thức đơn giản + Chỉ mục trên các biểu thức phức tạp + Chỉ mục trên một biểu thức kiểu xâu + Chỉ mục trên nhiều trường có kiểu dữ liệu khác nhau + Dùng hàm mẫu có sẵn và UDF trong biểu thức chỉ mục Ví dụ: hàm UDF TRICHTEN(s) • SỬ DỤNG CHỈ MỤC • Mở tệp chỉ mục tại khung cửa sổ lệnh: 2 cách - USE ... INDEX - SET INDEX ...

  37. Lệnh SET INDEX - Dùng để mở một hoặc nhiều tệp chỉ mục .IDX hoặc .CDX của tệp dữ liệu hiện thời - Cú pháp: SET INDEX TO [<danh sách tệp chỉ mục>| ?] [ORDER <n>| <tên tệp chỉ mục .IDX>| [TAG] <tên đính mục> [OF <tên tệp .CDX>]] [ASCENDING | DESCENDING] [ADDITIVE] • Lệnh USE ... INDEX - Cú pháp: USE [<tên bảng dữ liệu>|<SQLViewName>|<?>] [IN <n> | <bí danh bảng dữ liệu>] [AGAIN] [NOREQUERY [<nDataSessionNumber>]] [NODATA][INDEX <danh sách tệp chỉ mục>|<?> [ORDER [<n> | <tên tệp .IDX>[TAG] <tên đính mục> [OF <tên tệp .CDX>] [ASCENDING|DESCENDING]]]][ALIAS <bí danh bảng dữ liệu>] [EXCLUSIVE] [SHARED] [NOUPDATE] ĐỖ QUANG VINH - HUC

  38. Lệnh SET ORDER - Chỉ định rõ ràng tệp .IDX trong danh sách <danh sách tệp chỉ mục> là tệp chỉ mục chủ/ chính (master index) - Cú pháp: SET ORDER TO [ <n> | <tên tệp chỉ mục .IDX>| [TAG] <tên đính mục> [OF <tên tệp .CDX>] [IN <n> | <bí danh bảng dữ liệu>] [ASCENDING | DESCENDING]] + Lệnh SET ORDER TO 0 hoặc SET ORDER TO huỷ tác dụng chỉ mục, nghĩa là tệp dữ liệu được liệt kê hoặc truy xuất theo thứ tự vật lý ban đầu nhưng các tệp chỉ mục vẫn đang mở • Cập nhật các tệp chỉ mục REINDEX - Chỉ mục lại các tệp chỉ mục đã lỗi thời + Cách 1: USE <tên bảng dữ liệu> INDEX <danh sách tệp chỉ mục> REINDEX ĐỖ QUANG VINH - HUC

  39. + Cách 2: USE <tên bảng dữ liệu> SET INDEX TO <danh sách tệp chỉ mục> REINDEX • Xoá tệp chỉ mục kiểu .IDX DELETE FILE [<tên tệp> | <?> • Đóng các tệp chỉ mục SET INDEX TO CLOSE INDEX ĐỖ QUANG VINH - HUC

  40. V -TÌM KIẾM THÔNG TIN • CÁC KHÁI NIỆM • CON TRỎ BẢN GHI - VFP tổ chức cơ chế con trỏ bản ghi (record pointer) dùng để xác định bản ghi hiện thời - Khi mở bảng dữ liệu, con trỏ bản ghi bao giờ cũng đặt ở bản ghi thứ nhất - Có 3 cách di chuyển con trỏ bản ghi: + Di chuyển tuyệt đối - lệnh GO/GOTO + Di chuyển tương đối - lệnh SKIP + Di chuyển “ẩn” nằm ngay trong các lệnh như: LIST, DISPLAY ALL, LOCATE/CONTINUE, SCAN, COUNT, AVERACE, SUM, TOTAL ĐỖ QUANG VINH - HUC

  41. DI CHUYỂN TUYỆT ĐỐI - LỆNH GO/GOTO - Di chuyển con trỏ tới bản ghi mang số hiệu được chỉ định - Cú pháp: GO/ GOTO [RECORD] <n> [IN <vùng làm việc n> | <bí danh bảng dữ liệu>] GOTO TOP | BOTTOM [IN <vùng làm việc n> | <bí danh bảng dữ liệu>] • DI CHUYỂN TƯƠNG ĐỐI - LỆNH SKIP - Di chuyển con trỏ về bản ghi nằm phía trước/ phía sau bản ghi hiện hành <n> bản ghi - Cú pháp: SKIP [+|-] [<n>] [IN <vùng làm việc n> | <bí danh bảng dữ liệu>] • HÀM RECNO(), BOF() VÀ EOF() ĐỖ QUANG VINH - HUC

  42. 2. LIỆT KÊ DỮ LIỆU • LỆNH LIST/ DISPLAY - Cú pháp: • LIST [ OFF] [<phạm vi>] [FIELDS <danh sách trường>] [FOR <biểu thức logic L> | WHILE <biểu thức logic L>][NOCONSOLE][TO PRINTER [PROMPT] | TO FILE <tên tệp >] [NOOPTIMIZE] • DISPLAY [ OFF] [<phạm vi>] [FIELDS <danh sách trường>] [FOR <biểu thức logic L> | WHILE <biểu thức logic L>[NOCONSOLE][TO PRINTER [PROMPT] | TO FILE <tên tệp>] [NOOPTIMIZE] • LỆNH BROWSE - Là một trong những lệnh mạnh nhất của Visual FoxPro ĐỖ QUANG VINH - HUC

  43. - Cú pháp: BROWSE [FIELDS <danh sách trường>] [FOR <biểu thức logic L>] [WINDOW <tên cửa sổ 1>] [IN WINDOW <tên cửa sổ 2> | IN SCREEN] [TITLE <biểu thức ký tự C>] [WIDTH <biểu thức số N1>] [LPARTTION] [PARTION <biểu thức số N2>] [NOLINK] [LEDIT] [REDIT] [LOCK<biểu thức số N3>] [FREEZE <tên trường>] [NOEDIT | NOMODIFY] [NOAPPEND] [NODELETE] 3. TÌM KIẾM TUẦN TỰ • LỆNH LOCATE - Cú pháp: LOCATE FOR <biểu thức logic L> [<phạm vi>] [WHILE <biểu thức logic L>] [NOOPTIMIZE] • LỆNH CONTINUE ĐỖ QUANG VINH - HUC

  44. 4. TÌM KIẾM THEO CHỈ MỤC • LỆNH SEEK • LỆNH FIND • HÀM SEEK() • LỆNH FIND - Cú pháp: FIND <biểu thức tìm kiếm> • LỆNH SEEK - Tìm kiếm ngẫu nhiên bản ghi trong tệp dữ liệu đã được chỉ mục - Cú pháp: SEEK <biểu thức tìm kiếm> [ORDER <n> | <tên tệp chỉ mục .IDX> [TAG] <tên đính mục> [OF <tên tệp .CDX>]] [ASCENDING | DESCENDING] [IN <vùng làm việc n> | <bí danh bảng dữ liệu>] ĐỖ QUANG VINH - HUC

  45. HÀM SEEK() - Hàm SEEK() cũng thực hiện nhiệm vụ giống như lệnh SEEK, nghĩa là tìm kiếm trên bảng dữ liệu được chỉ mục để tìm ra sự tồn tại của bản ghi đầu tiên có trường khoá trùng khớp với <biểu thức>. - Cú pháp: SEEK(<biểu thức> [,<vùng làm việc n> | <bí danh bảng dữ liệu> [,<n> | <tên tệp chỉ mục .IDX> | <tên đính mục> ]]) • HẠN CHẾ DỮ LIỆU • HẠN CHẾ THEO BẢN GHI - LỆNH SET FILTER - Là việc thiết lập một cơ chế sao cho các thao tác sau đó chỉ được truy xuất các bản ghi cho phép. Đây là một trong những điểm quan trọng của một DBMS  quản lý và khai thác các tệp dữ liệu trở nên mềm dẻo và thuận tiện ĐỖ QUANG VINH - HUC

  46. - Cú pháp: SET FILTER TO <biểu thức logic L> - Huỷ lọc đã đặt, dùng lệnh không tham số: SET FILTER TO • HẠN CHẾ THEO TRƯỜNG - LỆNH SET FIELDS - Đặt lọc các trường chung cho các lệnh tiếp theo - Cú pháp: SET FIELDS TO <danh sách trường> - Hủy đặt lọc: SET FIELDS OFF SET FIELDS TO ALL SET FIELDS TO ĐỖ QUANG VINH - HUC

  47. VI - THỐNG KÊ VÀ TRÍCH LỌC DỮ LIỆU • ĐẾM SỐ BẢN GHI - CÚ PHÁP: COUNT [<phạm vi>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [TO <biến bộ nhớ>] - CHỨC NĂNG: Đếm số bản ghi trong bảng dữ liệu thoả mãn <biểu thức logic L> 2. TÍNH TỔNG SUM - CÚ PHÁP: SUM [<phạm vi>] [<Danh sách trường số/ Biểu thức số N>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [TO <danh sách biến bộ nhớ>] - CHỨC NĂNG: Tính tổng các trường số hoặc các biểu thức số trong bảng dữ liệu thoả mãn <biểu thức logic L> ĐỖ QUANG VINH - HUC

  48. 3. TÍNH TRUNG BÌNH AVERAGE - CÚ PHÁP: AVERAGE [<phạm vi>] [<Danh sách trường số/Biểu thức số>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [TO <danh sách biến bộ nhớ>] - CHỨC NĂNG Tính trung bình các trường số hoặc các biểu thức số trong bảng dữ liệu thoả mãn <biểu thức logic L> 4. TÍNH TỔNG THEO NHÓM TOTAL - CÚ PHÁP: TOTALTO <tên bảng dữ liệu> ON <trường khoá> [<phạm vi>] [FIELDS <danh sách trường số>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] - CHỨC NĂNG: Tính tổng các giá trị bản ghi thuộc trường số của các bản ghi có cùng <biểu thức khoá> ĐỖ QUANG VINH - HUC

  49. + Bảng dữ liệu cần được tính tổng theo nhóm cần được sắp xếp trước đó bởi lệnh sắp xếp vật lý (SORT) hoặc chỉ mục (INDEX) theo biểu thức khoá • Các bước tiến hành lệnh tính tổng theo nhóm: + Bước 1: sắp xếp bảng dữ liệu gốc theo <biểu thức khoá> hay còn gọi là tiêu chí phân nhóm + Bước 2: mở bảng dữ liệu đã sắp xếp theo <biểu thức khoá> + Bước 3: tính tổng theo nhóm + Bước 4: xem kết quả tính tổng theo nhóm - Mở bảng dữ liệu kết quả: USE <tên bảng dữ liệu kết quả> - Liệt kê dữ liệu: LIST/ DISPLAY/ BROWSE 5. TÍNH TOÁN HỖN HỢP CALCULATE - CÚ PHÁP: CALCULATE [<phạm vi>] [<Danh sách biểu thức>] [FOR <biểu thức logic L>] [WHILE <biểu thức logic L>] [TO <danh sách biến bộ nhớ>] ĐỖ QUANG VINH - HUC

  50. - CHỨC NĂNG: Lệnh CALCULATE là tổng quát của các lệnh SUM, AVERAGE, COUNT ... cho phép thực hiện đồng thời nhiều giá trị khác nhau trong cùng một lệnh trong đó: <Danh sách biểu thức> bao gồm danh sách các hàm: CNT() SUM(<biểu thức số N>) AVG(<biểu thức số N>) MAX(<biểu thức số N>) MIN(<biểu thức số N>) STD(<biểu thức số N>) VAR(<biểu thức số N>) ĐỖ QUANG VINH - HUC

More Related