,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í dụ o Mẫu Hoá đơn thu chi để quản lý tài chính. phần mềm về quân sự. nhập kho để quản lý hàng trong kho.Nói đến tin học ta không thể không nhắc đến máy tính. 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%). Ví dụ. 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ý. Nhƣng hiện nay với sự phát triển nhanh chóng của tin học. quản lý bán hàng. Máy tính do con ngƣời chế tạo ra.. ợ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. phần mềm quản lý khách sạn. phần mềm kế toán. 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. 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. và để máy tính có thể thực hiện một công việc nào đó. ể phân loại các bài toán quản lý theo từng lĩnh vực chung.. Ví dụ.. 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. o Mẫu hồ sơ cán bộ để quản lý cán bộ. con ngƣời cần phải viết chƣơng trình cho nó làm việc... quản lý khu vui chơi. 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%). Ví dụ o Quản lý kho thành phẩm của công ty bánh kẹo Hải Hà . o Mẫu phiếu xuất. phần mềm thống kê. 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. luôn biến đổi và đƣợc cập nhật thƣờng xuyên.

ế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. o Sắp xếp (sort) o Tìm kiếm (find.Generated by Foxit PDF Creator © Foxit Software http://www. o Báo cáo (report) I. Bởi vì về mặt nghiệp vụ chúng có những điểm tƣơng đồng với nhau. 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. seek) o Lọc (filter) o Tính toán: cộng (count). đƣợ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..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.. 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. delete. trung bình (average).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. change.com For evaluation only.2. tổng (sum). .foxitsoftware. 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 .

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

cuối lệnh ấn Enter. kết quả lệnh đƣa ra màn hình chính.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh ế độ chƣơng trình. ếu ở phần lựa chọn nào còn có nghĩa là còn lựa chọn ở mức trong. 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 . máy thực hiện lệnh. Hai chế độ làm việc trong Visual Fox Cũng giống các phiên bản khác. Generated by Foxit PDF Creator © Foxit Software http://www. Sử dụng hệ thống bản chọn Ấn phím F10.foxitsoftware. 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). FoxPro lại sẵn sàng chờ lệnh tiếp. 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. sau đó chạy file này. ấn phím X.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.com For evaluation only.8 . ệt sáng đến bảng chọn cần thiết và ấn phím Enter. 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. ta cần tạo một file văn bản gồm các lệnh của FoxPro. ế độ hội thoại: ngƣời dùng gõ một lệnh vào cửa sổ lệnh.

1. Dánh dấu toàn bộ văn bản Ctrl+A.9 .com For evaluation only. ỏ về đầu/cuối văn bản. ối. ghi văn bản vào đĩa và đóng cửa sổ soạn thảo. 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. II.Ví dụ: MODIFY COMMAND C:\My document\hocsinh. CÁC KHÁI NIỆM CƠ BẢN TRONG FOXPRO II. Generated by Foxit PDF Creator © Foxit Software http://www. khối văn bản có màu xanh.txt Sau khi soạn thảo xong. 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 . ết lặp các đặc tính màn hình soạn thảo.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ỏ. – 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ả. 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.foxitsoftware. Huỷ đánh dấu khối: nháy nút trái chuột.

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

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> . 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> .(không giao hoán) Các toán hạng có kiểu N sẽ cho ra kết quả kiểu N. Hai toán hạng phải có cùng kiểu. là F nếu so sánh sai. 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.<số nguyên> D N D ứ> VD. VD. Date() <ngày 1> D D N ạng kiểu L cho ra kết quả kiểu L. trừ: + (giao hoán). . 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). a = “thanh pho ”. sánh. là T nếu so sánh đúng.

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

N.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ự.com For evaluation only. 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.foxitsoftware. Generated by Foxit PDF Creator © Foxit Software http://www. chữ số. dấu gạch chân. VD. không đặt tên trùng với tên hàm thƣ viện. II. Các hàm do FoxPro cung cấp sẵn. nếu nhiều đối số thì ngăn cách nhau bởi dấu phẩy. Các hàm thƣ viện ả lại ngày giờ hệ thống. Nếu có đối số thì các đối số đƣợc viết trong cặp dấu ngoặc này. 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. còn các hàm do ngƣời dùng tự viết thì phải đƣợc viết tên đầy đủ. 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. L.12 . D. Cạnh tên hàm bao giờ cũng phải có cặp dấu (). có thể dùng chữ. ả lại một chuỗi ký tự thể hiện giờ hiện tại.4.to <danh sách biến>. <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 .3. II. nhƣng không đƣợc bắt đầu bằng số và không có dấu cách. Biểu thức .. Tên biến không phân biệt chữ hoa và chữ thƣờng. 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). khi sử dụng chỉ cần xác định 4 chữ cái đầu. đối số hoặc không có đối số. Hàm có tê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.

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

ốn dùng các lệnh của MS . 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 đó. ệ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 “. Ví dụ khi đã chọn FOR thì nhất định phải viết <điều kiện> Cách dùng lệnh.com For evaluation only.foxitsoftware. Ở 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. các tham số. các phần tuỳ chọn không phân biệt chữ hoa.”). Generated by Foxit PDF Creator © Foxit Software http://www. cuối dòng có dấu “.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. Cú pháp lệnh là quy tắc lệnh. chữ thƣờng.14 o Trong một phiên làm việc.Chú ý: Những thành phần viết trong < > là bắt buộc phải viết ra.”. Khi viết sai cú pháp sẽ nhận đƣợc thông tin báo lỗi Syntax error. Nếu giống thì thực hiện. .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. Còn những thành phần viết trong [ ] là tùy chọn. gần giống thì sửa cho đúng rồi thực hiện. khi ấ ệnh sẽ đƣợc thực hiện. . Khi viết lệnh phải viết đúng cú pháp lệnh.

