,NỘI DUNG MÔN HỌC Bao gồm 2 phần Phần 1.

Hệ Quản trị CSDL FoxPro ột số khái niệm cơ bản ệc với Fox ở chế độ cửa sổ lệnh Phần 2. Lập trình FoxPro ểu bài toán ệc với Fox ở chế độ lập trình Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ PHẦN 1. HỆ QUẢN TRỊ CSDL FOX Ch-¬ng I. MỘT SỐ KHÁI NIỆM CƠ BẢN ...................... 5 I. CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ............................ 5 I.1. Tin học quản lý ...................................................................................... 5 I.2. Cơ sở dữ liệu .......................................................................................... 6 I.3. Hệ quản trị CSDL Visual FoxPro 9.0 ..................................................... 6 II. CÁC KHÁI NIỆM CƠ BẢN TRONG FOXPRO ...................................... 9 II.1. Các kiểu dữ liệu cơ bản ....................................................................... 9 II.2. Hằng và biến ..................................................................................... 11 II.3. Hàm .................................................................................................. 12 II.4. Biểu thức .......................................................................................... 12 II.5. Phép gán ........................................................................................... 13 II.6. Lệnh ................................................................................................. 13 III. FILE DỮ LIỆU ....................................................................................... 14 III.1. Hồ sơ ................................................................................................ 14 III.2. Bản dữ liệu 2 chiều ........................................................................... 14 III.3. File dữ liệu........................................................................................ 15 - 2

Ch-¬ng II. THAO TÁC VỚI FILE DỮ LIỆU ................. 16 I. TẠO FILE CƠ SỞ DỮ LIỆU ..................................................................... 16 I.1. Tạo file cơ sở dữ liệu ........................................................................... 16 I.2. Mở và đóng file cơ sở dữ liệu ............................................................... 18 II. LÀM VIỆC VỚI CẤU TRÚC FILE CƠ SỞ DỮ LIỆU ........................... 19 II.1. Xem và in cấu trúc ............................................................................ 19 II.2. Sửa cấu trúc ...................................................................................... 20 II.3. Trƣờng độc lập và không độc lập ...................................................... 21 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh III. CẬP NHẬT DỮ LIỆU CHO FILE CƠ SỞ DỮ LIỆU ............................. 21 III.1. Định vị con trỏ bản ghi ..................................................................... 21 III.2. Thêm bản ghi .................................................................................... 24 III.3. Phạm vi và điều kiện trong câu lệnh thao tác bản ghi ........................ 26 III.4. Xem và in dữ liệu ............................................................................. 27 III.5. Sửa dữ liệu trên bản ghi .................................................................... 31 III.6. Xoá bản ghi trong file cơ sở dữ liệu .................................................. 34 III.7. Thay thế nội dung của trƣờng dữ liệu ................................................ 36 III.8. Lệnh Browse ..................................................................................... 37 IV. SẮP XẾP VÀ TÌM KIẾM DỮ LIỆU....................................................... 40 IV.1. Sắp xếp vật lý ................................................................................... 40 IV.2. Sắp xếp logic .................................................................................... 42 IV.3. Tìm kiếm tuần tự .............................................................................. 46 IV.4. Tìm kiếm trực tiếp ............................................................................ 47 V. TÍNH TOÁN VÀ THỐNG KÊ DỮ LIỆU ............................................... 47 V.1. Đặt lọc các bản ghi ........................................................................... 47 V.2. Đặt lọc các trƣờng ............................................................................. 48 - 3

V.3. Đếm số bản ghi (Count) .................................................................... 49 V.4. Cộng theo cột các biểu thức số (Sum) ............................................... 49 V.5. Tính trung bình cộng (Average) ........................................................ 50 V.6. Tính tổng bộ phận (Total) ................................................................. 50 V.7. Thống kê tổng hợp (Calculate) .......................................................... 52 Ch-¬ng III. LÀM VIỆC VỚI NHIỀU FILE CSDL ......... 53 I. VÙNG LÀM VIỆC - BÍ DANH CỦA VÙNG LÀM VIỆC ........................ 53 I.1. Vùng làm việc ...................................................................................... 53 I.2. Bí danh ................................................................................................ 55 II. TẠO MỘT FILE CSDL TỪ MỘT FILE CSDL ĐÃ CÓ .......................... 56 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh II.1. Tạo cấu trúc ...................................................................................... 56 II.2. Tạo cấu trúc và đƣa nội dung sang .................................................... 56 II.3. Kết nối 2 file CSDL .......................................................................... 57 II.4. Lệnh UPDATE ................................................................................. 58 III. LIÊN KẾT CÁC FILE CSDL .................................................................. 60 III.1. Đặt vấn đề......................................................................................... 60 III.2. Liên kết 1 chính - 1 phụ (1 - 1).......................................................... 60 III.3. Liên kết 1 chính - n phụ (1 - n).......................................................... 62 III.4. Liên kết móc xích ............................................................................. 63 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Ch-¬ng I. MỘT SỐ KHÁI NIỆM CƠ BẢN I. CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU I.1. Tin học quản lý - 5 - 4

và ứng dụng của tin học nhờ máy tính chủ yếu 2 lĩnh vực ọc kỹ thuật: liên quan đến tính toán phức tạp với khối lƣợng lớn (chiếm 20%).Nói đến tin học ta không thể không nhắc đến máy tính. o Mẫu phiếu xuất. ể phân loại các bài toán quản lý theo từng lĩnh vực chung. quản lý khu vui chơi. Ví dụ. Nhƣng hiện nay với sự phát triển nhanh chóng của tin học. nhập kho để quản lý hàng trong kho.. Ví dụ o Quản lý kho thành phẩm của công ty bánh kẹo Hải Hà . luôn biến đổi và đƣợc cập nhật thƣờng xuyên. phần mềm thống kê. Ví dụ. và để máy tính có thể thực hiện một công việc nào đó. Tin học quản lý là một ngành ứng dụng tin học trong công tác quản lý.. ợc cập nhật thƣờng đƣợc tổ chức theo những khuôn mẫu nhất định gọi là cấu trúc dữ liệu. Bài toán quản lý gồm các đặc trƣng sau ử lý một khối lƣợng dữ liệu khá lớn. Máy tính do con ngƣời chế tạo ra. Ví dụ o Mẫu Hoá đơn thu chi để quản lý tài chính. Các mẫu này đƣợc thiết kế sao cho phù hợp với các yêu cầu xử lý khác nhau. Máy tính là một công cụ tin học nhƣng nó không thể thay thế cho con ngƣời. con ngƣời cần phải viết chƣơng trình cho nó làm việc. phần mềm kế toán.. quản lý bán hàng.. phần mềm quản lý khách sạn. o Mẫu hồ sơ cán bộ để quản lý cán bộ. nó đang từng bƣớc thâm nhập vào rất nhiều lĩnh vực trong đời sống xã hội và máy tính không chỉ đơn giản dùng để tính toán mà máy tính chủ yếu giúp con ngƣời sử dụng thông tin.. phần mềm về quân sự. Lúc đầu máy tính sinh ra nhằm mục đích giúp con ngƣời giảm nhẹ công việc tính toán và tăng tốc độ tính toán. ản lý xã hội: tính toán đơn giản nhƣng các mối quan hệ lại phức tạp phải xử lý một khối lƣợng lớn dữ liệu (chiếm 80%)..