Ở đâ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.Ví dụ. nếu thiếu chƣơng trình sẽ thông báo lỗi unrecognize command verb.2. 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. Mỗi văn bản nhƣ vậy đƣợc gọi là một hồ sơ. hoá đơn bán hàng. III. III.com For evaluation only. Bảng trích ngang lý lịch. VD.* ! 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. Generated by Foxit PDF Creator © Foxit Software http://www. Run Dir *. 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. 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. Hồ sơ Xét một tập các đối tƣợng quản lý. Lý lịch cá nhân. phiếu điểm. mỗi cột ứng với 1 thông tin đặc trƣng mà hồ sơ nào cũng có.. VD. bảng điểm của sinh viên. hồ sơ về các cơ quan. đố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. danh sách lớp.foxitsoftware.15 . 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). Thông thƣờng các bảng này bị hạn chế bởi kích thƣớc giấy.. Ví dụ Disp stru ột lệnh bắt buộc phải có 1 động từ lệnh. ngƣời ta thƣờng lặp các bảng bao gồm các cột hàng. mỗi dòng ứng với một hồ sơ và ngƣợc lại .1. ều ngang gồm các dòng.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. III.

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

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

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

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

II.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.DBF Number of data records : 20 Date of last update : 11/25/01 . 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. Ví dụ.1. Để biết 1 file đã đƣợc mở ta dùng lệnh SET. khi ta muốn xem lại cấu trúc của file đó. USE chỉ đóng file CSDL đang hiện hành. Cú pháp USE IN <tên file CSDL Generated by Foxit PDF Creator © Foxit Software http://www. 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. Lệnh mở file dữ liệu. CLOSE DATABASE đóng tất cả các file CSDL đang đƣợc mở.Chú ý.com For evaluation only. LÀM VIỆC VỚI CẤU TRÚC FILE CƠ SỞ DỮ LIỆU II.19 .foxitsoftware. 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>).

nếu thống tin về cấu trúc không hiển thị hết trong một trang . 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.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ở. 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.foxitsoftware. .nếu dùng DISPLAY thì FoxPro sẽ hiển thị thông tin theo từng trang màn hình. ự khác nhau giữa LIST và DISPLAY: Khi thực hiện lệnh trên.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 .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ú ý. Generated by Foxit PDF Creator © Foxit Software http://www.com For evaluation only.

21 . xoá. 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.đƣa con trỏ đến dòng ứng với trƣờng đó và ấn Ctrl + D hoặc ấn nút delete. .Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Sau khi thay đổi cấu trúc xong. khi này xuất hiện hộp thoại hỏi “Make structure changes permanent ?”. ổ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.com For evaluation only.II. ố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.foxitsoftware. Để 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ụ. Thay đổi cấu trúc của file diem. 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ó.2. thay đổi cấu trúc của các trƣờng này. ta lại muốn thay đổi cấu trúc của nó. Chúng ta có thể thêm. ta ấn OK. Xoá 1 trƣờng . Các thao tác trên hộp hội thoại này tƣơng tự nhƣ khi ta tao file CSDL. Sửa cấu trúc Trong một số trƣờng hợp khi đã tạo đƣợc một file CSDL.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. Ta ấn “yes” để khẳng đinh có thay đổi cấu trúc của file. Generated by Foxit PDF Creator © Foxit Software http://www.

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

ngƣợc lại ản ghi hiện tại mặc định là bản ghi đầu tiên. 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. 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. Điểm cuối file là điểm mà tại đó hàm eof() trả lại giá trị đúng. 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. . 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ý. đó là số hiệu của bản ghi hiện tại. Dịch chuyển con trỏ bản ghi ểm đầu file .Giáo viên: Nguyễ b. 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ớ. 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ố. Khi mới mở con trỏ bản ghi chỉ vào bản ghi số c. Chú ý.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. điểm này nằm trƣớc bản ghi số 1 và có số hiệu bản ghi bằng 1. đ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ị. . ngƣợc lại trả lại giá trị sai.điểm cuối file Điểm đầu file là điểm mà tại đó hàm bof() trả lại giá trị đúng.

23 GO 3 a = RECNO() Chú ý.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. USE diem b = RECNO() . ể 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 tuyệt đối Cú pháp GO <n> hoặc GOTO <n> Generated by Foxit PDF Creator © Foxit Software http://www. Ví dụ. ịch chuyển con trỏ bản ghi quá phạm vi của file CSDL.com For evaluation only. Để xác định đƣợc có bao nhiêu bản ghi trong file CSDL ta có thể sử dụng hàm RECCOUNT(). 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. . 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.foxitsoftware. 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. trên màn hình sẽ thông báo lỗi “Record is out of range”.

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. Đƣ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. Ví dụ. về phía cuối file nếu k dƣơng. skip ~ skip 1 III.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ skip -3 12 skip 4 . go 15 Generated by Foxit PDF Creator © Foxit Software http://www. Thêm bản ghi 1.foxitsoftware. 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.2.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 . 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. Ví dụ.com For evaluation only.24 Chú ý.ịch chuyển tƣơng đối Cú pháp SKIP <k> Trong đó <k> là số nguyên khác 0. Để thêm bản ghi vào cho file DIEM.

diem1.F. trƣờng ký tự là các dấu cách.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.25 .gih vừa đƣợc thêm. 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. ế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. Ví dụ. trƣờng ngày là { / / } Ví dụ. Ta có 3 file CSDL diem.foxitsoftware. 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. trƣờng logic là .. Hai file này phải có cấu trúc giống nhau. 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 . 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.com For evaluation only. Generated by Foxit PDF Creator © Foxit Software http://www.dbf.dbf. Để thêm bản ghi vào cho file DIEM. APPEND FROM Cú pháp. <file bổ sung> phải ở trạng thái đóng. diem2.dbf. Chú ý. Bản ghi trống là bản ghi có trƣờng số bằng 0. b.DBF ta thực hiện các lệnh sau use diem APPEND c.

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. 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. 2. Ví dụ. 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..dbf use diem go 3 insert go 1 insert before blank use diem go 4 insert before go 1 insert before blank .. 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. 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. ếu có từ khoá [BLANK] thì một bản ghi trống sẽ đƣợc chèn vào.append from diem2 for dtb = 8. sau đó chọn mục Append from. 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í). 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.

foxitsoftware. Trƣớc đó con trỏ bản ghi ở đâu không quan trọng.3. Thực hiện xong con trỏ bản ghi sẽ nằm ở cuối file. bản ghi hiện tại là bản ghi đầu tiên. 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. 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. ớ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. Khi xử lý file đến bản ghi nào thì bản ghi đó là bản ghi hiện tại.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ III.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.26 .com For evaluation only. . 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. 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. Thực hiện xong con trỏ bản ghi nằm ở cuối file. a. Sau khi thực hiện xong con trỏ bản ghi ở luôn đó. ớ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. Khi mở file. Chú ý. ế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. Để tiện cho ngƣời dùng.

nhƣng sẽ dừng lại ngay sau khi gặp bản ghi đầu tiên có <btL> là False. Các biểu thức trong danh sách có thể khác loại. 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. <btN>] [STYLE <btC2>]] có thể in theo . 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.foxitsoftware.com For evaluation only. Xem và in dữ liệu a. phông chữ in ra theo phông chữ của màn hình chính. lƣớt qua các bản ghi có <btL> là False. AT <btN> chỉ định bắt đầu in từ cột nào. ?? ? | ?? <bthức> [AT <bt N>] [FONT <btC1> [. 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.27 . các <bthức> có thể là biểu thức số. 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ị .T. Đ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. Generated by Foxit PDF Creator © Foxit Software http://www.b. 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). 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.4.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễn Hoài Anh Ý nghĩa. Lệ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. giá trị một hàm. giá trị các trƣờng của file CSDL hiện thời.). Nếu có từ khoá [FONT <btC1> [.

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

nếu có nhằm xác định vùng hiển thị của ảnh. logic. a = 10 b = 25 @ 5. <btN1> là số hàng của vùng. 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ụ. cột> đã định. Tƣơng tự lệnh ?|?? từ khoá [FONT <btC1> [.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. <btN2> là số cột của vù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.foxitsoftware.29 ờng dẫn\tên tệp ả .7 SAY a font '. nếu ảnh rộng hơn vùng thì sẽ bị cắt bớt.com For evaluation only. cộ [SIZE btN1.VnTime'. giá trị một hàm. cột). phông chữ in ra theo phông chữ của màn hình chính. các <bthức> có thể là biểu thức số. 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. btN2] [CENTER] [ISOMETRIC] [STRETCH] Ảnh sẽ hiện ở phía dƣới và bên phải toạ độ (dòng. Nếu không có từ khoá [SIZE btN1. btN2] thì ảnh hiện theo đúng kích thƣớc gốc của nó. từ khoá [STRETCH] để co giãn ảnh theo chiều . <btN>] [STYLE <btC2>]] dùng để định dạng phông chữ và cỡ chữ in ra. giá trị các trƣờng của file CSDL hiện thời. Generated by Foxit PDF Creator © Foxit Software http://www.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.

”. ngày sinh. mỗi bản ghi là một dòng.DBF .DBF display field hoten. 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 “. 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.xloai ạm vi>] : xác định phạm vi các bản ghi đƣợc liệt kê. mỗi trƣờng là một cột (tên cột là tên trƣờng). ờng>]: chỉ hiển trị những trƣờng liệt kê trong <danh sách trƣờng>. ế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.nsinh. 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.bmp' bitmap c. Ví dụ. điểm trung bình. clear @1.dtb. đối với lệnh DISPLAY cho phép xem từng trang màn hình. Lệnh DISPLAY. nếu không có <phạm vi> thì coi nhƣ là ALL. ế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. Đƣa ra tất cả các bản ghi của file CSDL DIEM. Ví dụ.2 say 'F:\games\compaq. Ví dụ. xếp loại của các sinh viên trong file CSDL DIEM.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).

com For evaluation only. Đƣa ra các bản ghi của file CSDL DIEM.30 Đƣa ra n bản ghi liên tục .Generated by Foxit PDF Creator © Foxit Software http://www.DBF có họ tên là Nguyễn thị Thanh.foxitsoftware. Ví dụ.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 đƣ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). . Đƣa ra các bản ghi của file CSDL DIEM.DBF có điểm trung bình nhỏ hơn 5.giả sử ta muốn đƣa ra bản ghi thứ 5 .

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 năm 1975 Generated by Foxit PDF Creator © Foxit Software http://www.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. Đƣa ra các bản ghi của file CSDL DIEM.DBF mà sinh tháng 10 .foxitsoftware.DBF là sinh viên nam.DBF mà có ngày sinh là 13/10/78.Đƣa ra các bản ghi của file CSDL DIEM. display all for Đƣa ra các bản ghi của file CSDL DIEM.com For evaluation only.31 dis Đƣa ra các bản ghi của file CSDL DIEM.