2. ết quả xử lý thông tin trong bài toán quản lý thƣờng đƣa ra theo dạng mẫu biểu. tổng (sum).. Khi quản lý và xử lý thông tin phải đảm bảo 4 mục tiêu ầy đủ ất quán ảo mật . o Quản lý mua bán hàng tại một cửa hàng văn phòng phẩm o Quản lý mua bán hàng tại một quầy sách ản lý bán hàng.. o Báo cáo (report) I. . o Sắp xếp (sort) o Tìm kiếm (find.Generated by Foxit PDF Creator © Foxit Software http://www. Bởi vì về mặt nghiệp vụ chúng có những điểm tƣơng đồng với nhau.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh o Quản lý kho thành phẩm của xí nghiệp điện cơ Thống Nhất ản lý kho. seek) o Lọc (filter) o Tính toán: cộng (count). delete.foxitsoftware. trung bình (average). đƣợc nhiều ngƣời sử dụng và việc thực hiện nó đƣợc chi phối bằng một mô hình dữ liệu. Cơ sở dữ liệu Cơ sở dữ liệu là một tập hợp dữ liệu của một tổ chức đƣợc lƣu trữ trong máy tính. change.6 Và phải bảo đảm các thao tác cơ bản đối với hồ sơ đối tƣợng quản lý o Tạo lập (Create) o Cập nhật: update.com For evaluation only.

thao tác cơ bản thuận tiện. Trong môn học sẽ giới thiệu phiên bản Visual FoxPro 9.3. Có rất nhiều Hệ quản trị cơ sở dữ liệu nhƣ FoxPro.. System.. DB2. . Hoạt động quản lý thƣờng phải xử lý một khối lƣợng lớn thông tin và thƣờng yêu cầu phải nhanh. Sau khi khởi động. I. Hệ quản trị CSDL Visual FoxPro 9. Access.exe và chọn lựa chế độ cài đặt ặt đầy đủ ặt từng thành phần ặt tối thiểu để chạy. màn hình làm việc của FoxPro xuất hiện.com For evaluation only. Vào/ra FoxPro Để khởi động FoxPro di chuyển chuột Start/Programs/Microsoft Visual FoxPro 9. Cài đặt FoxPro for Windows Chạy file setup.0. Oracle. Những phần mềm nhƣ vậy đƣợc gọi là các Hệ quản trị Cơ sở dữ liệu.7 .Chú ý: Một cơ sở dữ liệu khác một ngân hàng dữ liệu vì cơ sở dữ liệu là dữ liệu đƣợc tổ chức có cấu trúc giúp cho việc thực hiện một cách thuận lợi.0 Đầu tiên ta nói đến mối quan hệ giữa Databate.foxitsoftware.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ hoá công tác quản lý là một đòi đúng hƣớng. FoxPro = Fox Professional. Tin học Generated by Foxit PDF Creator © Foxit Software http://www. trong đó công cụ chính của việc tin học hoá là các phần mềm hƣớng vào công tác quản lý. Tức là những phần mềm này phải trợ giúp cho con ngƣời 4 mục tiêu và 7 thao tác cơ bản đã nêu. Management. Khi thoát khỏi FoxPro ta có 2 cách ại cửa sổ lệnh dùng lệnh Quit. chính xác nên đòi hỏi phải đƣợc tin học hoá.

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh ế độ chƣơng trình. cuối lệnh ấn Enter. ếu ở phần lựa chọn nào còn có nghĩa là còn lựa chọn ở mức trong. ệt sáng đến bảng chọn cần thiết và ấn phím Enter. FoxPro lại sẵn sàng chờ lệnh tiếp. ta cần tạo một file văn bản gồm các lệnh của FoxPro. kết quả lệnh đƣa ra màn hình chính. ta tiếp tục sử dụng các phím mũi tên để di chuyển đến mục cần chọn và ấn Enter. ế độ hội thoại: ngƣời dùng gõ một lệnh vào cửa sổ lệnh. Soạn thảo văn bản trong FoxPro Mở một file văn bản mới hoặc gọi một file cũ bằng lệnh MODIFY COMMAND đƣờng dẫn \ tên file .foxitsoftware.o Ấn phím F10 o Chọn bảng chọn File o Chọn mục Exit Cũng có thể thực hiện bằng cách chọn phím nóng ấn Alt + F. Generated by Foxit PDF Creator © Foxit Software http://www. Sử dụng hệ thống bản chọn Ấn phím F10.com For evaluation only. máy thực hiện lệnh. sau đó chạy file này. Visual Fox cũng làm việc ở hai chế độ: chế độ hội thoại (cửa sổ lệnh) và chế độ chƣơng trình (lập trình). Khi đó một bảng chọn dọc xuất hiện phía dƣới bảng chọn vừa chọn ệt sáng đến mục cần chọn và ấn phím Enter. ấn phím X.8 . Hai chế độ làm việc trong Visual Fox Cũng giống các phiên bản khác.

1.foxitsoftware. CÁC KHÁI NIỆM CƠ BẢN TRONG FOXPRO II.txt Sau khi soạn thảo xong.com For evaluation only. hãy ấn Ctrl + W Các phím dịch chuyển con trỏ ốn phím mũi tên ịch con trỏ lên/xuống một trang màn hình ỏ về đầu/cuối dòng. ết lặp các đặc tính màn hình soạn thảo. khối văn bản có màu xanh. II. Các kiểu dữ liệu cơ bản Trong FOXPRO có 8 kiểu dữ liệu cơ bản: ểu kí tự Character (C): Chứa các kí tự thuộc bảng mã ASCII có độ rộng . Huỷ đánh dấu khối: nháy nút trái chuột. Thay đổi chế độ chèn/đè dùng phím Insert Đánh dấu khối văn bản nháy nút trái chuột và kéo. ghi văn bản vào đĩa và đóng cửa sổ soạn thảo.9 . ối. – tìm kiếm và thay thế dãy ký tự in : Ctrl + G – không thay và tìm kiếm tiếp – thay và tìm kiếm tiếp ất cả. ỏ về đầu/cuối văn bản.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Các thao tác chính khi soạn thảo – xoá khối và ghi vào vùng đệm – sao chép khối vào vùng đệm – chép khối từ vùng đệm vào chỗ con trỏ. Dánh dấu toàn bộ văn bản Ctrl+A. Generated by Foxit PDF Creator © Foxit Software http://www.Ví dụ: MODIFY COMMAND C:\My document\hocsinh.

Có độ rộng 20 kí tự số.34500000E+01 (=12. F) – theo thứ tự ƣu tiên Generated by Foxit PDF Creator © Foxit Software http://www.45) ểu Date (D): Chứa dữ liệu dạng ngày tháng với độ rộng cố định là 8. chia: * (giao hoán). phân biệt chữ hoa và thƣờng. Ví dụ: 1 = 123. Dạng ngầm định là MM/DD/YY. Các phép toán cho các kiểu dữ liệu ố học (dùng cho kiểu N. ểu Logic (L): Nhận hai giá trị True (T) hoặc False (F) có độ rộng cố định là 1. Nhân. dấu âm (-) và dấu chấm thập phân). âm thanh và bảng tính.34500000 x 10 . ểu Float (F): Chứa dữ liệu kiểu số thực với dấu phẩy động. / (không giao hoán). ểu Memo (M): Chứa các khối văn bản lớn có độ rộng không quá 64. ểu số Numeric (N): Chứa dữ liệu kiểu số nguyên và số thực.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Luỹ thừa: ** hoặc ^ (không giao hoán) VD: 3 5 = 3**5 (3^5).com For evaluation only.tối đa 254 kí tự. ểu Picture (P) và General (G): Chứa hình ảnh.000 kí tự. (Bao gồm Cá c số từ 0 . . Có thể chuyển sang DD/MM/YY bằng lệnh Set Date French.foxitsoftware.9.10 12. dấu dƣơng (+). 10 100 = 100**(1/10).

(không giao hoán) Các toán hạng có kiểu N sẽ cho ra kết quả kiểu N. Luật so sánh áp dụng cho các kiểu nhƣ sau + Kiểu C: so sánh theo mã ASCII Generated by Foxit PDF Creator © Foxit Software ảng cách giữa 2 ngày> .<số nguyên> D N D ứ> VD. Phép trừ: ghép 2 chuỗi thành một chuỗi nhƣng chuyển tất cả những dấu cách ở cuối chuỗi 1 về cuối chuỗi kết quả.Cộng. b = “Ha noi” ? a + b = „thanh pho Ha noi‟ ? len(a+b ? a – b = „thanh phoHa noi ‟ ? len(aới kiểu ngày (cùng mức ƣu tiên) Phép cộng: <ngày> + <số D N D ộng 45 ngày nữa Phép trừ: <ngày> . . kết quả phép toán có kiểu L. ỗi ký tự (cùng mức ƣu tiên) Phép cộng: ghép 2 chuỗi thành 1 chuỗi (ghép nguyên vẹn). Date() <ngày 1> D D N ạng kiểu L cho ra kết quả kiểu L. là F nếu so sánh sai. là T nếu so sánh đúng. a = “thanh pho ”. Hai toán hạng phải có cùng kiểu. trừ: + (giao hoán). VD. sánh.

và .http://www.Y. L và khác nhau đối với kiểu C.N. Biến là đại lƣợng có giá trị có thể thay đổi. ằng logic có hai giá trị là .T.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ + Kiểu N. VD {12/04/01}. D. nhỏ hơn giá trị .T. VD „Ha noi‟.F. .com For evaluation only.. 0. ến hệ thống do FoxPro tự tạo ra trong bộ nhớ ngay sau khi khởi động. Đối với = sẽ . 123..2.F. và .T. Hằng và biến Hằng là đại lƣợng có giá trị không thay đổi. ến trƣờng là tên một trƣờng của cơ sở dữ liệu.. Kết quả củ II. ằng T nếu bên trái là tập con của bên phải. F: so sánh theo giá trị đại số + Kiểu D: theo trục thời gian + Kiểu L: giá trị .. hoặc . Biến hệ thống có tên bắt đầu bằng dấu gạch dƣới. Biến trƣờng tồn tại trong khi cơ sở dữ liệu chứa nó đƣợc mở. 1.12.2E-6.foxitsoftware. Ngày rỗng ký hiệu là { } hoặc { / / }. Có thể giải phóng các biến nhớ khi không cần dùng nữa. ằng kiểu số: -12. ằng ký tự: đặt trong cặp dấu „ ‟ hoặc “ ” hoặc [ ].45. nếu nội dung vế phải là phần đầu nội dung vế trái T Đối với ==: chỉ đúng nếu 2 chuỗi giống nhau hoàn toàn. ỉ dùng cho kiểu C). FoxPro chia biến thành 3 loại ến nhớ là các biến trung gian đƣợc tạo ra khi chạy chƣơng trình hay thực hiện các lệnh trong khung cửa sổ lệnh.11 . Các phép toán = và == (so sánh chính xác) là nhƣ nhau đối với kiểu: N.. ằng kiểu ngày: đặt trong cặp dấu { }.

có thể dùng chữ. N. nếu nhiều đối số thì ngăn cách nhau bởi dấu phẩy. II. VD. dấu gạch chân. đối số hoặc không có đối số. Hàm có tên. còn các hàm do ngƣời dùng tự viết thì phải đƣợc viết tên đầy đủ.. L. Các hàm do FoxPro cung cấp sẵn.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh Hằng và biến trong FoxPro không cần phải định nghĩa kiểu dữ liệu trƣớc mà kiểu dữ liệu của nó sẽ đƣợc xác định khi nó đƣợc gán nội dung. Hàm Là công cụ để tạo giá trị cho các đại lƣợng hay sử dụng trong giá trị thao tác. Nếu có đối số thì các đối số đƣợc viết trong cặp dấu ngoặc này. nhƣng không đƣợc bắt đầu bằng số và không có dấu cách.to <danh sách biến>. Các hàm thƣ viện ả lại ngày giờ hệ thống.foxitsoftware.com For evaluation only. ả lại một chuỗi ký tự thể hiện giờ hiện tại.Hằng và biến đƣợc lƣu trữ nội dung trong bộ nhớ trong thông qua tên hằng và tên biến đƣợc đặt theo quy tắc: tên dài tối đa 10 ký tự.. Cạnh tên hàm bao giờ cũng phải có cặp dấu (). II. khi sử dụng chỉ cần xác định 4 chữ cái đầu.12 . Biểu thức . Generated by Foxit PDF Creator © Foxit Software http://www. Tên biến không phân biệt chữ hoa và chữ thƣờng. Một hàm (không có đối số hoặc có đối số thì giá trị đối số phải xác định) chỉ trả lại một giá trị duy nhất và có kiểu xác định là 1 trong 4 kiểu C. Tên hàm đặt theo quy tắc đặt tên file nếu hàm do ngƣời dùng tự viết. <tên hằng/biến> = <giá trị> hoặc store <giá trị> to <danh sách hằng/biến> hoặc tất cả các lệnh trong FoxPro có phần . Kiểu hằng và biến tƣơng ứng với các kiểu dữ liệu cơ bản (không xét kiểu G).3. chữ số. D. không đặt tên trùng với tên hàm thƣ viện.4.

. phải viết đúng cú pháp. các phép toán đƣợc thực hiện theo thứ tự ƣu tiên.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh II.6. To <Tên file>/<Print>: Đƣa kết quả ra file hoặc máy in. Muốn thay đổi thứ tự ƣu tiên ta dùng cặp ngoặc tròn. For <BT DK>: Chỉ những bản ghi thoả mãn biểu thức điều kiện mới đƣợc thực hiện.foxitsoftware. giữa các trƣờng cách nhau bởi dấu phẩy. Lệnh Lệnh là một thao tác yêu cầu FoxPro thực hiện một công việc nào đó do ngƣời sử dụng yêu cầu. Biểu thức đơn giản là tên 1 biến. cuối cùng là phép logic. biến. Phạm vi: Chỉ vùng tác động của lệnh. Phép gán Cú pháp <biến> = <biểu thức> Lệnh này nhằm khởi tạo một biến mới và gán giá trị ban đầu cho nó. hàm và các phép toán.13 . Cú pháp chung để viết lệnh <Lệnh> [Phạm vi] [DS trƣờng] [For <BT DK>] [To <tên file> / <Print>] Trong đó Lệnh: Là các lệnh bất kỳ. Các phép toán cùng mức ƣu tiên đƣợc thực hiện từ trái sang phải. Trong một biểu thức. (3<5) < (4>2) là biểu thức hợp lệ. sau đó đến các phép so sánh. VD. Tuy nhiên trong tập các biểu thức thì FoxPro chỉ chấp nhận các biểu thức hợp lệ VD. chỉ cần viết 4 kí tự đầu. DATE()/3 là biểu thức không hợp lệ. DS trƣờng: Chỉ những trƣờng đƣợc liệt kê trong dach sách mới đƣợc tác động. 1 hằng. II.5.Biểu thức là tổ hợp các hằng.com For evaluation only. phép toán số học và ghép xâu thực hiện trƣớc. Generated by Foxit PDF Creator © Foxit Software http://www.

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Ở chế độ hội thoại o Mỗi lệnh đƣợc viết trên một dòng (có thể viết trên nhiều dòng. ốn dùng các lệnh của MS . Generated by Foxit PDF Creator © Foxit Software http://www. ệnh bao gồm từ khoá. o Nếu mỗi lệnh đƣợc viết trên nhiều dòng thì cuối mỗi dòng (trừ dòng cuối cùng) phải dùng dấu “. Còn những thành phần viết trong [ ] là tùy chọn.”.Chú ý: Những thành phần viết trong < > là bắt buộc phải viết ra.com For evaluation only. Ví dụ khi đã chọn FOR thì nhất định phải viết <điều kiện> Cách dùng lệnh. khi ấ ệnh sẽ đƣợc thực hiện. Ở chế độ chƣơng trình o Nếu mỗi lệnh đƣợc viết trên một dòng (tối đa 3000 ký tự) thì cuối dòng lệnh không viết bất cứ dấu nào. cuối dòng có dấu “. các tham số. các phần tuỳ chọn không phân biệt chữ hoa. . Khi viết lệnh phải viết đúng cú pháp lệnh. Nếu giống thì thực hiện. .DOS trong cửa sổ lệnh hay trong file chƣơng trình ta phải viết từ khoá RUN hoặc “!” rồi đến lệnh bình thƣờng của DOS.foxitsoftware. Cú pháp lệnh là quy tắc lệnh. Khi viết sai cú pháp sẽ nhận đƣợc thông tin báo lỗi Syntax error.14 o Trong một phiên làm việc. gần giống thì sửa cho đúng rồi thực hiện. chữ thƣờng.”). các lệnh đƣợc lƣu trữ toàn bộ trong cửa sổ lệnh nên ta có thể sử dụng lại các lệnh giống hoặc tƣơng tự các lệnh sắp dùng bằng cách đƣa con trỏ đến lệnh đó.

Generated by Foxit PDF Creator © Foxit Software http://www. Run Dir *. VD. III. phiếu điểm. Lý lịch cá nhân.15 .foxitsoftware. bảng điểm của sinh viên. Bản dữ liệu 2 chiều Xét một tập hợp hồ sơ có cùng bản chất và cấu trúc (hồ sơ của các đối tƣợng cùng loại khi xử lý thủ công).Ví dụ. hồ sơ về các cơ quan. Bảng trích ngang lý lịch. ngƣời ta thƣờng lặp các bảng bao gồm các cột hàng. hoá đơn bán hàng. Ví dụ Disp stru ột lệnh bắt buộc phải có 1 động từ lệnh.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ hiều dọc gồm các cột..* ! Dir /p ừ khoá lệnh nếu có nhiều hơn 4 chữ cái thì chỉ cần viết 4 chữ cái đầu.1. mỗi dòng ứng với một hồ sơ và ngƣợc lại . III. Thông thƣờng các bảng này bị hạn chế bởi kích thƣớc giấy. III. danh sách lớp. Hồ sơ Xét một tập các đối tƣợng quản lý. VD.2.com For evaluation only. Nhƣ vậy nếu mỗi hồ sơ có nhiều thông tin đặc trƣng thì bảng phải có nhiều cột. Mỗi văn bản nhƣ vậy đƣợc gọi là một hồ sơ. bảng dữ liệu 2 chiều gồm các cột các dòng tƣơng ứng với chiều dọc và ngang.. Ở đây ta đƣa ra khái niệm bảng dữ liệu 2 chiều từ ý tƣởng tƣ duy trên nhƣng chỉ mở rộng thêm là không hạn chế bởi kích thƣớc giấy. FILE DỮ LIỆU File dữ liệu là đối tƣợng sử dụng chính trong hệ quản trị CSDL văn bản. nếu thiếu chƣơng trình sẽ thông báo lỗi unrecognize command verb. đối tƣợng này đƣợc đặt tƣơng ứng với một văn bản liệt kê các thông tin về đối tƣợng ấy. mỗi cột ứng với 1 thông tin đặc trƣng mà hồ sơ nào cũng có. ều ngang gồm các dòng.

Nhƣ vậy mỗi hồ sơ tƣơng ứng với một bản ghi trong file. các hệ QTCSDL cho phép tạo lập và lƣu trữ file đƣợc tổ chức một cách đặc biệt nhằm thể hiện trên màn hình hoặc giấy in hình ảnh nhƣ bản trên giấy. đối với kiểu N có thêm phần lẻ thập phân.com For evaluation only. File dữ liệu Từ khái niệm bảng dữ liệu 2 chiều trên. File nhƣ vậy đƣợc gọi là file dữ liệu. Đồng thời giúp ngƣời làm công tác quản lý thực hiện đƣợc thuận lợi các thao tác cơ bản. Đối với các bản ghi của file dữ liệu có thể thêm. ấu trúc là các thông tin về các trƣờng gồm: tên.3.mỗi hồ sơ chỉ ứng với một dòng.16 . sửa. kiểu. để lƣu trữ đƣợc bảng này rong bộ nhớ của máy tính điện tử. độ rộng. Có thể xoá hết tất cả các bảng ghi và file trơ nên rỗng. Lúc đầu khi cấu trúc vừa đƣợc tạo thì file chƣa có nội dung gọi là file rỗng. Muốn xoá cấu trúc phải xoá file dữ liệu. Generated by Foxit PDF Creator © Foxit Software http://www. L. ội dung: là tập hợp các bản ghi. + Kiểu trƣờng (type): có 5 kiểu C. D. M (M thực chất là kiểu C nhƣng không xác định trƣớc đƣợc độ rộng) + Độ rộng (width) Đối với mỗi file dữ liệu cấu trúc của nó đƣợc tạo một lần sau đó có thể sửa chữa. + Tên trƣờng (name): đặt theo quy tắc đặt tên biến. biến này đƣợc gọi là biến trƣờng. Mỗi dòng đƣợc gọi là một bản ghi (record). Trong file dữ liệu Mỗi cột trong bảng gọi là một trƣờng (field) và đƣợc đặt tƣơng ứng với một biến. File dữ liệu đƣợc đặc trƣng bởi 2 phạm trù cấu trúc và nội dung.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ . N.foxitsoftware. xoá gọi chung là cập nhật (update). III.

môn dạy. ngày sinh. Khi đó ta thiết kế cấu trúc file dữ liệu tƣơng ứng gồm ỗi thông tin đặc trƣng đƣợc biểu diễn là một trƣờng.. ghi chú. Việc thiết kế đƣợc ghi vào một bảng có các cột STT.).1. ngaysinh có kiểu D. Ví dụ. điểm các môn học. họ tên. giới tính.. hồ sơ các giáo viên trong khoa có các trƣờng nhƣ: họ tên. phiếu điểm của mỗi sinh viên trong một học kỳ.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ STT Tên trƣờng Kiểu Độ rộng Phần lẻ Giải thích 1. hoten C 27 Họ và tên sinh viên 3.foxitsoftware. nsinh D 8 Ngày sinh 4. Ví dụ. kiểu dữ liệu. kiểu trƣờng. Tạo file cơ sở dữ liệu Khi ta muốn lƣu trữ một tập các hồ sơ cùng loại. học bổng. hồ sơ của các giáo viên trong khoa. ngày sinh. hoten có kiểu C. độ rộng và phần lẻ (nếu có). gtinh L 1 Giới tính (Nam . Ví dụ. maSV C 7 Mã số sinh viên 2. tên trƣờng. học vị. mỗi hồ sơ đƣợc đặc trƣng bởi một số các thông tin đặc trƣng nhƣ nhau..Ch-¬ng II..T.17 . Nu . Ví dụ. xét tập các hồ sơ là tập các phiếu điểm của sinh viên bao gồm các thông tin đặc trƣng sau: Mã sinh viên. Nếu hồ sơ có n thông tin đặ ở dữ liệu có n trƣờng trên n dòng. phần lẻ thập phân. học hàm... THAO TÁC VỚI FILE DỮ LIỆU I.com For evaluation only.. Mỗi dòng của bảng này ứng với một trƣờng của file cơ sở dữ liệu.F) . điểm trung bình. độ rộng. Generated by Foxit PDF Creator © Foxit Software http://www. ghi chú (ghi tƣờng minh tên trƣờng. xếp loại. miền giá trị. TẠO FILE CƠ SỞ DỮ LIỆU I.. ứ vào dạng của thông tin đặc trƣng mà ta khai báo các thuộc tính cho các trƣờng: tên trƣờng.

gchu M 9 Quá trình học tập và rèn luyện Có 3 cách tạo file cơ sơ dữ liệu Cách 1. Gõ lệnh có cú pháp vào cửa sổ lệnh Create <Tê Trong đó <Tên file CSDL> là tên file cơ sở dữ liệu muốn tạo. độ rộng (width). ờng không dài quá 11 ký tự.6 đvht 6. Tạo cấu trúc cho file DIEM.10] . xlech N 2 Xà lệch [0.5 đvht 8.10] . kiểu trƣờng (type). Tạo qua khung đối thoại. không chứa dấu trống và bắt đầu phải là chữ cái.nữ học 9. tanh N 2 Điểm tiếng anh[0. không đƣợc dùng hai trƣờng có tên trùng nhau. Chúng ta sử dụng các phím ển giữa các cột ặc chuột: để nhập thông tin cho các trƣờng. Generated by Foxit PDF Creator © Foxit Software http://www.10] . hbong N 6 Học bổng 13. xkep N 2 Xà kép [0.foxitsoftware.5.5 đvht 7. thoc N 2 Điểm tin học [0.10] . Ví dụ.Bài giảng Hệ quản trị CSDL Fox . triet N 2 Triết học [0.nam học 10. ột file cơ sở dữ liệu.DBF Sau khi thực hiện lệnh trên.2 đvht .2 đvht . Chú ý. xloai C 10 Xếp loại học lực 12.10] . phần lẻ (dec) của các trƣờng trong cấu trúc file.com For evaluation only. trên màn hình xuất hiện cửa sổ cho chúng ta nhập vào tên trƣờng (name). dtb N 5 2 Điểm trung bình 11.

2. gtinh L. Cách này thƣờng đƣợc dùng trong chế độ chƣơng trình. . Mở và đóng file cơ sở dữ liệu Mở và đóng file nói chung tức là đƣa file từ bộ nhớ ngoài vào bộ nhớ trong để xử lý.<phần lẻ >]).Giáo viên: Nguyễ Sau khi khai báo xong cấu trúc file CSDL.2)) I. hoten C(27). ấn OK. Để ghi lại cấu trúc này và kết thúc việc khai báo. ta có thể tiến hành ba cách sau ấn nút OK ấn tổ hợp phím Ctrl + W ỏ xuống dòng mới (chƣa khai báo dữ liệu) và ấ Sau khi thực hiện một trong ba thao tác trên.. Create table Diem (masv C(7). File cơ sở dữ liệu đƣợc tạo ra bằng lệnh Create thì đã có trạng thái mở ngay. Bấm chuột vào File/New. Cách 3. nhập xong gõ CTRL + W. Sau đó xuất hiện một hộp thoại gồm các radio botton. ập dữ liệu cho trƣờng có kiểu M ta gõ CTRL + HOME sau đó nhập liệu vào. ập hết dữ liệu vào file CSDL ta gõ CTRL + W sau đó quyền điều khiển đƣợc trả về cửa sổ lệnh. Nếu quên không đóng. chọn Database..có nhập dữ liệu cho các bản ghi hay không ? ếu trả lời Yes màn hình hiện lên khung nhập liệu và ta gõ dữ liệu vào.) VD. trên màn hình xuất hiện một hộp thoại hỏi “Input data records now ?” . Cú pháp Create table <Tên file CSDL> (<tên trƣờng> <kiểu>(<độ rộng> [. Cách 2. Để bảo toàn các thông tin cho file CSDL khi không dùng nữa ta phải đóng lại bằng lệnh USE hoặc CLOSE DATABASE. dtb N(5. khi ta kết thúc bằng lệnh quit thì lệnh này sẽ đóng hộ. Tạo file không thông qua cửa sổ lệnh và menu. Tạo file CSDL thông qua menu hệ thống.18 .

Để biết 1 file đã đƣợc mở ta dùng lệnh SET. USE chỉ đóng file CSDL đang hiện hành.foxitsoftware.Chú ý. Lệnh mở file dữ liệu. Ta có thể thực hiện lệnh DISPLAY hoặc LIST có cú pháp nhƣ sau DISPLAY STRUCTURE [To Printer | To file <Tên file>] LIST STRUCTURE [To Printer | To file <Tên file>] [To Printer | To file <Tên file>] :Đƣợc sử dụng nếu ta muốn kết xuất thông tin cấu trúc ra máy in (với điều khoản To Printer) hoặc ra file có tên <Tên file> (với điều khoản To file <Tên file>). LÀM VIỆC VỚI CẤU TRÚC FILE CƠ SỞ DỮ LIỆU II. CLOSE DATABASE đóng tất cả các file CSDL đang đƣợc mở. Ví dụ. Xem cấu trúc của file CSDL Diem ta thực hiện nhƣ sau USE diem DISPLAY STRUCTURE (LIST STRUCTURE) Khi đó trên màn hình hiển thị thông tin về cấu trúc nhƣ sau Structure for database: D:\MY DOCUMENTS\VISUAL FOXPRO PROJECTS\DIEM.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Nếu quên tên file ta dùng lệnh dir để xem tên các file DBF hoặc lệnh USE ? cho phép chọn. khi ta muốn xem lại cấu trúc của file đó.19 .DBF Number of data records : 20 Date of last update : 11/25/01 .1. Cú pháp USE IN <tên file CSDL Generated by Foxit PDF Creator © Foxit Software http://www.com For evaluation only. Xem và in cấu trúc Sau khi tạo xong một file CSDL theo một cấu trúc nhất định. II.

foxitsoftware. ự khác nhau giữa LIST và DISPLAY: Khi thực hiện lệnh trên.nếu dùng DISPLAY thì FoxPro sẽ hiển thị thông tin theo từng trang màn hình. nếu thống tin về cấu trúc không hiển thị hết trong một trang . Mỗi khi xem xong một trang màn hình ta phải bấm phím bất kỳ để xem tiếp trang sau. Generated by Foxit PDF Creator © Foxit Software http://www.20 Type Width 7 27 8 1 2 2 2 2 2 5 10 6 10 85 2 Dec Index Character Character Date Logical Numeric Numeric Numeric Numeric Numeric Numeric Character Numeric Memo .com For evaluation only. Nếu dùng LIST thì FoxPro sẽ cuốn trôi thông tin trên màn hình mà không dừng lại. .Memo file block size : 64 Field Field Name 1 masv 2 hoten 3 nsinh 4 gtinh 5 thoc 5 tanh 6 triet 7 xlech 8 xkep 9 dtb 10 xloai 11 hbong 12 gchu ** Total ** Chú ý.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ ốn xem cấu trúc của một file CSDL thì điều đầu tiên là file CSDL này phải đang mở.

đƣa con trỏ đến dòng ứng với trƣờng đó và ấn Ctrl + D hoặc ấn nút delete. ổi thứ tự các trƣờng: đƣa con trỏ đến trƣờng cần thay đổi vị trí ấn tổ hợp phím Ctrl + PgUp và Ctrl + PgDn. Sửa cấu trúc Trong một số trƣờng hợp khi đã tạo đƣợc một file CSDL.II. .Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Sau khi thay đổi cấu trúc xong. Thay đổi cấu trúc của file diem.21 . ta lại muốn thay đổi cấu trúc của nó. ối với một trƣờng chƣa có ta có thể thêm vào o Thêm vào cuối: đƣa con trỏ đến cuối rồi thêm bình thƣờng. Để làm việc này đầu tiên hãy mở file CSDL đó và thực hiện lệnh sau MODIFY STRUCTURE Ví dụ.com For evaluation only. Các thao tác trên hộp hội thoại này tƣơng tự nhƣ khi ta tao file CSDL.foxitsoftware. o Thêm vào giữa 2 trƣờng đã có: đƣa con trỏ đến trƣờng mà tƣơng lai nó nằm dƣới trƣờng đƣợc thêm và ấn Ctrl + I hoặc ấn nút insert.dbf ta thực hiện nhƣ sau USE diem MODIFY STRUCTURE Khi đó một màn hình giao diện hiện lên cấu trúc của các bản ghi. Generated by Foxit PDF Creator © Foxit Software http://www. Ta ấn “yes” để khẳng đinh có thay đổi cấu trúc của file. thay đổi cấu trúc của các trƣờng này. Xoá 1 trƣờng . khi này xuất hiện hộp thoại hỏi “Make structure changes permanent ?”.2. ta ấn OK. xoá. Chúng ta có thể thêm. Các khả năng sửa ối với một trƣờng đã có ta có thể sửa các đặc trƣng của nó và có thể xoá nó.

3. Ngoài ra khi ta sửa thì FoxPro lƣu 2 file đã có II. Số thứ tự ấy đƣợc gọi là số hiệu của bản ghi.FDT.Chú ý. Trong file DIEM. Khi sửa cấu trúc 1 file dữ liệu đã có nội dung vấn đề giữ gìn dữ liệu là rất quan trọ ớc khi sửa ta nên lƣu nội dung file dữ liệu sang chỗ khác. Ví dụ. . Số hiệu bản ghi Khi dữ liệu đƣợc nhập vào file thì FoxPro tự động đánh số thứ tự vào bản ghi theo thời gian thực bắt đầu từ 1. không quá rộng. III.DBF. Generated by Foxit PDF Creator © Foxit Software http://www. Chú ý.foxitsoftware.com For evaluation only. Trƣờng không độc lập là những trƣờng mà nội dung của nó suy ra từ các trƣờng khác. ế dụng dữ liệu hơn. Nhƣng trong thực tế ế ời gian chạy lâu hơn. ta không cần lƣu bất cứ một trƣờng không độc lập nào (vì nó có thể suy ra từ các trƣờng độc lập). Định vị con trỏ bản ghi a. CẬP NHẬT DỮ LIỆU CHO FILE CƠ SỞ DỮ LIỆU III. Khi tạo cấu trúc ta chọn kiểu. Về phƣơng diện lý thuyết. Trƣờng độc lập và không độc lập Trƣờng độc lập là những trƣờng mà nội dung của nó không suy ra đƣợc từ nội dung các trƣờng khác. 11 là trƣờng phụ thuộc.1. Nếu file dữ liệu có trƣờng memo thì ta lƣu thêm file . các trƣờng từ Trƣờng 9. độ rộng các trƣờng sao cho tối ƣu nhất. không quá hẹp để đủ lƣu trong những trƣờng hợp tổng quát.Bài giảng Hệ quản trị CSDL Fox ốn kém bọ nhớ hơn nhƣng sẽ đơn giản trong việc sử ử lý đối với dữ liệu sẽ phức tạp ờng độc lập. 10.

22 trả lại giá trị sai. Tại một thời điểm FoxPro chỉ làm việc với 1 bản ghi tức là nội dung bản ghi ấy đƣợc đƣa vào bộ nhớ trong thông qua các biến trƣờng. Chú ý. . Khi thao tác với dữ liệu (đặc biệt là khi viết chƣơng trình) ta cần phải luôn xác định đƣợc con trỏ bản ghi nằm ở vị trí nào trong file. Dịch chuyển con trỏ bản ghi ểm đầu file . đó là số hiệu của bản ghi hiện tại. Điểm cuối file là điểm mà tại đó hàm eof() trả lại giá trị đúng. ngƣợc lại ản ghi hiện tại mặc định là bản ghi đầu tiên. điểm này nằm trƣớc bản ghi số 1 và có số hiệu bản ghi bằng 1.Giáo viên: Nguyễ b. .điểm cuối file Điểm đầu file là điểm mà tại đó hàm bof() trả lại giá trị đúng. Bản ghi nào mà nội dung của nó nằm trong bộ nhớ trong thông qua các biến trƣờng thì đƣợc gọi là bản ghi hiện tại. Nhƣ vậy nếu file CSDL có n trƣờng thì trong bộ nhớ chỉ có n biến trƣờng và nội dung của n biến trƣờng đó chính là nội dung các trƣờng của bản ghi đƣợc đƣa vào xử lý. ngƣợc lại trả lại giá trị sai. Có 1 cơ chế đặc biệt để giúp ngƣời dùng xác định đƣợc bản ghi nào đó có là bản ghi hiện tại gọi là cơ chế con trỏ bản ghi. Hàm RECNO() trả lại giá trị là 1 số. điểm này nằm ở dƣới bản ghi cuối cùng và ở đó số hiệu lớn hơn số hiệu bản ghi cuối cùng một đơn vị. Có 2 vấn đề cần giải quyết ế nào để đƣa một bản ghi nào đấy thành bản ghi hiện tại ại một thời điểm làm thế nào để biết bản ghi số hiệu bao nhiêu là bản ghi hiện tại. Khi mới mở con trỏ bản ghi chỉ vào bản ghi số c. Bản ghi hiện tại Chúng ta biết rằng khi mở một file CSDL nào đó thì các bản ghi của file CSDL này sẽ đƣợc nạp vào bộ nhớ.

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh Trong đó <n> là số tự nhiên chỉ số thứ tự của bản ghi cần chuyển đến. Để xác định đƣợc có bao nhiêu bản ghi trong file CSDL ta có thể sử dụng hàm RECCOUNT(). Ta gọi đây là dịch chuyển tuyệt đối bởi vì trƣớc lệnh này con trỏ nằm ở đâu không quan trọng. USE diem b = RECNO() .foxitsoftware.com For evaluation only. trên màn hình sẽ thông báo lỗi “Record is out of range”. . Ví dụ.23 GO 3 a = RECNO() Chú ý. ể dịch chuyển đến bản ghi cuối cùng trong file CSDL ta thực hiện lệnh GO BOTTOM. ể dịch chuyển đến bản ghi đầu tiên trong file CSDL ta thực hiện lệnh GO TOP. ịch chuyển con trỏ bản ghi quá phạm vi của file CSDL. Do đó cần lƣu ý khi thực hiện lệnh GO là không đƣợc lớn hơn số bản ghi của file CSDL.ịch chuyển tuyệt đối Cú pháp GO <n> hoặc GOTO <n> Generated by Foxit PDF Creator © Foxit Software http://www. Lệnh này dùng để di chuyển con trỏ bản ghi đến một bản ghi <n> xác định trong file CSDL hiện hành.

foxitsoftware. Ví dụ. APPEND Khi thực hiện lệnh này màn hình sẽ hiển thị một bản ghi trống để cho ta nhập dữ liệu cho các trƣờng trong bản ghi này. skip ~ skip 1 III. Để thêm bản ghi vào cho file DIEM. go 15 Generated by Foxit PDF Creator © Foxit Software http://www.2. Thêm bản ghi vào cuối file CSDL Để bổ sung các bản ghi vào cuối file CSDL đang mở ta dùng lệnh APPEND với một số dạng sau a.ịch chuyển tƣơng đối Cú pháp SKIP <k> Trong đó <k> là số nguyên khác 0.DBF ta thực hiện các lệnh sau use diem APPEND Tiếp theo một màn hình nhập liệu sẽ hiện ra để ta có thể vào dữ liệu cho bản . Ta gọi đây là dịch chuyển tƣơng đối bởi vì khi thực hiện lệnh thì vị trí con trỏ ở đâu trƣớc đó là rất quan trọng.com For evaluation only. Thêm bản ghi 1. Ví dụ. Đƣa con trỏ bản ghi tới k bản ghi không kể bản ghi hiện tại về phía đầu file nếu k âm.24 Chú ý. về phía cuối file nếu k dƣơng.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ skip -3 12 skip 4 .

diem2. <file bổ sung> phải ở trạng thái đóng. Generated by Foxit PDF Creator © Foxit Software http://www.DBF ta thực hiện các lệnh sau use diem APPEND c. Chú ý. Hai file này phải có cấu trúc giống nhau.dbf. Bản ghi trống là bản ghi có trƣờng số bằng 0. Ví dụ.dbf. Dể ghép ba file CSDL làm một ta thực hiện các lệnh sau use diem append from diem1 . diem1.com For evaluation only.dbf.25 . Để thêm bản ghi vào cho file DIEM.gih vừa đƣợc thêm. ếu có từ khoá [FOR <btL>] có nghĩa là không phải tất cả các bản ghi trong file nguồn đƣợc chép sang mà chỉ những bản ghi thoả mãn biểu thức logic <btL> mới đƣợc nối thêm vào file CSDL hiện thời.F. APPEND BLANK Khi thực hiện lệnh này chƣơng trình không yêu cầu ta nhâpk vào dữ liệu cho bản ghi đƣợc nối thêm mà chƣơng trình sẽ tự động thêm một bản ghi trống vào file CSDL hiện thời.foxitsoftware. APPEND FROM <file bổ sung> [Fields <tên trƣờng>] [FOR <btL>] Lệnh này bổ sung các bản ghi của <file bổ sung> vào file CSDL hiện thời. quá trình vào dữ liệu giống nhƣ khi vào dữ liệu cho các bản ghi ở phần trên. b. APPEND FROM Cú pháp.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ ờng hợp có từ khoá [Fields <tên trƣờng>] thì chỉ những trƣờng đƣợc liệt kê trong danh sách <tên trƣờng> mới đƣợc chép ra. Ta có 3 file CSDL diem. trƣờng ký tự là các dấu cách.. trƣờng ngày là { / / } Ví dụ. trƣờng logic là .

sau đó chọn mục Append from. Chèn thêm bản ghi vào file CSDL Dùng để chèn thêm một bản ghi vào bất cứ vị trí nào trong file CSDL. Cú pháp INSERT [Before] [BLANK] Lệnh INSERT dùng để chèn vào phía sau bản ghi hiện tại một bản ghi mới ếu có từ khoá [Before] thì bản ghi mới sẽ đƣợc chèn tại vị trí của bản ghi hiện tại. Khi thực hiện lệnh này FoxPro cũng hiển thị một màn hình nhập liệu yêu cầu ta nhập dữ liệu cho bản ghi mới đƣợc chèn. ếu có từ khoá [BLANK] thì một bản ghi trống sẽ đƣợc chèn vào.0 Ngoài ra ta có thể chọn thực hiện lệnh này trên menu bằng cách chọn menu Database. Tuy nhiên trƣớc khi thực hiện lệnh này ta phải dịch chuyển con trỏ bản ghi đến nơi muốn chèn.. Thực hiện chèn một bản ghi mới vào vị trí thứ 4 và một bản ghi trống vào vị trí đầu tiên trong file CSDL diem.. 2. Ví dụ. Khi một bản ghi đƣợc chèn tại một vị trí nào đó thì kể tự đó tất cả các bản ghi cũ trong file CSDL có số thứ tự đƣợc tăng lên 1 (lùi về phía sau một vị trí).append from diem2 for dtb = 8.dbf use diem go 3 insert go 1 insert before blank use diem go 4 insert before go 1 insert before blank .

a. Trƣớc đó con trỏ bản ghi ở đâu không quan trọng. ếu lệnh có từ khoá này lệnh sẽ làm việc với các bản ghi từ bản ghi hiện tại đến bản ghi cuối cùng.com For evaluation only.3. . Phạm vi và điều kiện trong câu lệnh thao tác bản ghi Khi thao tác với các bản ghi không phải lúc nào ta cũng tác động lên toàn bộ các bản ghi có trong file. Vì vậy khi trình bày cú pháp một câu lệnh thao tác với các bản ghi bao giờ ngƣời ta cũng phải nói rõ phạm vi ngầm định của câu lệnh này. Để tiện cho ngƣời dùng. ới n là số tự nhiên: Nếu lệnh có từ khoá này lệnh sẽ làm việc với bản ghi có số hiệu n.26 . nếu một câu lệnh không viết phần phạm vi thì đƣợc ngầm định là tác động lên tất cả các bản ghi hoặc là chỉ tác động lên bản ghi hiện tại.Generated by Foxit PDF Creator © Foxit Software http://www. Vì vậy trong các câu lệnh thao tác với bản ghi ngƣời ta thƣờng đƣa vào khái niệm phạm vi và điều kiện nhằm yêu cầu câu lệnh đó chỉ tác động lên một miền liên tục hoặc rời rạc các bản ghi.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ III. Khi xử lý file đến bản ghi nào thì bản ghi đó là bản ghi hiện tại. Thực hiện xong con trỏ bản ghi nằm ở cuối file. ới k là số tự nhiên: Nếu lệnh có từ khoá này thì lệnh sẽ làm việc với k bản ghi tính từ bản ghi hiện tại về cuối file. bản ghi hiện tại là bản ghi đầu tiên. Phạm vi Trong một câu lệnh thao tác với bản ghi có 4 loại phạm vi đƣợc quy định ếu câu lệnh có từ khoá này thì lệnh sẽ làm việc với toàn bộ các bản ghi trong file thoả mãn theo điều kiện lọc hiện thời và vị trí con trỏ bản ghi lúc đầu không quan trọng. Sau khi thực hiện xong con trỏ bản ghi ở luôn đó. Khi mở file. Thực hiện xong con trỏ bản ghi sẽ nằm ở cuối file.foxitsoftware. Chú ý.

Nếu có từ khoá [FONT <btC1> [. phông chữ in ra theo phông chữ của màn hình chính. logic.). Nếu có while <btL> thì câu lệnh tác động lên các bản ghi có <btL> là True. Sự khác nhau giữa for và while: khi thực hiện lệnh nếu có for <btL> thì câu lệnh tác động lên các bản ghi có <btL> là True. giá trị một hàm. <btN>] [STYLE <btC2>]] có thể in theo . ?? ? | ?? <bthức> [AT <bt N>] [FONT <btC1> [. Trong trƣờng hợp có cả hai thì ƣu tiên cho WHILE trƣớc. <btN>] [STYLE <btC2>]] Khi thực hiện lệnh này FoxPro sẽ in ra màn hình <bthức> (có thể là 1 hay nhiều biểu thức). Generated by Foxit PDF Creator © Foxit Software http://www. Xem và in dữ liệu a. giá trị các trƣờng của file CSDL hiện thời.foxitsoftware. Các câu lệnh chỉ có hiệu lực đến các bản ghi thoả mãn điều kiện xác định bởi <btL> (khi <btL> nhận giá trị . Các biểu thức trong danh sách có thể khác loại. nhƣng sẽ dừng lại ngay sau khi gặp bản ghi đầu tiên có <btL> là False. AT <btN> chỉ định bắt đầu in từ cột nào. Nếu có điều kiện thì các bản ghi trong phạm vi nào mà <btL> đúng thì mới đƣợc tác động.T.4. các <bthức> có thể là biểu thức số. Trong các câu lệnh thao tác với các bản ghi thƣờng có phần điều kiện bao gồm hoặc FOR <btL> hoặc WHILE <btL> hoặc cả hai. lƣớt qua các bản ghi có <btL> là False.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh Ý nghĩa. Lệnh ?.com For evaluation only. Điều kiện Nếu nhƣ phạm vi yêu cầu câu lệnh tác động lên một miền liên tục các bản ghi thì điều kiện có thể yêu cầu tác động đến một miền rời rạc các bản ghi. III. Nếu câu lệnh không có phần điều kiện thì các bản ghi trong phạm vi câu lệnh đƣợc tác động.27 .b.

VnTime'. làm nhiệm vụ: không đƣa con trỏ xuống dòng. <btC2> là kiểu chữ.28 ... Nếu chỉ có lệnh ? thì có tác dụng đƣa con trỏ xuống đầu dòng tiếp theo.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ ệnh ?.. Generated by Foxit PDF Creator © Foxit Software http://www. Giá trị của <btC2> có thể là B . U . Ví dụ.các phông chữ và cỡ chữ khác nhau với màn hình chính. a = 10 b = 25 ? a at 12 font '.com For evaluation only. không cho phép trình bày màn hình theo ý muốn.in gạch chân. ệnh ??. Lệnh SAY @ <dòng. Sự khác nhau giữa ? và ??. in xong con trỏ ở cuối giá trị của biểu thức sau cùng.. cột> SAY <bthức> [FONT <btC1> [. làm nhiệm vụ: đƣa con trỏ xuống dòng mới.in nghiêng. <btN> là cỡ phông chữ.20 style 'BU' ? „Chuong trinh quan ly diem‟ AT 20 ? date() use diem ? hoten Lệnh ?. in các biểu thức. <btN1>] [STYLE <btC2>]]] [COLOR SCHEME <btN2>] . b. in các biểu thức ngay tại vị trí con trỏ. I . in xong con trỏ ở cuối giá trị của biểu thức sau cùng. ?? cho phép in liên tục trên màn hình hoặc trên trang giấy (nếu SET PRINTER đƣợc bật).in đậm. Trong đó <btC1> là tên phông chữ.foxitsoftware.

Generated by Foxit PDF Creator © Foxit Software http://www. logic. nếu có nhằm xác định vùng hiển thị của ảnh.29 ờng dẫn\tên tệp ả .Khi thực hiện lệnh này FoxPro sẽ in ra màn hình <bthức> (có thể là 1 hay nhiều biểu thức) trên <dòng. giá trị các trƣờng của file CSDL hiện thời. <btN>] [STYLE <btC2>]] dùng để định dạng phông chữ và cỡ chữ in ra. cộ [SIZE btN1. giá trị một hàm. a = 10 b = 25 @ 5. Nếu không có từ khoá [SIZE btN1. <btN1> là số hàng của vùng.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Từ khoá [CENTER] dùng để cân ảnh vào chính giữa vùng xác định bởi SIZE. từ khoá [STRETCH] để co giãn ảnh theo chiều .foxitsoftware.VnTime'.com For evaluation only. <btN2> là số cột của vùng. phông chữ in ra theo phông chữ của màn hình chính. nếu ảnh rộng hơn vùng thì sẽ bị cắt bớt. các <bthức> có thể là biểu thức số. cột). Từ khoá [COLOR SCHEME <btN2>] dùng để định dạng màu của <bthức> đƣa ra (Nhận giá trị từ Ví dụ. Tƣơng tự lệnh ?|?? từ khoá [FONT <btC1> [. btN2] thì ảnh hiện theo đúng kích thƣớc gốc của nó. từ khoá [ISOMETRIC] để ảnh co giản vừa vùng xác định bởi SIZE nhƣng vẫn giữ nguyên tỷ lệ ngang dọc. Các biểu thức trong danh sách có thể khác loại. cột> đã định.7 SAY a font '. btN2] [CENTER] [ISOMETRIC] [STRETCH] Ảnh sẽ hiện ở phía dƣới và bên phải toạ độ (dòng.20 style 'I' color scheme 16 Để in một bức ảnh lên màn hình ta dùng lệnh @ <dòng.

xếp loại của các sinh viên trong file CSDL DIEM. ếu trƣờng dài hơn chiều rộng màn hình thì bị ngắt xuống dòng dƣới. mỗi bản ghi là một dòng. Ví dụ. Riêng đối với trƣờng Memo chỉ khi tên trƣờng đƣợc liệt kê trong <Danh sách trƣờng> thì nội dung của nó mới đƣợc hiển thị. Đƣa ra họ tên.xloai ạm vi>] : xác định phạm vi các bản ghi đƣợc liệt kê. Lệnh DISPLAY. ếu số dòng dài hơn một trang màn hình: đối với lệnh LIST thì màn hình sẽ trôi. clear @1.”.bmp' bitmap c. mỗi trƣờng là một cột (tên cột là tên trƣờng). đối với lệnh DISPLAY cho phép xem từng trang màn hình. Đƣa ra tất cả các bản ghi của file CSDL DIEM. Ví dụ.2 say 'F:\games\compaq.nsinh. ờng>]: chỉ hiển trị những trƣờng liệt kê trong <danh sách trƣờng>. nếu không có <phạm vi> thì coi nhƣ là ALL.dtb. ngày sinh. LIST Cú pháp DISPLAY|LIST [[Fields] <danh sách trƣờng>] [<phạm vi>] [FOR <btL1>] [WHILE <btL2>] [OFF][To PRINT] [To file <tên file>] Lệnh trên sẽ liệt kê các bản ghi của tệp CSDL hiện tại lên màn hình. điểm trung bình.DBF .ngang dọc cho ảnh vừa khích với vùng xác định bởi SIZE (ảnh có thể bị méo). Trong điều khoản này có thể bỏ qua từ khoá [Fiels] mà chỉ cần liệt kê tên trƣờng cách nhau bởi dấu “. Ví dụ.DBF display field hoten.