sẽ dừng khi lần đầu tiên gặp phải bản ghi không thoả mãn <btL2>. ện số hiệu bản ghi ở cột đầu khi liệt kê. 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. 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. III.5. Generated by Foxit PDF Creator © Foxit Software http://www. trên màn hình sẽ hiển thị cửa sổ soạn thảo EDIT. đầu tiên hãy mở file CSDL tại vùng làm việc hiện thời. Trên cửa sổ chỉ hiển thị nội dung của 2 bản ghi.foxitsoftware. sau đó thực hiện lệnh EDIT đƣa các bản ghi ra màn hình để sửa chữa. ết quả ra file văn bản.32 . Sửa dữ liệu trên bản ghi Để sửa đổi thông tin của một file CSDL. Cửa sổ này chứa nội dung của các bản ghi mà chúng ta đã nhập. tiêu đề mặc định của nó chính là tên file CSDL. ết quả ra máy in.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. để .com For evaluation only.

hoặc mở rộng cửa sổ.” ờng>]: chỉ hiển trị những trƣờng liệt kê trong <danh sách trƣờng> để có thể sửa chữa. ta có thể vào dữ liệu cho bản ghi này. ấ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>. o <PgUp>. ngày sinh. xếp loại của các sinh viên trong file CSDL DIEM. <PgDn>: dịch chuyển con trỏ đến bản ghi trƣớc / sau.DBF để sửa chữa . ấ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>. cột. lúc đó con trỏ chuyển đến bản ghi mới chƣa có dữ liệu. <SHIFT> + <TAB> : dịch chuyển con trỏ đến trƣờng trƣớc hoặc sau. ạn thảo dữ liệu: giống nhƣ soạn thảo thông thƣờng.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. ịch chuyển con trỏ theo từng vị trí hàng. Đƣa ra họ tên. ị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 “. điểm trung bình. o <TAB>. Một số các thao tác chính trong cửa sổ EDIT.

ạm vi>] : chọn phạm vi thao tác trên một số bản ghi nhất định. Generated by Foxit PDF Creator © Foxit Software http://www.com For evaluation only. use . ngày sinh. con dữ liệu trong các trƣờng khác chỉ có thể hiển thị mà không cho sửa đổi.foxitsoftware. Ví dụ. ạo bản ghi mới bằng lệnh EDIT. 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. ờng>] : chỉ cho phép sửa đổi dữ liệu trong một trƣờng chỉ ra bởi <tên trƣờng>. ở đây dùng để soạn thảo nội dung các bản ghi. điểm trung bình.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. nhƣng thay bởi việc hiển thị.DBF nhƣng chỉ cho phép sửa đổi trên trƣờng điểm tin học.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). Đƣa ra họ tên. Lúc này nếu ta ấn <CTRL> + <N> sẽ không có tác dụng. xếp loại của các sinh viên trong file CSDL DIEM. ấu xoá bản ghi bằng lệnh EDIT. Ví dụ. Lúc . điểm tin học. nếu không có <phạm vi> thì coi nhƣ là ALL.

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). . Đá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.III. Thao tác chuyển đổi giữa 2 cửa sổ là <Ctrl> + <H>. III.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. Một bản ghi bị đánh dấu xoá thì hàm delete() sẽ trả lại giá trị là . Generated by Foxit PDF Creator © Foxit Software http://www. Xoá bản ghi trong file cơ sở dữ liệu II. .com For evaluation only.1 . Ví dụ. 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.6.này nếu ta ấn <CTRL> + <T> sẽ không có tác dụng.foxitsoftware. đó là cửa sổ bên trái (Left) và cửa sổ bên phải (Right). 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. Trong đó <btN> chỉ ra độ rộng cột của cửa sổ bên trái. Ví dụ.T. ở 2 cửa sổ EDIT một lúc theo chiều ngang trang màn hình. Ví dụ.

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.foxitsoftware.Chú ý. Các bản ghi bị xoá bởi lệnh DELETE ở đây chỉ bị xoá về mặt logic. . Ví dụ. thì chúng ta vẫn thấy những bản ghi này. nhƣng ở đầu tên các trƣờng đã bị đánh dấu.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. chính vì vậy nếu sử dụng những lệnh xem nội dung file CSDL nhƣ EDIT.III. ỉ tác dụng lên trƣờng MEMO của các bản ghi bị đánh . Xoá bản ghi của những sinh viên có điểm trung bình dƣới 5 trong file CSDL diem.dbf. 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.com For evaluation only.dbf..6.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... Generated by Foxit PDF Creator © Foxit Software http://www. 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á.2 . II. ế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á. nhƣng đã bị đánh dấu xoá.

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ỏ:

com For evaluation only. 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. B. ạn thảo dữ liệu: giống nhƣ soạn thảo thông thƣờng. Đối với một trƣờng có thể dùng tham số R. E. các trƣờng viết cách nhau bởi dấu phẩy. o <PgUp>. bảo đảm các ràng buộc của dữ liệu. W.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). F. <PgDn>: di chuyển hộp sáng từng trang màn hình. Generated by Foxit PDF Creator © Foxit Software http://www. P. ta có thể vào dữ liệu cho bản ghi này. H. Giải thích các tham số trƣờng> : R . lúc đó trƣớc tên các trƣờng của bản ghi đó có dấu “. ấu xoá một bản ghi : ấn <CTRL> + <T>. V. lúc đó con trỏ chuyển đến bản ghi mới chƣa có dữ liệu. N.foxitsoftware. 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.” ờng>]: Hạn chế chỉ các trƣờng có trong danh sách mới hiện lên màn hình.ển hộp sáng lên xuống từng dòng. ấ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>. Ví dụ . <SHIFT> + <TAB> (chiều lùi) : di chuyển giữa các trƣờng. 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>.38 .

: vị trí dấu chấm thập phân .ờng> : V = btL1 [:F] [:E = btC1] .10):F:E=‟Du lieu sai‟ browse fields masv.0.chuỗi khuôn dạng quy định dạng dữ liệu nhập vào. browse fields masv.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. ểm tra giá trị trƣờng ngay cả khi nó không thay đổi.com For evaluation only. ẽ là <btC1> thay vì Ivalid Data (ngầm định) Ví dụ. tỉ L : chỉ cho nhập giá trị logic (T.foxitsoftware.hoten. Ví dụ. giá trị chữ số cho kiểu C A : chỉ cho nhập chữ cái # : chỉ cho nhập giá trị là số. dƣơng (+) cho dữ liệu kiểu N.nsinh:V=nsinh<date() :F:E=‟Du lieu nhap sai‟ Generated by Foxit PDF Creator © Foxit Software http://www. F.39 .(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. triệu.hoten.hoten :27. 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 . thoc:V=between(thoc. browse fields masv :7. : vị trí dấu phẩy ngàn. . ký tự trắng hoặc +.dtb :5 ờng> : P = <chuỗi khuôn dạng> . ! : 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 (-). Y.

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

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

Sắp xếp hoten.hoten. 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). dtb.Generated by Foxit PDF Creator © Foxit Software http://www.dtb . Các chỉ tiêu sắp xếp ắp xếp theo thứ tự tăng dần (ngầm định). ờ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.41 .0 trở lên và các trƣờng gồm masv.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. Ví dụ. cùng hoten theo ngày sinh ít tuổi ở trên sort to theoho on hoten/C..foxitsoftware. sort to diemdat on dtb/D all for dtb>5 masv. <trƣờng 2> [/A] [/C] [/D]. nsinh ạm vi] : chỉ các bản ghi nằm trong <phạm vi> mới tham gia sắp xếp. ều kiện hạn chế các bản ghi tham gia sắp xếp. trong đó chỉ có những ngƣời từ 5. /DC. ếu có 2 chỉ tiêu cùng một trƣờng ta có thể viết /AC.com For evaluation only. hoten. ối với kiểu C . Tạo một file mới đã đƣợc sắp xếp theo thứ tự giảm dần của dtb. 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. nsinh. ắp xếp theo thứ tự giảm dần.

dbf gồm các bản ghi Record# hodem 1 2 3 4 5 ten nsinh 20/07/77 . Generated by Foxit PDF Creator © Foxit Software http://www.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ức là khoá có chứa biến nhớ và hàm.foxitsoftware. Việc sắp xếp do một file khác điều khiển gọi là file chỉ số (Index). 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. nếu cập nhật thêm dữ liệu thì phải sắp xếp lại. không dùng một khoá là biểu thức tổng quát. ết quả sau khi lệnh thực hiện ở trạng thái đóng.2.com For evaluation only. Giả sử có tệp hssv.Chú ý. ệnh SORT chỉ dùng khoá sắp xếp là một trƣờng.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. IV. 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. ể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. Ví dụ. Lƣu trữ giá trị của việc sắp xếp 2.

1 . Tạo file Index Cú pháp Generated by Foxit PDF Creator © Foxit Software http://www.com For evaluation only.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. Sắp xếp logic theo dtb theo chiều giảm dần use diem . dóng sang ngang ta đƣợc tìm đƣợc đó là bản ghi thứ 5 trong file dữ liệu. Tạo xong.2.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”. Ví dụ.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.IV.IDX. file chỉ số đƣợc mở.foxitsoftware. ạo file chỉ số . II. máy sẽ tìm ở cột thứ nhất của tệp chỉ số đến giá trị khoá là “Binh”. con trỏ bản ghi nằm ở bản ghi có chỉ số khoá thấp nhất.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.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. Việc sắp xếp luôn theo thứ tự tăng dần củ ốn sắp xếp .

”B”) + hoten + dtoc(nsinh) to idgtinh display all masv.dtb Ví dụ.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ .com For evaluation only.nsinh. 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 đó. Ví dụ.hoten. cùng gtinh theo hoten.hoten.nsinh.nsinh.”A”. Generated by Foxit PDF Creator © Foxit Software http://www. cùng hoten theo nsinh set date french use diem index on hoten + dtoc(nsinh) to idnsinh display all masv.nsinh. Sắp xếp logic theo hoten. 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.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á.foxitsoftware.44 .hoten. Sắp xếp logic theo gtinh.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.dtb ỉ số sẽ điều khiển sắp xếp dữ liệu ngay khi nó đƣợc tạo ra. cùng hoten theo nsinh set date french use diem index on iif(gtinh.dtb ỉ các bản ghi thoả mãn biểu thức logic mới đƣợc sắp xếp Ví dụ.hoten.