Ví dụ.giả sử ta đƣa các bản ghi từ 2 đến 4 Đƣa ra các bản ghi từ bản ghi thứ n đến hết file-giả sử từ bản ghi thứ 3 ỉ những bản ghi thoả mãn <btL1> mới đƣợc liệt kê (xem xét từ bản ghi đầu đến bản ghi cuối).Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Đƣa ra bản ghi thứ n .giả sử ta muốn đƣa ra bản ghi thứ 5 . Đƣa ra các bản ghi của file CSDL DIEM.DBF có điểm trung bình nhỏ hơn 5.30 Đƣa ra n bản ghi liên tục . .com For evaluation only.foxitsoftware. Đƣa ra các bản ghi của file CSDL DIEM.DBF có họ tên là Nguyễn thị Thanh.Generated by Foxit PDF Creator © Foxit Software http://www.

display all for Đƣa ra các bản ghi của file CSDL DIEM.com For evaluation only.DBF mà sinh ngày 12 ất phát từ một bản ghi thoả mãn <btL2> việc liệt kê .DBF mà sinh tháng 10 .DBF mà sinh năm 1975 Generated by Foxit PDF Creator © Foxit Software http://www.31 dis Đƣa ra các bản ghi của file CSDL DIEM.DBF mà có ngày sinh là 13/10/78.Đƣa ra các bản ghi của file CSDL DIEM.DBF là sinh viên nam. Đƣa ra các bản ghi của file CSDL DIEM.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Đƣa ra các bản ghi của file CSDL DIEM.foxitsoftware.