IV. ả sử file CSDL đã đƣợc mở.II. idgtinh của file CSDL diem trong đó file idnsinh sẽ là file chỉ số chủ.iddiem. mở các file chỉ số đồng thời với file CSDL. iddiem. Mở file chỉ số Có 2 cách mở file chỉ số: mở file CSDL rồi sau đó mở file chỉ số.iddiem. để 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ở.idnsinh. iddiem. Mở file chỉ số idhoten. idnsinh.iddiem.2 .idnsinh.idgtinh order idnsinh hoặc set index to idnsinh. 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ủ.idnsinh. 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ủ.idgtinh ở file chỉ số đồng thời với việc mở file CSDL . 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ủ. o <dsách file chỉ số> : tên các file chỉ số của file CSDL cần mở. Ví dụ. idgtinh của file CSDL diem set date french use diem set index to idhoten.idgtinh Ví dụ. Thao tác với file Index a.iddiem. Mở file chỉ số idhoten. idnsinh.idgtinh order 2 hoặc set index to idhoten.2. set date french use diem set index to idhoten.idhoten.

ập nhật file dữ liệu mà quên chƣa mở file chỉ số. c. Mở file chỉ số idhoten. ở file chỉ số bằng lệnh đã biết.iddiem. idnsinh. 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ủ. để 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. ệ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. Ví dụ.com For evaluation only. sau đó thực hiện lệnh . Đó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. Chú ý ỉ số sẽ bị đóng nếu file CSDL của nó bị đóng.idnsinh. Nên dùng cách này để cập nhật dữ liệu.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. ập nhật file dữ liệu thì file chỉ số chỉ đƣợc cập nhật khi nó đƣợc mở.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. idgtinh của file CSDL diem Generated by Foxit PDF Creator © Foxit Software http://www.idgtinh b.45 .

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ở. Tìm kiếm tuần tự . Generated by Foxit PDF Creator © Foxit Software http://www. nếu trùng tên sắp theo hodem. 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ở. rat(“ ”.foxitsoftware.allt(hoten))+1) + left(allt(hoten).3. mỗi từ cách nhau bởi 1 dấu cách). 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. ử dụng ị trí thứ n xuất hiện xâu c1 trong xâu c2.com For evaluation only. ấy n ký tự bên trái của xâu s. ải . ế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.46 vitri+1) -1) index on substr(allt(hoten).REINDEX. rat(“ ”.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.allt(hoten))-1) to idten IV. ấy n ký tự của xâu s kể từ ký tự thứ i.

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

N. Nếu không tìm thấy hàm FOUND() cho giá trị . 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 .com For evaluation only.foxitsoftware. ới cách tìm kiếm này dữ liệu trong file cần phải đƣợc sắp xếp. Chú ý. V.1. ểm: tốc độ nhanh. Nhận xét. Đặ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ở. D. ợ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. <giá trị của khoá sắp xếp> có thể nhận các kiểu C.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>.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ế. TÍNH TOÁN VÀ THỐNG KÊ DỮ LIỆU V. 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. ệ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.T. L Nếu tìm thấy hàm FOUND() cho giá trị . 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ý.F.48 .

đến con trỏ bản ghi. display all Ví dụ. use diem set filter to gtinh = .2. Sau khi đặt lọc.foxitsoftware.T. Chú ý. Đặ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. Đặt lọc cho file CSDL diem để chỉ xử lý trên các bản ghi có dtb > 5 và thoc < 4. 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. ệnh lọc không làm thay đổi con trỏ bản ghi liền sau đó. Generated by Foxit PDF Creator © Foxit Software http://www. ọc sẽ làm liên tục hoá các bản ghi. Đặ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. do đó ta thƣờng phải điều chỉnh lại con trỏ bản ghi bằng lệnh GO TOP. 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>. Ví dụ.Bài giảng Hệ quản trị CSDL Fox .com For evaluation only. use diem set filter to (dtb > 5) and (thoc < 4) display all V.

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. Nếu có to <tên biến> giá trị tính đƣợc sẽ đƣợc gán cho <tên biến>.49 . 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. Ví dụ. . Phạm vi ngầm định là ALL. use diem count for gtinh to sonam ? sonam/reccount() * 100 V. 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().hoten. ệnh SET FIELDS TO ALL trở lại trạng thái sử dụng tất cả các trƣờng. Phạm vi ngầm định là ALL. Đế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>). Nếu <tên biến> chƣa có sẽ sinh ra.4. use diem set fields to masv. Tính % số học sinh nam có trong lớp. 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>). nếu có rồi sẽ in đè lên.3.nsinh. Ví dụ.dtb display all V.

Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware. Kết quả của việc tính trung bình là hệ quả của 2 phép tính trên. i < j: lỗi cú pháp.50 . Phạm vi ngầm định là ALL. Ví dụ.5. Cú pháp của lệnh này hoàn toàn giống lệnh SUM. 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.com For evaluation only.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.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. use diem sum thoc to diem ? diem/reccount() V. Tính điểm trung bình cho môn học thoc. 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ố>. Tính trung bình lƣơng chính của đơn vị 1. use luong average lchinh for donvi = “01” to tb count for donvi = “01” to so1 .

tính tổng số sinh viên của từng lớp.51 . muốn dùng thì phải mở. ộ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.6.com For evaluation only.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. ết quả nhận đƣợc ở trạng thái đóng..foxitsoftware. Kết quả tính đƣợc sẽ đƣa ra một file mới trên đĩa. 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. Tính trung bình cho môn thoc. độ rộng tự động mở rộng). o Đối với trƣờng số thì ghi tổng nó cộng đƣợc theo bộ phận. đối với trƣờng số thì tên và kiểu giống.. 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.. Ví dụ tính tổng lƣơng chính của từng đơn vị. use diem average thoc to dtb V. 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.sum lchinh for donvi = “01” to tong1 ? tong1/so1 Ví dụ. 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 .

Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware. 10 trong môn thoc. 8. Tính tổng số sinh viên đạt điểm 5. 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ông việc trên đƣợc lặp lại cho đến khi duyệt hết giá trị của biến C. Ví dụ. công việc A là công việc cộng dồn. 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. 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. 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.52 . 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.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. 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. 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.com For evaluation only. 6. 7. use diem sort to sapxep on thoc for thoc > 4 .đƣợc lệnh TOTAL xét đến. ế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ố.