Cú pháp EDIT | CHANGE [Fields <danh sách trƣờng>] [<phạm vi>] [FOR <btL1>] [WHILE <btL2>] [Freeze <tên trƣờng>] [LEdit] [REdit] [LPartition] [NoAppend] [NoDelete] [NoEdit] [Partition <btN>] [Title <btC>] Khi thực hiện lệnh EDIT. Generated by Foxit PDF Creator © Foxit Software http://www. trong đó có một bản ghi hiện tại đƣợc nổi bật trên màu nền khác và có một con trỏ ở đây để ngƣời dùng có thể dịch chuyển đến vị trí dữ liệu cần sửa đổi. ện số hiệu bản ghi ở cột đầu khi liệt kê.32 . ết quả ra máy in. III. sau đó thực hiện lệnh EDIT đƣa các bản ghi ra màn hình để sửa chữa. đầu tiên hãy mở file CSDL tại vùng làm việc hiện thời.sẽ dừng khi lần đầu tiên gặp phải bản ghi không thoả mãn <btL2>.com For evaluation only. tiêu đề mặc định của nó chính là tên file CSDL. để . ết quả ra file văn bản. trên màn hình sẽ hiển thị cửa sổ soạn thảo EDIT. Trên cửa sổ chỉ hiển thị nội dung của 2 bản ghi. Cửa sổ này chứa nội dung của các bản ghi mà chúng ta đã nhập.5.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Cửa sổ EDIT này chính là một cửa sổ mà FoxPro tạo ra. Sửa dữ liệu trên bản ghi Để sửa đổi thông tin của một file CSDL.foxitsoftware.

hoặc mở rộng cửa sổ. xếp loại của các sinh viên trong file CSDL DIEM.” ờng>]: chỉ hiển trị những trƣờng liệt kê trong <danh sách trƣờng> để có thể sửa chữa. cột.xem nội dung của các bản ghi khác ta phải cuốn cửa sổ lên trên hoặc xuống dƣới. ấu xoá một bản ghi : ấn <CTRL> + <T>. o Đóng cửa sổ EDIT mà không cất những dữ liệu đã thay đổi: <ESC> hoặc <CTRL> + <Q> ạo thêm bản ghi mới ở cuối file: ấn <CTRL> + <N>. ngày sinh. Một số các thao tác chính trong cửa sổ EDIT. ịch chuyển con trỏ: khi muốn sửa đổi dữ liệu của một trƣờng trong một bản ghi nào đó thao tác đầu tiên là phải dịch chuyển con trỏ đến bản ghi (đến trƣờng) mà ta cần sửa. Ví dụ. lúc đó trƣớc tên các trƣờng của bản ghi đó có dấu “. o <PgUp>. o <TAB>. ta có thể vào dữ liệu cho bản ghi này. <SHIFT> + <TAB> : dịch chuyển con trỏ đến trƣờng trƣớc hoặc sau. <PgDn>: dịch chuyển con trỏ đến bản ghi trƣớc / sau. ạn thảo dữ liệu: giống nhƣ soạn thảo thông thƣờng. điểm trung bình. lúc đó con trỏ chuyển đến bản ghi mới chƣa có dữ liệu. Đƣa ra họ tên. ất dữ liệu : o Cất dữ liệu đã thay đổi ra file và đóng cửa sổ EDIT: <CTRL> + <W> hoặc <CTRL> + <END>. ịch chuyển con trỏ theo từng vị trí hàng.DBF để sửa chữa .

Ví dụ. ở đây dùng để soạn thảo nội dung các bản ghi. Generated by Foxit PDF Creator © Foxit Software http://www. nhƣng thay bởi việc hiển thị. nếu không có <phạm vi> thì coi nhƣ là ALL. điểm trung bình. ạo bản ghi mới bằng lệnh EDIT.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ LE <btL2>] : có ý nghĩa tƣơng tự nhƣ trong lệnh DISPLAY | LIST. Chúng ta muốn tiêu đề cửa sổ trên là “Thay doi diem tin hoc” thay bởi “diem” chúng ta thực hiện lệnh sau ỉ hiện thị thông tin bằng lệnh EDIT mà không cho sửa đổi. Ví dụ. Lúc . Đƣa ra họ tên.com For evaluation only.DBF nhƣng chỉ cho phép sửa đổi trên trƣờng điểm tin học. ờng>] : chỉ cho phép sửa đổi dữ liệu trong một trƣờng chỉ ra bởi <tên trƣờng>.foxitsoftware.33 ặt tiêu đề khác cho cửa sổ EDIT (mặc định là tên file CSDL mà ta mở ra để sửa). ngày sinh. ấu xoá bản ghi bằng lệnh EDIT.ạm vi>] : chọn phạm vi thao tác trên một số bản ghi nhất định. use . xếp loại của các sinh viên trong file CSDL DIEM. điểm tin học. Lúc này nếu ta ấn <CTRL> + <N> sẽ không có tác dụng. con dữ liệu trong các trƣờng khác chỉ có thể hiển thị mà không cho sửa đổi.

. đó là cửa sổ bên trái (Left) và cửa sổ bên phải (Right). Ví dụ.6. Ví dụ.com For evaluation only. Thao tác chuyển đổi giữa 2 cửa sổ là <Ctrl> + <H>.T.1 . Xoá bản ghi trong file cơ sở dữ liệu II. III. Ví dụ. .này nếu ta ấn <CTRL> + <T> sẽ không có tác dụng.III. ở 2 cửa sổ EDIT một lúc theo chiều ngang trang màn hình. Đánh dấu xoá (xoá logic) Để đánh dấu xoá các bản ghi trong file CSDL ta sử dụng lệnh DELETE có cú pháp nhƣ sau DELETE [<phạm vi>] [FOR <btL1>] [WHILE <btL2>] Nếu không có điều khoản nào đi kèm thì lệnh chỉ đánh dấu xoá bản ghi hiện tại. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ ở 2 cửa sổ EDIT mặc định cửa sổ khi lệnh EDIT bắt đầu thực hiện là cửa sổ bên phải.6.34 ể hiển thị thông tin trên cửa sổ EDIT dƣới dạng chiều ngang màn hình (mỗi bản ghi là một dòng). Trong trƣờng hợp ta muốn thay đổi khi bắt đầu lệnh EDIT ta thêm vào điều khoản này. Chỉ xem những bản ghi nào chƣa bị đánh dấu xoá list for not delete() set delete on / off (on: bỏ qua bản ghi bị đánh dấu xoá) Các điều khoản có ý nghĩa tƣơng tự nhƣ trong các lệnh khác. Một bản ghi bị đánh dấu xoá thì hàm delete() sẽ trả lại giá trị là . Trong đó <btN> chỉ ra độ rộng cột của cửa sổ bên trái.

com For evaluation only.6. ếu không có điều khoản nào đi kèm thì lệnh PACK có tác dụng với tất cả các bản ghi bị đánh dấu xoá. . Generated by Foxit PDF Creator © Foxit Software http://www. ta có thể khôi phục lại những bản ghi này bằng cách thực hiện lệnh RECALL RECALL [<phạm vi>] [FOR <btL1>] [WHILE <btL2>] Phạm vi ngầm định là bản ghi hiện tại. II.. ỉ tác dụng lên trƣờng MEMO của các bản ghi bị đánh . Ví dụ.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Nếu các bản ghi bị đánh dấu xoá bằng lệnh DELETE mà chƣa bị xoá về mặt vật lý. sau lệnh này các bản ghi không khôi phục lại đƣợc.III.dbf. thực ra về mặt vật lý những bản ghi này vẫn tồn tại trên đĩa..2 . nhƣng ở đầu tên các trƣờng đã bị đánh dấu.dbf. Xoá bản ghi của những sinh viên có điểm trung bình dƣới 5 trong file CSDL diem. chính vì vậy nếu sử dụng những lệnh xem nội dung file CSDL nhƣ EDIT..foxitsoftware. Các bản ghi bị xoá bởi lệnh DELETE ở đây chỉ bị xoá về mặt logic. Xoá vật lý Để xoá bỏ hoàn toàn các bản ghi ra khỏi đĩa về mặt vật lý ta sử dụng lệnh PACK có cú pháp nhƣ sau PACK [MEMO] [DBF] Xoá hẳn những bản ghi đã bị đánh dấu xoá. thì chúng ta vẫn thấy những bản ghi này.35 Khôi phục bản ghi của những sinh viên có điểm trung bình lớn hơn 4 trong file CSDL diem. nhƣng đã bị đánh dấu xoá.Chú ý.

dấu xoá. ỉ tác dụng trên các trƣờng khác ngoài trƣờng MEMO. Việc thực hiện lệnh PACK nhƣ sau ợc giữ nguyên trên đĩa nhƣng đƣợc đổi tên thành *.bak (*.tbk) để lƣu phòng hờ. ạo ra các file *.dbf (*.fpt) có cấu trúc nhƣ file ban đầu. ững bản ghi không bị đánh dấu xoá sang file mới, sau đó nhận thông báo số lƣợng bản ghi đã đƣợc copy sang. Ngoài ra FoxPro còn cung cấp lệnh ZAP để xoá toàn bộ nội dung của file CSDL kể cả các bản ghi có bị đánh dấu xoá hay không bị đánh dấu xoá. Chú ý. Cẩn thận khi sử dụng lệnh ZAP, vì lệnh này sẽ xoá tất cả các bản ghi trong file CSDL hiện tại và không có cách nào để khôi phục lại. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ - 36

pack III.7. Thay thế nội dung của trƣờng dữ liệu Để gán nội dung cho một biến nhớ ta có thể dùng phép gán <tên biến> = <giá trị> hay dùng lệnh store <giá trị> to <danh sách biến>. Nhƣng các cách này chỉ đƣợc sử dụng cho biến nhớ. Đối với biến trƣờng để gán giá trị cho nó ngoài việc nhập ra ta còn có thể dùng lệnh REPLACE có cú pháp nhƣ sau. REPLACE <tên trƣờng 1> WITH <biểu thức 1> [ADDITIVE] [, <tên trƣờng 2> WITH <biểu thức 2> [ADDITIVE]]... [<phạm vi>] [FOR <btL1>] [WHILE <btL2>]

Phạm vi ngầm định của lệnh là bản ghi hiện tại, kiểu biểu thức phải phù hợp với kiểu trƣờng. ờng 1> WITH <biểu thức 1> : tên trƣờng cần thay thế mà giá trị của <biểu thức 1> sẽ đƣợc gán cho nó. ối thêm dữ liệu vào một trƣờng có kiểu MEMO. Các điều khoản khác có ý nghĩa tƣơng tự nhƣ trong các lệnh khác. Ví dụ. Tính điểm trung bình, xếp loại học lực và phân học bổng cho file CSDL diem.dbf với giá trị mọi trƣờng độc lập là đầy đủ.

replace all dtb with (tin*6 + anh*4 + triet*3 + iif(gtinh,xkep,xlech)*2)/(6+4+3+2) Trƣờng xloai đƣợc tính theo quy tắc sau ạt

ỏi ất sắc replace all xloai with “xuat sac” for dtb>=9 replace all xloai with “gioi” for dtb>=8 and dtb<9 replace all xloai with “kha” for dtb>=7 and dtb<8 replace all xloai with “TB” for dtb>=5 and dtb<7 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ replace all xloai with “khong dat” for dtb<5 Trƣờng hbong đƣợc tính theo quy tắc sau: xuất sắc 200000, giỏi 150000, khá 100000 còn lại bằng 0. replace all hbong with 200000 for xloai = “xuat sac” - 37

replace all hbong with 150000 for xloai = “gioi” replace all hbong with 100000 for xloai = “kha” replace all hbong with 0 for xloai = “TB” or xloai = “khong dat” Chú ý. Khi giá trị của một biểu thức số dài hơn giá trị của trƣờng kiểu số cần thay thế thì FoxPro sẽ thực hiện nhƣ sau ầu tiên trƣớc khi thay thế, giá trị thay thế đƣợc làm tròn, nhƣ vậy một phần thập phân sẽ đƣợc cắt đi. ếu độ dài sau khi làm tròn vẫn lớn quá, thì sẽ biểu diễn số dƣới dạng khoa học. ếu vẫn chƣa đủ chỗ cất giữ thì toàn bộ trƣờng đó sẽ đƣợc thay thế bởi các dấu “*” III.8. Lệnh Browse Lệnh Browse là một lệnh rất mạnh của FoxPro, dùng để nhập thêm, đánh dấu xoá, khôi phục, xem và sửa dữ liệu. Cú pháp của lệnh nhƣ sau BROWSE <phạm vi> [FIELDS <ds trƣờng>] [FOR <btL>] [FONT <btC1>, <btN1> STYLE <btC2>] [TITLE <btC3>] [WIDTH <btN2>] [LPARTITION] [PARTITION <btN3>] [LEDIT] [REDIT] [LOCK <btN4>] [FREEZE <tên trƣờng>] [NOEDIT | NOMODIFY] [NOAPPEND] [NODELETE] Khi thực hiện lệnh BROWSE, trên màn hình xuất hiện cửa sổ BROWSE chứa nội dung của các bản ghi, mỗi bản ghi chiếm một dòng màn hình, tên trƣờng ngầm định là tên cột. Lệnh BROWSE dùng tiện lợi cả trong chế độ hội thoại lẫn trong chƣơng trình. Để cửa sổ BROWSE chiếm toàn màn hình, ấn Ctrl + F10. Các thao tác chính trong cửa sổ BROWSE tƣơng tự trong cửa sổ EDIT. ịch chuyển con trỏ:

H. Mục tiêu chính của tham số là giúp ngƣời dùng tạo giao diện rõ ràng. các trƣờng viết cách nhau bởi dấu phẩy. o Đóng cửa sổ EDIT mà không cất những dữ liệu đã thay đổi: <ESC> hoặc <CTRL> + <Q> ạo thêm bản ghi mới ở cuối file: ấn <CTRL> + <N>. Đối với một trƣờng có thể dùng tham số R.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh o <TAB> (chiều tiến). N. o <PgUp>. P. ta có thể vào dữ liệu cho bản ghi này.ển hộp sáng lên xuống từng dòng. W. E. B. <PgDn>: di chuyển hộp sáng từng trang màn hình. <SHIFT> + <TAB> (chiều lùi) : di chuyển giữa các trƣờng. ạn thảo dữ liệu: giống nhƣ soạn thảo thông thƣờng. Ví dụ . Riêng đối với trƣờng tính toán chỉ dùng tham số H và P.(read only) dữ liệu chỉ hiện lên màn hình không cho sửa. lúc đó con trỏ chuyển đến bản ghi mới chƣa có dữ liệu. ất dữ liệu : o Cất dữ liệu đã thay đổi ra file và đóng cửa sổ EDIT: <CTRL> + <W> hoặc <CTRL> + <END>. lúc đó trƣớc tên các trƣờng của bản ghi đó có dấu “. V.foxitsoftware.” ờng>]: Hạn chế chỉ các trƣờng có trong danh sách mới hiện lên màn hình.38 . bảo đảm các ràng buộc của dữ liệu.com For evaluation only. ấu xoá một bản ghi : ấn <CTRL> + <T>. F. Generated by Foxit PDF Creator © Foxit Software http://www. Giải thích các tham số trƣờng> : R .

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh ờng> : N: cho phép thể hiện độ rộng của trƣờng trên màn hình theo N cột. ký tự trắng hoặc +. thoc:V=between(thoc.0.dtb :5 ờng> : P = <chuỗi khuôn dạng> . giá trị chữ số cho kiểu C A : chỉ cho nhập chữ cái # : chỉ cho nhập giá trị là số. N) N : chỉ cho phép đánh vào dữ liệu dạng ký tự và dạng số X : nhận bất kỳ ký tự nào . F. ểm tra giá trị trƣờng ngay cả khi nó không thay đổi.com For evaluation only.10):F:E=‟Du lieu sai‟ browse fields masv. browse fields masv :7.chuỗi khuôn dạng quy định dạng dữ liệu nhập vào.hoten. ! : các dữ liệu kiểu ký tự sẽ chuyển thành chữ hoa 9 : nhận giá trị dạng số và dấu (-).foxitsoftware. : vị trí dấu chấm thập phân . : vị trí dấu phẩy ngàn. Y. browse fields masv. .(veify) kiểm tra giá trị nhập vào khi sửa đổi hay thêm mới cho trƣờng này có thoả mãn <btL1> hay không. tỉ L : chỉ cho nhập giá trị logic (T. Ví dụ. ẽ là <btC1> thay vì Ivalid Data (ngầm định) Ví dụ.hoten :27.39 .nsinh:V=nsinh<date() :F:E=‟Du lieu nhap sai‟ Generated by Foxit PDF Creator © Foxit Software http://www. dƣơng (+) cho dữ liệu kiểu N.ờng> : V = btL1 [:F] [:E = btC1] .hoten. triệu.

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ browse fields hoten:R. ố :E sẽ đƣa ra thông báo lỗi theo ý ngƣời dùng. ngày). n. xkep:W=gtinh. ký tự. ộn 2 bên ộn bên trái ộn bên phải ờng> :W=<btL> (when): chi cho truy nhập vào trƣờng khi <btL> đúng. Ví dụ. mặc định là dấu cách. họ tên là chữ hoa browse fields m¸v:p=”AA99999”. browse fields hoten:h=padc(”Ho va ten”. Hai biểu thức này phải cùng kiểu (số.nsinh:R. [<ký tự đệm>]) : độn vào <btC> cho đủ độ rộng n ký tự độ (nếu có). mặc định . thoc:p=”##”:b=0.40 .nsinh:R. 5 ký tự sau là số. ố :F và :E chỉ dùng với :B và :V.hoten:p=”@!” ờng> :B = <cận dƣới>. Ví dụ.com For evaluation only. mã sinh viên chỉ nhận 2 ký tự đầu là chữ.Y : chỉ cho phép nhận Y y N n Ví dụ.xlech:W=not gtinh Chú ý. Ví dụ. Nhập điểm xà lệch và xà kép Generated by Foxit PDF Creator © Foxit Software http://www. browse fields hoten:R.foxitsoftware. <cận trên>: quy định cận dƣới và cận trên cho giá trị của trƣờng.10 ờng> :H = <btC> (heading): thay đổi tiêu đề mặc định của tên trƣờng thành tiêu đề <btC>.27) pad<c/l/r>(<btC>.

ực hiện cuốn ngang thì <btN4> trƣờng đầu tiên không bị khuất trái.dtb for dtb<4 ịnh tên phông chữ <btC1>. Ví dụ. Các tham số khác có ý nghĩa nhƣ trong lệnh EDIT. Ví dụ nếu dùng WIDTH 15 thì khi nhập dữ liệu cho trƣờng rộng quá 15 ký tự. Sắp xếp vật lý Sắp xếp vật lý là công việc từ file gốc tiến hành sắp xếp bản ghi theo một tiêu chuẩn nào đó. Nếu muốn khu vực trái hiển thị dạng EDIT thì dùng LEDIT.VnTime‟. Ví dụ.1. kích cỡ <btN1> và khuôn dạng <btC2> cho màn hình browse. Đƣa ra danh sách những sinh viên có điểm trung bình dƣới 4. SẮP XẾP VÀ TÌM KIẾM DỮ LIỆU IV. trong file dữ liệu mới số lƣợng các bản ghi là không thay đổi (nếu không có điều kiện hạn chế).nsinh:R. các ký tự bên trái của trƣờng sẽ lùi dần để ta nhập.thông báo lỗi này bằng tiếng anh. ịnh chiều rộng tối đa để hiển thị một trƣờng trên màn hình là <btN2>. 13 style „BI‟ ề cho cửa sổ BROWSE thay vì là tiêu đề ngầm định. Điều kiện . đặc biệt là khi sử dụng tiếng việt. thoc:p=”##”:b=0.nsinh. ả hai khu vực của lệnh BROWSE đều hiện dạng BROWSE (mặc định). <btN4> là số tự nhiên. browse fields hoten:R. browse font „. nếu muốn khu vực phải hiển thị dạng EDIT thì dùng REDIT. IV.10:e=”diem tu 0 den 10” L1>]: chỉ hiển thị các bản ghi thoả mãn <btL1>. Các bản ghi sau khi sắp xếp đƣợc ghi lại trên đĩa trong một file dữ liệu mới theo trật tự đã sắp xếp. browse fields hoten. Nhƣ vậy sau khi sắp xếp. Ví dụ.

Ví dụ.] [phạm vi] [FOR <btL1>] [WHILE <btL2>] [FIELDS <danh sách trƣờng>] Sắp xếp các bản ghi theo các trƣờng đƣợc chỉ định sau ON và ghi ra <tên file dữ liệu mới> (các trƣờng ở đầu ƣu tiên xếp trƣớc).0 trở lên và các trƣờng gồm masv. ều kiện hạn chế các bản ghi tham gia sắp xếp. dtb.hoten.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ để sắp xếp vật lý thực hiện là dung lƣợng đĩa còn trống phải lớn hơn ít nhất 3 lần file dữ liệu cần sắp xếp. Tạo một file mới đã đƣợc sắp xếp theo thứ tự giảm dần của dtb. /DC.nsinh. ắp xếp theo thứ tự giảm dần. trong đó chỉ có những ngƣời từ 5. Sắp xếp hoten.com For evaluation only. ếu có 2 chỉ tiêu cùng một trƣờng ta có thể viết /AC. Cú pháp SORT TO <tên file dữ liệu mới> ON <trƣờng 1> [/A] [/C] [/D] [..sắp xếp không phân biệt chữ hoa chữ thƣờng. cùng hoten theo ngày sinh ít tuổi ở trên sort to theoho on hoten/C. sort to diemdat on dtb/D all for dtb>5 masv. ờng>] : Chỉ có các trƣờng đƣợc chỉ định trong <danh sách trƣờng> mới đƣợc ghi vào file dữ liệu mới. nsinh. Ví dụ.41 ..Generated by Foxit PDF Creator © Foxit Software http://www. Các chỉ tiêu sắp xếp ắp xếp theo thứ tự tăng dần (ngầm định).dtb . ối với kiểu C . <trƣờng 2> [/A] [/C] [/D]. hoten. nsinh ạm vi] : chỉ các bản ghi nằm trong <phạm vi> mới tham gia sắp xếp.foxitsoftware.