x9.x7.foxitsoftware.x10 Generated by Foxit PDF Creator © Foxit Software http://www.x2.avg(triet). avg(tanh). cnt(xlech).x10 ? x1.x3. 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.53 .com For evaluation only.x9.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ Ch-¬ng III.x6.x8. AVERAGE. use diem calculate cnt(thoc). SUM.x4.x5.avg(xkep) to x1.x3.x7. 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ụ. Thống kê tổng hợp (Calculate) Lệnh CALCULATE là khái quát của các lệnh COUNT.avg(xlech).cnt(xkep). LÀM VIỆC VỚI NHIỀU FILE CSDL .x4.x6.use sapxep total to baocao on thoc use baocao display all V. Cú pháp của lệnh này giống nhƣ lệnh SUM.cnt(tanh).cnt(triet).x8.x2. Lệnh này cho phép tính nhiều giá trị khác nhau trong một lần duyệt CSDL.x5.avg(thoc).7.

Để 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ụ. 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. ột số từ ứng với 225 vùng ột tên nào đó đƣợc gọi là bí danh. Khi mới khởi động FoxPro ngầm định là vùng 1.dbf tại vùng 2. Ví dụ. Ta đã mở file diem. 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.I.Bài giảng Hệ quản trị CSDL Fox .dbf và sinhvien. file sinhvien.dbf ta thực hiện lệnh SELECT 2 Generated by Foxit PDF Creator © Foxit Software http://www.dbf tại 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ở.1.foxitsoftware.BÍ DANH CỦA VÙNG LÀM VIỆC I. VÙNG LÀM VIỆC . 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. 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. 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.dbf. Khi ta muốn thao thác với 2 file dữ liệu diem. Để làm việc với file sinhvien. Nếu không.com For evaluation only.

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). Ta có thể sử dụng lệnh CLOSE ALL để đóng các file CSDL đã đƣợc mở.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 đó.54 . ể mở lại một file ở nhiều vùng. 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. và mở file bình thƣờng SELECT 2 USE sinhvien ở một vùng bất kỳ. . Để đó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). nhƣng file mở lại chỉ đƣợc xem chứ không đƣợc truy nhập.

55 . ệ ửa sổ thể hiện trạng thái của các vùng. 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ở. làm tăng tốc độ thực hiện công việc.2. ếu mở file bằng lệnh USE <tên file CSDL> ALIAS <bí danh>.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. Việc định vùng làm việ không nhất thiết phải theo một thứ tự nào.com For evaluation only. Khi mở nhiều file CSDL trên các vùng khác nhau. 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. có thể dẫn đến mở file này và đóng nhầm file đã đƣợc mở. các lệnh dịch chuyển. SELECT <bí danh> và khái niệm bí danh nói chung . Generated by Foxit PDF Creator © Foxit Software http://www. 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. đị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. Bí danh Khi mở 1 file CSDL để tránh cho ngƣời dùng phải nhớ file đó đƣợc mở ở vùng nào. <bí danh> đƣợc chọn sẽ làm bí danh cho vùng.foxitsoftware.ở nhiều file. I. nếu ta không nhớ các vùng đã có file đƣợc mở. 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.

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