tức là khoá có chứa biến nhớ và hàm.2.Chú ý.dbf gồm các bản ghi Record# hodem 1 2 3 4 5 ten nsinh 20/07/77 . Lƣu trữ giá trị của việc sắp xếp 2. nếu cập nhật thêm dữ liệu thì phải sắp xếp lại.foxitsoftware. ệnh SORT chỉ dùng khoá sắp xếp là một trƣờng. Ví dụ.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Nhận xét ợc điểm: tốn bộ nhớ vì mỗi tiêu chuẩn sắp xếp sinh ra một file.42 Nguyen Hoai Anh Pham Kim Phuong 25/04/78 Nguyen Thanh Huyen 05/12/77 Nguyen Bich Ngoc Phan Quang Binh 05/12/78 27/10/79 . ết quả sau khi lệnh thực hiện ở trạng thái đóng.com For evaluation only. Giả sử có tệp hssv. Việc sắp xếp do một file khác điều khiển gọi là file chỉ số (Index). muốn xem lại phải mở ra. Sắp xếp logic Sắp xếp dữ liệu chỉ đƣợc tiến hành trong bộ nhớ trong còn file dữ liệu không thay đổi. File chỉ số này có cấu trúc đặc biệt mà ta không nhìn thấy đƣợc nhƣng ta có thể hình dung nó nhƣ là một file dữ liệu chỉ có 2 trƣờng 1. IV. không dùng một khoá là biểu thức tổng quát. ểm: nhận đƣợc 1 file đã đƣợc sắp xếp mà các thao tác trên file không cần quan tâm. Generated by Foxit PDF Creator © Foxit Software http://www. Lƣu trữ số hiệu các bản ghi ở file dữ liệu có cùng giá trị với giá trị khoá sắp xếp.

foxitsoftware.43 theo thứ tự giảm dần ta phải lập <biểu thức khoá sắp xếp> là nghịch biến theo giá trị đó. Ƣu điểm của file index là có kích thƣớc nhỏ dùng để tra cứu hoặc tìm kiếm rất nhanh đối với file CSDL gốc. Tạo file Index Cú pháp Generated by Foxit PDF Creator © Foxit Software http://www.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ INDEX ON <biểu thức khoá sắp xếp> TO <tên file.IDX> [FOR <btL>] ểu thức khoá sắp xếp> : là tên trƣờng hay một biểu thức hợp lệ trong FoxPro.1 . Sắp xếp logic theo dtb theo chiều giảm dần use diem . Tạo xong. Ví dụ.2.IV.com For evaluation only.IDX.idx) sẽ gồm hai cột Giá trị khóa Anh Binh Huyen Ngoc Phuong 1 5 3 4 2 Recno Khi ta cần tìm kiếm một ngƣời có tên là “Binh”. máy sẽ tìm ở cột thứ nhất của tệp chỉ số đến giá trị khoá là “Binh”. file chỉ số đƣợc mở.Nếu sắp xếp theo thứ tự abc của trƣờng tên thì tệp chỉ số (ví dụ là Csten. con trỏ bản ghi nằm ở bản ghi có chỉ số khoá thấp nhất. II. ạo file chỉ số . dóng sang ngang ta đƣợc tìm đƣợc đó là bản ghi thứ 5 trong file dữ liệu. Việc sắp xếp luôn theo thứ tự tăng dần củ ốn sắp xếp .

”A”. Nếu ta tạo ra nhiều file chỉ số cho cùng 1 file dữ liệu thì file chỉ số đƣợc tạo ra cuối cùng sẽ điều khiển việc sắp xếp dữ liệu trên file CSDL đó.foxitsoftware.”B”) + hoten + dtoc(nsinh) to idgtinh display all masv. Generated by Foxit PDF Creator © Foxit Software http://www. Ví dụ.nsinh. cùng hoten theo nsinh set date french use diem index on iif(gtinh.nsinh.hoten.nsinh.44 . Sắp xếp logic theo gtinh.hoten. cùng hoten theo nsinh set date french use diem index on hoten + dtoc(nsinh) to idnsinh display all masv.hoten.index on -dtb to iddiem display all masv. ta đổi khoá này ra cùng giá trị xâu (bằng hàm dtoc()) rồi ghép chúng lại theo thứ tự ƣu tiên từ trái sang phải thành biểu thức khoá. Sắp xếp logic theo dtb theo chiều giảm dần đối với các sinh viên có điểm trung bình từ 5 trở lên use diem index on -dtb to iddiem for dtb > 5 display all masv.com For evaluation only.dtb ếu muốn sắp xếp theo nhiều chỉ tiêu với các mức ƣu tiên khác nhau.nsinh.dtb Ví dụ.hoten. cùng gtinh theo hoten.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ .dtb ỉ số sẽ điều khiển sắp xếp dữ liệu ngay khi nó đƣợc tạo ra.dtb ỉ các bản ghi thoả mãn biểu thức logic mới đƣợc sắp xếp Ví dụ. Sắp xếp logic theo hoten.

iddiem.idgtinh Ví dụ. mở các file chỉ số đồng thời với file CSDL. idnsinh.idgtinh order idnsinh hoặc set index to idnsinh.II. o Nếu dùng điều khoản ORDER 0 thì các file chỉ số đƣợc mở không có file nào là file chỉ số chủ. Ví dụ.idgtinh ở file chỉ số đồng thời với việc mở file CSDL . nếu không có điều khoản [ORDER <btN> | <tên file chỉ số chủ>] thì mặc định file chỉ số đầu tiên trong <dsách file chỉ số> sẽ là file chỉ số chủ.idnsinh.iddiem. ả sử file CSDL đã đƣợc mở. idnsinh.idhoten. set date french use diem set index to idhoten. để mở các file chỉ số ta dùng lệnh SET INDEX TO <dsách file chỉ số> [ORDER <btN> | <tên file chỉ số chủ>] Sau lệnh này tất cả các file chỉ số trong <dsách file chỉ số> đều đƣợc mở.iddiem.idgtinh order 2 hoặc set index to idhoten.IV.2 . o [ORDER <btN> | <tên file chỉ số chủ>] : file chỉ số có thứ tự là <btN> (hoặc <tên file chỉ số chủ>) trong <dsách file chỉ số> vừa mở sẽ là file chỉ số chủ.idnsinh. Mở file chỉ số idhoten. Mở file chỉ số idhoten. o <dsách file chỉ số> : tên các file chỉ số của file CSDL cần mở. idgtinh của file CSDL diem set date french use diem set index to idhoten.iddiem.iddiem. Thao tác với file Index a. idgtinh của file CSDL diem trong đó file idnsinh sẽ là file chỉ số chủ. iddiem.idnsinh. Mở file chỉ số Có 2 cách mở file chỉ số: mở file CSDL rồi sau đó mở file chỉ số.2.

Mở file chỉ số idhoten. Chuyển đổi file chỉ số chủ Khi có nhiều file chỉ số đang hoạt động ta có thể thay đổi file chỉ số chủ bằng lệnh SET ORDER TO <btN> | <tên file chỉ số> Sau lệnh này file chỉ số có thứ tự là <btN> theo thứ tự vừa mở (hoặc <tên file chỉ số> có trong các file chỉ số vừa mở) sẽ là file chỉ số chủ. ập nhật file dữ liệu thì file chỉ số chỉ đƣợc cập nhật khi nó đƣợc mở.idgtinh b.USE <tên file CSDL> INDEX TO <dsách file chỉ số> [ORDER <btN> | <tên file chỉ số chủ>] Các điều khoản trong lệnh này giống nhƣ với cách 1. iddiem. idnsinh. sau đó thực hiện lệnh . ệnh SET ORDER TO 0 sẽ đƣa file dữ liệu về thứ tự vật lý ban đầu trong khi file chỉ số vẫn đƣợc mở.iddiem.idnsinh.45 . Chú ý ỉ số sẽ bị đóng nếu file CSDL của nó bị đóng. c.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh set date french use diem index to idhoten. Ví dụ. ở file chỉ số bằng lệnh đã biết. Đóng file chỉ số Để đóng tất cả các file chỉ số đang mở đối với CSDL hiện đang sử dụng ta dùng lệnh SET INDEX TO d. Nên dùng cách này để cập nhật dữ liệu. idgtinh của file CSDL diem Generated by Foxit PDF Creator © Foxit Software http://www. ập nhật file dữ liệu mà quên chƣa mở file chỉ số. để chỉ số hoá lại cho file chỉ số ta có thể thực hiện theo 2 cách sau ực hiện lại lệnh sắp xếp.foxitsoftware.com For evaluation only.

ử dụng ị trí thứ n xuất hiện xâu c1 trong xâu c2. Lệnh này cập nhật tình trạng mới nhất của file CSDL ều file chỉ số đƣợc mở. ếu mở đồng thời danh sách file chỉ số thì file chỉ số đứng đầu trong danh sách quyết định việc sắp xếp. rat(“ ”.46 vitri+1) -1) index on substr(allt(hoten). mỗi từ cách nhau bởi 1 dấu cách).3. ta xét các trƣờng hợp sau ếu mở lần lƣợt từng file chỉ số thì file chỉ số đƣợc mở cuối cùng quyết định việc sắp xếp còn các file trƣớc đóng lạ ở một file chỉ số mới cũng sẽ bao hàm việc đóng các file chỉ số đã mở. Với giả thiết trƣờng hoten trong file CSDL đã đƣợc chuẩn hoá (các chữ cái đầu từ viết hoa còn các chữ cái khác viết thƣờng. Tìm kiếm tuần tự . rat(“ ”.allt(hoten))+1) + left(allt(hoten). ấy n ký tự của xâu s kể từ ký tự thứ i. ấy n ký tự bên trái của xâu s.REINDEX. nếu trùng tên sắp theo hodem.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ ập: Thực hiện sắp xếp logic trƣờng hoten theo nguyên tắc: sắp xếp theo tên.com For evaluation only.allt(hoten))-1) to idten IV. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware. ải .

hàm FOUNT() có giá trị . Ví dụ. Để tìm kiếm trực tiếp dữ liệu cần đƣợc sắp xếp logic và điều kiện tìm chỉ đƣợc thiết lập trên khoá sắp xếp.T.4. Để xem nội dung của bản ghi vừa tìm thấy ta dùng lệnh DISPLAY. hàm RECNO() cho số hiệu bản ghi vừa tìm thấy.com For evaluation only. Nếu không tìm thấy hàm FOUND() cho giá trị .foxitsoftware. Nếu tìm thấy. Tìm trong file diem..Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh display Nhận xét.. Cú pháp LOCATE <phạm vi> FOR <btL> Lệnh này định vị con trỏ bản ghi vào bản ghi đầu tiên (theo thứ tự trên xuống) thuộc <phạm vi> thoả mãn <btL>. ợc điểm: tốc độ chậm. IV.Tìm kiếm tuần tự là công việc khi ta tìm kiếm dữ liệu theo một điều kiện nào đó thì việc tìm kiếm sẽ tiến hành duyệt bản ghi từ trên xuống. hàm EOF() cho giá trị .dbf ngƣời có mã sinh viên là “TN00036” use diem locate for “TN00036” Generated by Foxit PDF Creator © Foxit Software http://www. ểm: cho phép tìm thấy tất cả các bản ghi mà điều kiện đúng.47 . Cú pháp . Nếu không có <phạm vi> thì lệnh LOCATE sẽ tìm kiếm trên tất cả các bản ghi. Để tìm tiếp các bản ghi mà <btL> đúng ta sử dụng lệnh CONTINUE.F. Tìm kiếm trực tiếp Việc tìm kiếm sẽ đƣợc tiến hành nhanh hơn nếu ta sắp xếp dữ liệu. ới cách tìm kiếm này dữ liệu trong file không cần đƣợc sắp xếp. con trỏ bản ghi sẽ dừng lại ở bản ghi đầu tiên mà điều kiện đúng.T. nếu không có bản ghi nào nhƣ vậy trong file thì con trỏ bản ghi nằm ở điểm cuối file.

Nhận xét. ới cách tìm kiếm này dữ liệu trong file cần phải đƣợc sắp xếp. ệnh lọc này mất tác dụng khi gặp một trong các lệnh sau Generated by Foxit PDF Creator © Foxit Software http://www. Trong chế độ chƣơng trình bộ lọc không tác động lên file dữ liệu ngay nếu nhƣ sau đó không có lệnh liên quan . Sau lệnh này chỉ có các bản ghi thoả mãn <btL> mới đƣợc tham gia vào quá trình xử lý. <giá trị của khoá sắp xếp> có thể nhận các kiểu C.T.SEEK <giá trị của khoá sắp xếp> Lệnh này sẽ định vị con trỏ bản ghi vào bản ghi đầu tiên có giá trị khoá trùng với giá trị của <giá trị của khoá sắp xếp>. Đặt lọc các bản ghi Cú pháp SET FILTER TO <btL> Lệnh này tạo một lọc trên CSDL đang mở. ợc điểm: chỉ thấy bản ghi đầu tiên mà giá trị khoá trùng với <giá trị của khoá sắp xếp> trong bản ghi.com For evaluation only. ểm: tốc độ nhanh. TÍNH TOÁN VÀ THỐNG KÊ DỮ LIỆU V.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ o Lệnh đặt một lọc khác thay thế. o Lệnh huỷ đặt lọc: SET FILTER TO o Lệnh đóng file CSDL: USE ế độ hội thoại sau khi lệnh lọc đƣợc thực hiện nó tác dụng lên file dữ liệu ngay. N. Nếu không tìm thấy hàm FOUND() cho giá trị . Chú ý.48 . L Nếu tìm thấy hàm FOUND() cho giá trị .foxitsoftware. D. V.1.F.

Đặt lọc cho file CSDL diem để chỉ xử lý trên các bản ghi là sinh viên nam. hay sử dụng trong chƣơng trình in. Generated by Foxit PDF Creator © Foxit Software http://www. Muốn hạn chế số trƣờng làm việc ta dùng lệnh SET FIELDS TO <dsách trƣờng> Tất cả các lệnh thực hiện sau lệnh này chỉ làm việc với các trƣờng có trong <ds trƣờng>. Chú ý.2. Đặt lọc các trƣờng Giả sử có một file CSDL đang mở và ta làm việc với tất cả các trƣờng.com For evaluation only. ọc sẽ làm liên tục hoá các bản ghi. use diem set filter to gtinh = . ệnh lọc không làm thay đổi con trỏ bản ghi liền sau đó.đến con trỏ bản ghi. display all Ví dụ.T. Ví dụ. Đặt lọc cho file CSDL diem để chỉ xử lý trên các bản ghi có dtb > 5 và thoc < 4.Bài giảng Hệ quản trị CSDL Fox . use diem set filter to (dtb > 5) and (thoc < 4) display all V. Sau khi đặt lọc. ta có thể tắt hoặc bật chế độ đặt lọc các trƣờng nhờ lệnh SET FIELDS OFF hay SET FIELDS ON Khi đóng file CSDL thì lọc cũng mất. do đó ta thƣờng phải điều chỉnh lại con trỏ bản ghi bằng lệnh GO TOP.foxitsoftware.

Đếm số bản ghi (Count) Cú pháp COUNT [<phạm vi>] [FOR <btL1>] [WHILE <btL2>] [TO <tên biến>] Lệnh này đếm số bản ghi thuộc <phạm vi> thoả mãn điều kiện của <btL1> (hoặc <btL2>).dtb display all V. Nếu không có phần to <tên biến> thì giá trị tính đƣợc sẽ hiện ra màn hình. Nếu <tên biến> chƣa có sẽ sinh ra. Tính % số học sinh nam có trong lớp. Ví dụ. nếu có rồi sẽ in đè lên.4. ệnh SET FIELDS TO ALL trở lại trạng thái sử dụng tất cả các trƣờng.nsinh. Nếu có to <tên biến> giá trị tính đƣợc sẽ đƣợc gán cho <tên biến>. use diem set fields to masv.hoten.49 . Cộng theo cột các biểu thức số (Sum) Cú pháp SUM [<phạm vi>] [<danh sách biểu thức số>] [FOR <btL1>] [WHILE <btL2>] [TO <danh sách biến nhớ>] Lệnh này tính tổng trên các bản ghi thuộc <phạm vi> thoả mãn điều kiện của <btL1> (hoặc <btL2>).3. Ví dụ.Giáo viên: Nguyễ ệnh SET FIELDS TO <dsách trƣờng mới> sẽ bổ sung thêm trƣờng mới vào danh sách trƣờng của lệnh đặt lọc trƣớc. Lệnh COUNT sẽ trả lại số bản ghi có trong file (tƣơng tự lệnh RECCOUNT) nhƣng trong trƣờng hợp này ta nên dùng hàm RECCOUNT(). Phạm vi ngầm định là ALL. use diem count for gtinh to sonam ? sonam/reccount() * 100 V. Phạm vi ngầm định là ALL. .

Tính điểm trung bình cho môn học thoc. Kết quả của việc tính trung bình là hệ quả của 2 phép tính trên. Generated by Foxit PDF Creator © Foxit Software http://www.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Gọi i là số biểu thức đƣợc cộng j là số biến nhớ Nếu i = j: gán tƣơng ứng i > j: gán đến khi hết biến thì dừng.50 . Tính trung bình lƣơng chính của đơn vị 1.com For evaluation only. Phạm vi ngầm định là ALL. use diem sum thoc to diem ? diem/reccount() V. i < j: lỗi cú pháp.5.foxitsoftware. Cú pháp của lệnh này hoàn toàn giống lệnh SUM. Ví dụ.Nếu không có [<danh sách biểu thức số>] thì toàn bộ trƣờng số trong file sẽ đƣợc cộng. use luong average lchinh for donvi = “01” to tb count for donvi = “01” to so1 . Ví dụ. Tính trung bình cộng (Average) Cú pháp AVERAGE [<phạm vi>] [<danh sách biểu thức số>] [FOR <btL1>] [WHILE <btL2>] [TO <danh sách biến nhớ>] Lệnh này lấy trung bình cộng trên các bản ghi theo <danh sách biểu thức số>. Nếu không có phần to <danh sách biến> thì kết quả hiện ra màn hình ngƣợc lại giá trị kết quả đƣợc gán cho biến.

ết quả nhận đƣợc ở trạng thái đóng.com For evaluation only.. Tính tổng bộ phận (Total) Cú pháp TOTAL TO <tên file kết quả> ON <khoá bộ phận> [<phạm vi>] [FIELDS <dsách trƣờng kiểu số>] [FOR <btL1>] [WHILE <btL2>] Generated by Foxit PDF Creator © Foxit Software http://www. muốn dùng thì phải mở. use diem average thoc to dtb V. Ví dụ tính tổng lƣơng chính của từng đơn vị. Nếu có điều khoản <phạm vi> thì chỉ có các bản ghi nằm trong phạm vi mới . Còn nội dung của từng bản ghi sẽ đƣợc lƣu nhƣ sau o Đối với trƣờng khác số thì lƣu nội dung bản ghi đầu tiên nó gặp đối với dữ liệu khoá ở file gốc. File mới tự động sinh ra có ấu trúc của file mới tƣơng tự file CSDL gốc (đối với trƣờng không phải kiểu số thì giống hệt. độ rộng tự động mở rộng).foxitsoftware.6. đối với trƣờng số thì tên và kiểu giống.51 . tính tổng số sinh viên của từng lớp. Kết quả tính đƣợc sẽ đƣa ra một file mới trên đĩa. Tính trung bình cho môn thoc.sum lchinh for donvi = “01” to tong1 ? tong1/so1 Ví dụ. ội dung: nếu <khoá bộ phận> ở file CSDL gốc có n giá trị khác nhau thì file này có n bản ghi..Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh Lệnh này tính tổng các trƣờng kiểu số của các bản ghi có <khoá bộ phận> là nhƣ nhau. o Đối với trƣờng số thì ghi tổng nó cộng đƣợc theo bộ phận..

Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ o Đối với bài toán tính tổng bộ phận thì biến C là khoá bộ phận. 7. 8. Nếu có điều khoản [FIELDS <dsách trƣờng kiểu số>] thì chỉ có các trƣờng kiểu số đƣợc liệt kê trong danh sách trƣờng mới đƣợc tính tổng và đƣa ra tệp kết quả các trƣờng số còn lại lấy giá trị của bản ghi đầu tiên trong <khoá bộ phận>. 9.52 . 6. ếu trƣờng tiếp nhận không đủ rộng để lƣu trữ kết quả thì trƣờng này sẽ bị tràn số. Nếu có điều khoản [FOR <btL1>] [WHILE <btL2>] thì chỉ có các bản ghi thoả mãn biểu thức logic mới đƣợc lệnh TOTAL xét đến. Chú ý ếu dữ liệu không đƣợc sắp xếp theo khoá bộ phận thì lệnh vẫn thực hiện bình thƣờng nhƣng không nhận đƣợc kết quả mong muốn vì lệnh TOTAL đƣợc thực hiện bằng giải thuật ngắt các bậc.đƣợc lệnh TOTAL xét đến. use diem sort to sapxep on thoc for thoc > 4 .foxitsoftware. Công việc trên đƣợc lặp lại cho đến khi duyệt hết giá trị của biến C.com For evaluation only. o ý tƣởng của giải thuật ngắt các bậc: giả sử cần giải quyết bài toán có 2 công việc A và B thì ngƣời ta xây dựng một biến C và nội dung của biến là tập hợp các giá trị nào đấy. Tính tổng số sinh viên đạt điểm 5. khi giá trị của biến C thay đổi thì ngừng công việc A làm công việc B. công việc B là ghi kết quả nhận đƣợc của việc cộng dồn lên file mới. Ví dụ. Công việc A sẽ đƣợc thực hiện lặp đi lặp lại chừng nào giá trị của biến C chƣa thay đổi. công việc A là công việc cộng dồn. 10 trong môn thoc. Generated by Foxit PDF Creator © Foxit Software http://www.

x4.avg(thoc).x6. AVERAGE. use diem calculate cnt(thoc).x8. Thống kê tổng hợp (Calculate) Lệnh CALCULATE là khái quát của các lệnh COUNT.cnt(triet). SUM [<phạm vi>] [<danh sách biểu thức số>] [FOR <btL1>] [WHILE <btL2>] [TO <danh sách biến nhớ>] Trong đó [<danh sách biểu thức số>] là danh sách hàm lấy từ hàm mẫu sau CNT() : đếm số bản ghi SUM(<btN>): tính tổng theo <btN> AVG(<btN>): tính trung bình cộng theo <btN> MAX(<bt>): tính giá trị lớn nhất theo <bt> MIN(<bt>): tính giá trị nhỏ nhất theo <bt> Ví dụ.x10 Generated by Foxit PDF Creator © Foxit Software http://www.x2.avg(xkep) to x1.use sapxep total to baocao on thoc use baocao display all V. Lệnh này cho phép tính nhiều giá trị khác nhau trong một lần duyệt CSDL.avg(xlech). Tính tổng số sinh viên bị điểm dƣới 5 trong từng môn học và tính điểm trung bình cho từng môn học.cnt(tanh).53 .foxitsoftware.x7.avg(triet).x5.x5.x7. LÀM VIỆC VỚI NHIỀU FILE CSDL .x8.com For evaluation only.x4. avg(tanh). SUM.x10 ? x1.x3.cnt(xkep).x3.x9.7.x6. Cú pháp của lệnh này giống nhƣ lệnh SUM.x9.x2.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Ch-¬ng III. cnt(xlech).

BÍ DANH CỦA VÙNG LÀM VIỆC I.dbf ta thực hiện lệnh SELECT 2 Generated by Foxit PDF Creator © Foxit Software http://www. file sinhvien.foxitsoftware.dbf tại vùng 1. Ví dụ.dbf và sinhvien. Vùng làm việc Vùng làm việc là một khu vực của bộ nhớ mà trong khu vực ấy tại một thời điểm ta chỉ có thể mở đƣợc 1 file dữ liệu. Ta đã mở file diem.1. khi ta mở file thứ hai bằng lệnh USE thì file thứ nhất bị đóng lại vì chúng cùng nằm trên một vùng. Nếu không. ột số từ ứng với 225 vùng ột tên nào đó đƣợc gọi là bí danh. Khi ta muốn thao thác với 2 file dữ liệu diem.Bài giảng Hệ quản trị CSDL Fox .dbf tại vùng 2. Để sử dụng một file đã mở ở một vùng nào đó ta phải chuyển đến vùng làm việc đó bằng lệnh SELECT có cú pháp SELECT <số hiệu vùng>|<tên vùng> Ví dụ. VÙNG LÀM VIỆC . Các vùng làm việc còn đƣợc FoxPro tự đặt tên theo quy tắc ột chữ cái từ ối với 10 vùng làm việc đầu tiên và từ ối với 215 vùng còn lại.com For evaluation only. Để làm việc với file sinhvien.I. ta không thể dùng lệnh USE diem USE sinhvien Vì khi ta mở file sinhvien thì file diem sẽ bị đóng bởi vì chúng cùng nằm trên một vùng làm việc.dbf. các vùng làm việc đƣợc đánh số từ ố này đƣợc gọi là số hiệu của vùng. Khi mới khởi động FoxPro ngầm định là vùng 1. FoxPro for Windows cho phép ngƣời dùng mở đồng thời tối đa 225 file CSDL với điều kiện ta phải chỉ định những vùng làm việc khác nhau cho mỗi file CSDL đƣợc mở.

Ta có thể sử dụng lệnh CLOSE ALL để đóng các file CSDL đã đƣợc mở. ể mở lại một file ở nhiều vùng. . nhƣng file mở lại chỉ đƣợc xem chứ không đƣợc truy nhập.Giáo viên: Nguyễ Khi mở 1 file CSDL tại 1 vùng xác định có 2 cách ển đến vùng làm việc đó. Chú ý ếu một file đã đƣợc mở ở một vùng xác định mà muốn mở lại nó ở một vùng khác thì sau lệnh mở file phải có từ khoá AGAIN (nếu không có từ khoá này FoxPro sẽ thông báo lỗi file đã đƣợc dùng). và mở file bình thƣờng SELECT 2 USE sinhvien ở một vùng bất kỳ.54 . Để đóng file CSDL tại một vùng nào đó ển đến vùng làm việc đó và đóng bình thƣờng SELECT 1 USE ở một vùng bất kỳ thực hiện lệnh USE IN <số hiệu vùng>|<tên vùng> USE IN 2 USE IN 1 Lệnh CLOSE DATABASE sẽ đóng tất cả các file CSDL đã đƣợc mở ở các vùng làm việc và chuyển về vùng ngầm định (vùng 1). thực hiện lệnh USE <tên file> IN <số hiệu vùng>|<tên vùng> USE sinhvien IN 2 USE diem IN 1 Cách dùng này để thông báo cho FoxPro mở 2 file CSDL ở hai vùng khác nhau và chúng luôn ở trạng thái sẵn sàng làm việc.

2. Khi mở nhiều file CSDL trên các vùng khác nhau. FoxPro cho phép gán một bí danh (đặt theo quy tắc đặt tên biến) theo quy định ếu mở file bằng những lệnh đã biết thì tên file mặc định là bí danh.ở nhiều file.com For evaluation only. vì không phải mở lại file và rất thuận tiện khi công việc đòi hỏi phải xử lý nhiều file có liên quan đến nhau.foxitsoftware. Bí danh Khi mở 1 file CSDL để tránh cho ngƣời dùng phải nhớ file đó đƣợc mở ở vùng nào. có thể dẫn đến mở file này và đóng nhầm file đã đƣợc mở. I. Khi một vùng đã có bí danh mà muốn chuyển đến vùng đó ta dùng lệnh SELECT <bí danh> Nhận xét ới nhiều file dữ liệu ở các vùng khác nhau ta cần nhớ lệnh SELECT 0. làm tăng tốc độ thực hiện công việc. ệ ửa sổ thể hiện trạng thái của các vùng. <bí danh> đƣợc chọn sẽ làm bí danh cho vùng. định vị con trỏ bản ghi ở vùng này hoàn toàn không ảnh hƣởng đến con trỏ bản ghi ở vùng khác trừ khi chúng liên kết với nhau bởi lệnh SET RELATION. Generated by Foxit PDF Creator © Foxit Software http://www. Việc định vùng làm việ không nhất thiết phải theo một thứ tự nào. nếu ta không nhớ các vùng đã có file đƣợc mở. các lệnh dịch chuyển. Lệnh SELECT 0 cho phép chuyển về vùng có số hiệu thấp nhất mà chƣa có một file nào đƣợc mở. SELECT <bí danh> và khái niệm bí danh nói chung . ếu mở file bằng lệnh USE <tên file CSDL> ALIAS <bí danh>.55 .Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Kết luận Việc sử dụng các vùng làm việc khác nhau.

Tạo cấu trúc và đƣa nội dung sang Các bƣớc thực hiện ở file CSDL đã có ử dụng lệnh COPY có cú pháp COPY TO <tên file mới> [fields <danh sách trƣờng>] .Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh II. thực hiện các thao tác nhƣ bình thƣờng.2. Nếu có điều khoản [fields <danh sách trƣờng>] thì chỉ các trƣờng có trong <danh sách trƣờng> mới đƣợc copy.foxitsoftware. ta có 2 cách o Cách 1: Chuyển đến vùng có file chứa biến trƣờng đó.56 . File CSDL mới đƣợc tạo ở trạng thái đóng hoàn toàn chƣa có dữ liệu. o Tại một vùng bất kỳ ta sử dụng <bí danh>. TẠO MỘT FILE CSDL TỪ MỘT FILE CSDL ĐÃ CÓ II.hoten. nếu muốn sử dụng ta phải dùng các lệnh đã biết để mở.mà không cần biết file đƣợc mở ở vùng nào. ến trƣờng làm việc của file nào chỉ tồn tại trong vùng làm việc của file đó.dbf bằng cách diem. khi ta muốn truy cập đến biến trƣờng của một file CSDL đƣợc mở ở vùng khác. ta có thể truy cập vào biến trƣờng hoten của file diem. Tạo cấu trúc Các bƣớc thực hiện ở file CSDL đã có ử dụng lệnh COPY STRUCTURE có cú pháp COPY STRUCTURE TO <tên file mới> [fields <danh sách trƣờng>] Lệnh COPY STRUCTURE cho phép ngƣời dùng tạo một file CSDL mới có cấu trúc giống file CSDL có sẵn. II. Vì vậy.1.com For evaluation only. Generated by Foxit PDF Creator © Foxit Software http://www.<tên trƣờng> o Ví dụ.