tanh.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ copy to dat fields masv.nsinh.[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. 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. nsinh.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.nsinh.com For evaluation only. 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.thoc.hoten.xkep>=5.hoten. Ví dụ.57 . Từ file diem.nsinh.foxitsoftware.triet. nếu muốn sử dụng ta phải dùng các lệnh đã biết để mở file này. 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. File CSDL mới đƣợc tạo ở trạng thái đóng.dtb for (thoc<5) or (tanh<5) or (triet<5) ọc không .xkep.dbf lấy ra file CSDL gồm trƣờng masv.xlech.hoten.dtb for (dtb>=5) and (thoc>=5) and (tanh>=5) and (triet>=5) and iff(gtinh.

các nhân viên sẽ nhập dữ liệu từ các máy khác.or iff(gtinh. 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.xlech<5) Chú ý. 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>. 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. Chú ý.com For evaluation only.foxitsoftware. 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.xkep<5.3. 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ủ.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 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. II. ệ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 . 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.

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ố. 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). 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.. ổ sung> phải ở trạng thái đóng khi thực hiện lệnh này. Ví dụ. 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 . Ngƣợc lại. cssau N(9)). <trƣờng 2> WITH <bt2>]. Cú pháp UPDATE ON <khoá> FROM <file sửa đổi> REPLACE <trƣờng 1> WITH <bt1> [. tenkh C(40).<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. 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. ế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>.4. use D200111 copy to D200112 use D200112 replace all csdau with cssau replace all cssau with 0 browse freeze cssau II. Giả sử file này đã có đầy đủ số liệu. [<RANDOM>] Trƣớc khi dùng lệnh UPDATE. 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. csdau N(9)..

.> đã cập nhật. Chú ý.com For evaluation only. 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.. ệnh UPDATE không có phạm vi và điều kiện... Trong đó ụ cấp là giá trị trong file LUONG. <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>.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.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ trong vùng làm việc khác.DBF ền thƣởng là giá trị trong file THUONG.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. Và file CSDL TTHUONG. sotien quản lý tiền thƣởng tƣơng ứng với các bản ghi của file LUONG. <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>. Ta có file CSDL có tên là LUONG. <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á>.foxitsoftware. phucap. <biểu thức n> có thể là hằng. 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..59 .DBF gồm các trƣờng macb.. ờng 1>. luong. Ví dụ. thuclinh.http://www.DBF (thông qua macb).

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. Đặt vấn đề Ví dụ.sotien random Generated by Foxit PDF Creator © Foxit Software http://www. 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.foxitsoftware.60 .DBF (hoten C(27).Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ III. Để giải quyết ít nhất 2 bất lợi trên. Ta có file CSDL HOSO.replace thuclinh with luong + phucap + capnhat.1.sotien Hoặc select 0 use thuong alias capnhat select 0 use luong index on macb to idluong update on macb from capnhat.com For evaluation only. ta mất 20 byte. LIÊN KẾT CÁC FILE CSDL III. replace thuclinh with luong + phucap + capnhat.DBF (hoten C(27). ngƣời ta thƣờng tách file này thành 2 file HOSO. 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 .

2. 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. Để 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ụ> . 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.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ 1. file 2 là phụ. Liên kết 1 chính . 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.1) Xét 2 file CSDL. Trong file HOSO có thể tiết kiệm đƣợc 18 byte cho mỗi bản ghi.1 giữa 2 bản ghi có cùng số hiệu.com For evaluation only. 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. III..61 .foxitsoftware.MATINH. Liên kết thông qua số hiệu bản ghi Thiết lập ánh xạ 1 . 17 Thái bình Đối với file MATINH có tối đa bằng số tỉnh có trong cả nƣớc. m là tổng số bản ghi của file thứ 2. Để 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.1 phụ (1 . Gọi n là tổng số bản ghi của file 1. Ngƣời ta thƣờng gọi file 1 là chính.DBF (ma C(2).

Giả sử thứ tự của sinh viên ở 2 file là nhƣ nhau. Liên kết nhờ sự so sánh giá trị của 2 trƣờng trong 2 file .gia 2. Phòng Quản lý sinh viên lƣu trữ sinh viên khoa CNTT trong file SVCNTT. dtb). tanh. hoten.62 .DBF và TH08. để quản lý giá vàng trong 2 tháng 7 và 8 ngƣời ta đã lƣu vào 2 file TH07.diem.hoten.th08. quequan) .th08.dtb for dtb >= 5 Nhận xét.th07.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.Ví dụ 1.nsinh.gia. Để 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.DBF (mỗi bản ghi là một ngày).ngay. 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ụ.DBF (masv.ngay. Ví dụ 2.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.com For evaluation only. nsinh. triet. thoc. 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.DBF (masv. select 0 use th07 Generated by Foxit PDF Creator © Foxit Software http://www. Tại một cửa hàng kinh doanh vàng bạc.foxitsoftware. Hãy đƣa ra bảng so sánh giá vàng của từng ngày trong tháng 7 và 8.

DBF và file MATINH.nsinh.dtb for dtb >= 5 . nếu thực hiện liên kết thông qua trƣờng masv. còn tên không nhất thiết phải giống nhau. Thực hiện bài toán liên kết file HOSO. 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ụ. Để 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.matinh. select 0 use diem index on masv to idmasv select 0 use SVCNTT set relation to masv into diem Browse nomodify fields masv.ten Với ví dụ 1 ở trên.DBF select 0 use matinh index on ma to idma select 0 use hoso set relation to mtinh into matinh Browse nomodify fields masv. ta giải quyết đƣợc trong trƣờng hợp tổng quát.hoten. hai trƣờng này phải giống nhau về kiểu và độ rộng.diem.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.hoten.

loai C(20)).com For evaluation only. Tiến hành liên kết file HOSO với 3 file mã. Ví dụ.63 .n) Đây là n liên kết chính phụ. Liên kết 1 chính .DBF các trƣờng madt C(2). 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 . Ta phải thực hiện n lệnh liên kết 1 file chính với 1 file phụ. ten C(13)) và MAUTIEN (ma C(2).foxitsoftware.III. nếu không thêm từ khoá này thì các liên kết trƣớc đó sẽ bị huỷ bỏ. chỉ có 1 file chính và n file phụ. Bổ sung vào file HOSO.3.n phụ (1 . Generated by Foxit PDF Creator © Foxit Software http://www. maut C(2) và 2 file MADTOC (ma C(2).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.

com For evaluation only.matinh. nhƣng không đƣợc liên kết móc xích thành vòng tròn. Chú ý.mautien. Liên kết móc xích Xét n file CSDL.foxitsoftware.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. liên kết móc xích là liên kết n . Bài toán ghép phách TSINH(sbd C(5).1)) select 0 use dmon Generated by Foxit PDF Creator © Foxit Software http://www. nsinh D) PHACH(sbd C(5).loai III.hoten.4.1 liên kết chính phị. 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.64 . diem N(4. ph C(5)) DMON(ph C(5).ten.ten. trong đó 1 file là file chính duy nhất. Ví dụ.madtoc. hoten C(27).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 . Từ lệnh SET RELATION thứ 2 trở đi phải thêm từ khoá ADDITIVE. 1 file là file phụ duy nhất.

.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.set relation to sbd into phach Browse nomodify fields hoten.dmon.sbd.foxitsoftware. Generated by Foxit PDF Creator © Foxit Software http://www.nsinh.com For evaluation only.

Sign up to vote on this title
UsefulNot useful