dtb for (thoc<5) or (tanh<5) or (triet<5) ọc không .xlech>=5) ỉ có những sinh viên phải thi lại một môn nào đó use diem copy to thi lai fields masv.hoten.nsinh. nsinh.com For evaluation only.dtb for (dtb>=5) and (thoc>=5) and (tanh>=5) and (triet>=5) and iff(gtinh.[FOR <btL1>] [WHILE <btL2>] Lệnh COPY cho phép ngƣời dùng tạo một file CSDL mới có cấu trúc giống file CSDL có sẵn và các bản ghi của file này cũng sẽ đƣợc copy sang file mới.hoten.dbf lấy ra file CSDL gồm trƣờng masv.nsinh.xlech. nếu muốn sử dụng ta phải dùng các lệnh đã biết để mở file này.xkep.thoc.xkep>=5. File CSDL mới đƣợc tạo ở trạng thái đóng. Ví dụ.foxitsoftware. Nếu có điều khoản [FOR <btL1>] [WHILE <btL2>] thì chỉ các bản ghi thoả mãn điều kiện mới đƣợc copy sang file mới.dtb for dtb >=5 ỉ có những sinh viên đƣợc học bổ môn nào có điểm dƣới 5) use diem copy to hocbong fields masv.hoten. hoten. Từ file diem. dtb với điều kiện ỉ có những sinh viên đạt yêu cầu use diem Generated by Foxit PDF Creator © Foxit Software http://www.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ copy to dat fields masv.triet.tanh.57 .nsinh. Nếu có điều khoản [fields <danh sách trƣờng>] thì chỉ các trƣờng có trong <danh sách trƣờng> mới đƣợc copy.

xkep<5. Nếu dùng máy đơn thì mỗi máy phải có một file cho từng nhân viên nhập nhƣng cuối cùng tiến hành kết nối các file vào làm một.3. ệnh này không dùng từ khoá WHILE ững bản ghi nào bị đánh dấu xoá thì sẽ không đƣợc chép sang .58 . Chú ý.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Nếu có điều khoản [FOR <btL>] thì chỉ những bản ghi ở <file bổ sung> thoả mãn <btL> mới đƣợc sao chép sang <file nguồn>. Nếu không có chỉ thị này thì tất cả các trƣờng cùng có trong hai file (cùng tên và cùng kiểu) sẽ đƣợc chép từ <file bổ sung> sang <file nguồn> Generated by Foxit PDF Creator © Foxit Software http://www. Kết nối 2 file CSDL Giả sử công việc đòi hỏi phải cập nhật 1 khối lƣợng lớn dữ liệu trong thời gian ngắn. Nếu file đã có đƣợc sắp xếp logic thì các bản ghi ở file kết quả cũng đƣợc ghi theo trạng thái sắp xếp. Nếu có điều khoản [fields <danh sách trƣờng>] thì chỉ những trƣờng nằm trong <danh sách trƣờng> mới đƣợc nối bổ sung. Các bƣớc thực hiện ở file CSDL nguồn ử dụng lệnh APPEND FROM có cú pháp APPEND FROM <tên file bổ sung> [fields <danh sách trƣờng>] [FOR <btL>] Lệnh này sẽ nối dữ liệu từ <file bổ sung> vào <file nguồn>.xlech<5) Chú ý.or iff(gtinh.com For evaluation only. các nhân viên sẽ nhập dữ liệu từ các máy khác. Có 2 cách giải quyết ếu hệ thống là mạng máy tính thì chỉ cần có một file dữ liệu ở máy chủ. II.foxitsoftware.

Hãy tạo file D200112 có dữ liệu của file trƣớc n csdau của file này là n cssau của tháng trƣớc. Giả sử file này đã có đầy đủ số liệu. Ngƣợc lại.. file chủ (file cần sửa đổi dữ liệu) phải mở trong vùng làm việc hiện thời và <file sửa đổi> (mang dữ liệu sửa đổi) phải mở Generated by Foxit PDF Creator © Foxit Software . csdau N(9). ổ sung> phải ở trạng thái đóng khi thực hiện lệnh này. Ví dụ. Cú pháp UPDATE ON <khoá> FROM <file sửa đổi> REPLACE <trƣờng 1> WITH <bt1> [.. ta có thể lƣu tất cả các dữ liệu cần cập nhật vào một file và dùng lệnh UPDATE.4. use D200111 copy to D200112 use D200112 replace all csdau with cssau replace all cssau with 0 browse freeze cssau II. [<RANDOM>] Trƣớc khi dùng lệnh UPDATE. Giả sử dữ liệu chỉ số điện của tháng 11/2001 đƣợc lƣu trong file D200111 gồm các trƣờng (makh C(5). Lệnh UPDATE Trong trƣờng hợp cập nhật chỉ sửa đổi dữ liệu các trƣờng của bản ghi mà không thêm bản ghi. thì dữ liệu nhận đƣợc ở <file nguồn> sẽ bị cắt bớt đi nếu là dữ liệu kiểu ký tự hoặc chứa một loạt các dấu * nếu là dữ liệu kiểu số.<file nguồn> nếu lệnh SET DELETE ON đang có hiệu lực. những bản ghi này vẫn đƣợc chép nhƣ thƣờng. <trƣờng 2> WITH <bt2>]. ếu độ rộng của trƣờng trong <file bổ sung> lớn hơn độ rộng trƣờng tƣơng ứng trong <file nguồn>. tenkh C(40). cssau N(9)).

Ví dụ...foxitsoftware.> đã cập nhật. Ta có file CSDL có tên là LUONG. phucap. ệnh UPDATE không có phạm vi và điều kiện. ờng 1>. <trƣờng n> chỉ là tên trƣờng của file chủ (file cần sửa đổi dữ liệu) và không dùng làm tên trƣờng của <file sửa đổi> ểu thức 1>. Và file CSDL TTHUONG. Chú ý..DBF ền thƣởng là giá trị trong file THUONG. sotien quản lý tiền thƣởng tƣơng ứng với các bản ghi của file LUONG. luong. thuclinh.DBF select 0 use thuong alias capnhat index on macb to idthuong select 0 use luong index on macb to idluong update on macb from capnhat..com For evaluation only. . <biểu thức n> có thể là hằng.DBF (thông qua macb).DBF gồm các trƣờng macb. biến hoặc một biểu thức phức tạp và phải cùng kiểu dữ liệu với <trƣờng. <khoá> sắp xếp phải là một trƣờng có trên cả hai file và hai file này phải đƣợc sắp xếp theo trƣờng <khoá>. Nếu < file sửa đổi> không đƣợc sắp xếp theo <khoá> thì ta phải chỉ thị thêm từ khoá RANDOM.http://www. <biểu thức> thƣờng chứa một tên trƣờng hoặc một biểu thức có chứa tên trƣờng của <file sửa đổi>.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ trong vùng làm việc khác.. Trong đó ụ cấp là giá trị trong file LUONG. Ta cần tính số tiền thực lĩnh của từng cán bộ và đƣa vàp cột thuclinh theo công thức: thực lĩnh = lƣơng + phụ cấp + tiền thƣởng.59 .DBF gồm các trƣờng macb..

DBF (hoten C(27). Ta có file CSDL HOSO. ngƣời ta thƣờng tách file này thành 2 file HOSO.DBF (hoten C(27).60 .com For evaluation only. ta mất 20 byte. LIÊN KẾT CÁC FILE CSDL III. Đặt vấn đề Ví dụ.sotien Hoặc select 0 use thuong alias capnhat select 0 use luong index on macb to idluong update on macb from capnhat. replace thuclinh with luong + phucap + capnhat. Và khi tên tỉnh thay đổi thì ta phải thay đổi trong tất cả các file dữ liệu có liên quan. mtinh C(2)) Nguyễn Văn An 01 Trần Thanh Bình 03 Phạm Thanh Hải 17 Trần Viết Thanh 01 .sotien random Generated by Foxit PDF Creator © Foxit Software http://www.replace thuclinh with luong + phucap + capnhat. tinh C(20)) Nguyễn Văn An Hà nội Trần Thanh Bình Hải phòng Phạm Thanh Hải Thái Bình Trần Viết Thanh Hà Nội để lƣu trữ tên tỉnh của 1 bản ghi. Để giải quyết ít nhất 2 bất lợi trên.1.foxitsoftware.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ III.

1) Xét 2 file CSDL.DBF (ma C(2).1 phụ (1 . o n < m : những bản ghi dôi ra của file 2 không đặt tƣơng ứng với bản ghi nào của file 1. Trong file HOSO có thể tiết kiệm đƣợc 18 byte cho mỗi bản ghi.foxitsoftware. Để xác định đƣợc tƣờng minh tên tỉnh của từng bản ghi trong file HOSO phải xét mối quan hệ giữa 2 file. III. Liên kết thông qua số hiệu bản ghi Thiết lập ánh xạ 1 .1 giữa 2 bản ghi có cùng số hiệu.. Ta thấy có 3 trƣờng hợp xảy ra o m = n : liên kết đầy đủ o n > m : những bản ghi dôi ra của file 1 ứng với điểm cuối của file 2. Để tiến hành liên kết 2 file bằng cách này ta phải thực hiện các bƣớc sau ở 2 file ở 2 vùng khác nhau Ở vùng có file chính đƣợc mở ta thực hiện lệnh SET RELATION TO RECNO() INTO <bí danh file phụ> . Liên kết 1 chính . việc liên kết giữa 2 file đƣợc thực hiện bằng 2 cách Generated by Foxit PDF Creator © Foxit Software http://www. Ngƣời ta thƣờng gọi file 1 là chính. m là tổng số bản ghi của file thứ 2. tentinh C(20)) 01 Hà nội 02 TP HCM . việc xét tiến hành qua từng công việc gọi là liên kết.com For evaluation only. Gọi n là tổng số bản ghi của file 1.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ 1.2.. file 2 là phụ.MATINH. 17 Thái bình Đối với file MATINH có tối đa bằng số tỉnh có trong cả nƣớc.61 .

foxitsoftware. Liên kết nhờ sự so sánh giá trị của 2 trƣờng trong 2 file .nsinh.DBF và TH08.DBF (mỗi bản ghi là một ngày). select 0 use th07 Generated by Foxit PDF Creator © Foxit Software http://www.gia. tức là khi con trỏ bản ghi ở file chính chuyển động kéo theo sự chuyển động của con trỏ bản ghi ở file phụ. Giả sử thứ tự của sinh viên ở 2 file là nhƣ nhau. nsinh.DBF (masv.ngay. triet.hoten. hoten.diem.Phòng giáo vụ lƣu trữ thông tin về điểm cuối kỳ của các sinh viên trong file DIEM.th07. Phòng Quản lý sinh viên lƣu trữ sinh viên khoa CNTT trong file SVCNTT.gia 2. thoc.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ select 0 use th08 set relation to recno() into th07 display all fields th07.th08.Ví dụ 1. Tại một cửa hàng kinh doanh vàng bạc.com For evaluation only. để quản lý giá vàng trong 2 tháng 7 và 8 ngƣời ta đã lƣu vào 2 file TH07.62 .DBF (masv. Việc tiến hành liên kết 2 file nhằm mục đích liên kết con trỏ bản ghi ở hai vùng khác nhau. Ví dụ 2.ngay. Hãy đƣa ra bảng so sánh giá vàng của từng ngày trong tháng 7 và 8. quequan) .th08.dtb for dtb >= 5 Nhận xét. dtb). tanh. Để nhận đƣợc thông tin đầy đủ về sinh viên ta phải tiến hành liên kết 2 file select 0 use diem select 0 use SVCNTT set relation to recno() into diem display all fields masv.

ten Với ví dụ 1 ở trên. select 0 use diem index on masv to idmasv select 0 use SVCNTT set relation to masv into diem Browse nomodify fields masv. ta giải quyết đƣợc trong trƣờng hợp tổng quát.matinh.DBF và file MATINH.Tức là xác định một ánh xạ giữa 2 trƣờng đƣợc dùng để so sánh đƣợc gọi là trƣờng liên kết. hai trƣờng này phải giống nhau về kiểu và độ rộng.nsinh.hoten.diem. file con lại làm file phụ rồi thực hiện ở 2 file ở 2 vùng khác nhau ắp xếp logic file phụ trên trƣờng liên kết của nó Ở vùng có file chính đƣợc mở ta thực hiện lệnh SET RELATION TO <tên trƣờng liên kết ở file chính> INTO <bí danh file phụ> Ví dụ.DBF select 0 use matinh index on ma to idma select 0 use hoso set relation to mtinh into matinh Browse nomodify fields masv. Để thực hiện liên kết 2 file với nhau căn cứ vào ngữ nghĩa của bài toán ta chọn một file làm file chính.dtb for dtb >= 5 .hoten. nếu thực hiện liên kết thông qua trƣờng masv. Thực hiện bài toán liên kết file HOSO. còn tên không nhất thiết phải giống nhau.

nếu không thêm từ khoá này thì các liên kết trƣớc đó sẽ bị huỷ bỏ. Liên kết 1 chính . chỉ có 1 file chính và n file phụ.foxitsoftware.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Chú ý từ lệnh SET RELATION thứ 2 trở đi phải thêm từ khoá ADDITIVE. Ví dụ. Bổ sung vào file HOSO.3.com For evaluation only. maut C(2) và 2 file MADTOC (ma C(2). Tiến hành liên kết file HOSO với 3 file mã.DBF các trƣờng madt C(2).III. HOSO mtinh madt maut matinh(ma) madtoc(ma) mautien(ma) select 0 use mautien index on ma to id1 select 0 use madtoc index on ma to id2 select 0 use matinh index on ma to id3 select 0 . loai C(20)). ten C(13)) và MAUTIEN (ma C(2).n) Đây là n liên kết chính phụ.63 . Generated by Foxit PDF Creator © Foxit Software http://www. Ta phải thực hiện n lệnh liên kết 1 file chính với 1 file phụ.n phụ (1 .

liên kết móc xích là liên kết n . hoten C(27). diem N(4.hoten.mautien.madtoc.ten.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ index on ph to id1 select 0 use phach set relation to ph into dmon index on sbd to id2 select 0 use tsinh .use hoso set relation to mtinh into matinh set relation to madt into madtoc additive set relation to maut into mautien additive Browse nomodify fields masv.ten.4.loai III. nhƣng không đƣợc liên kết móc xích thành vòng tròn. những file còn lại vừa là chính của file này vừa là phụ của file khác. 1 file là file phụ duy nhất. Từ lệnh SET RELATION thứ 2 trở đi phải thêm từ khoá ADDITIVE. Ví dụ.foxitsoftware. nsinh D) PHACH(sbd C(5). Chú ý. Liên kết móc xích Xét n file CSDL. Bài toán ghép phách TSINH(sbd C(5).1 liên kết chính phị.matinh. trong đó 1 file là file chính duy nhất.com For evaluation only.64 .1)) select 0 use dmon Generated by Foxit PDF Creator © Foxit Software http://www. ph C(5)) DMON(ph C(5).

nsinh. Generated by Foxit PDF Creator © Foxit Software http://www.dmon.com For evaluation only.sbd. .set relation to sbd into phach Browse nomodify fields hoten.foxitsoftware.diem Trong thực tế loại chúng ta thƣờng gặp là tổ hợp của 3 loại liên kết trên.

Sign up to vote on this title
UsefulNot useful