P. 1
NỘI DUNG MÔN HỌC Foxpro

NỘI DUNG MÔN HỌC Foxpro

|Views: 756|Likes:
Được xuất bản bởiYn Xynk

More info:

Published by: Yn Xynk on May 27, 2012
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

12/18/2012

pdf

text

original

,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

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

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

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

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

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

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

a = “thanh pho ”.<số nguyên> D N D ứ> VD.(không giao hoán) Các toán hạng có kiểu N sẽ cho ra kết quả kiểu N. là T nếu so sánh đúng. . Hai toán hạng phải có cùng kiểu. sánh. Date() <ngày 1> D D N ạng kiểu L cho ra kết quả kiểu L. 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> . ỗ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). VD. là F nếu so sánh sai. b = “Ha noi” ? a + b = „thanh pho Ha noi‟ ? len(a+b ? a – b = „thanh phoHa noi ‟ ? len(aới kiểu ngày (cùng mức ƣu tiên) Phép cộng: <ngày> + <số D N D ộng 45 ngày nữa Phép trừ: <ngày> . kết quả phép toán có kiểu L. trừ: + (giao hoán). 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sau đó chọn mục Append from. 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. 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. 2. ếu có từ khoá [BLANK] thì một bản ghi trống sẽ đƣợc chèn vào.dbf use diem go 3 insert go 1 insert before blank use diem go 4 insert before go 1 insert before blank .. 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. 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. Khi một bản ghi đƣợc chèn tại một vị trí nào đó thì kể tự đó tất cả các bản ghi cũ trong file CSDL có số thứ tự đƣợc tăng lên 1 (lùi về phía sau một vị trí).append from diem2 for dtb = 8.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.. 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. Ví dụ.

Để tiện cho ngƣời dù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.Bài giảng Hệ quản trị CSDL Fox Giáo viên: Nguyễ III. 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.3.foxitsoftware. Sau khi thực hiện xong con trỏ bản ghi ở luôn đó.com For evaluation only. Khi mở 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. bản ghi hiện tại là bản ghi đầu tiên. Phạm vi Trong một câu lệnh thao tác với bản ghi có 4 loại phạm vi đƣợc quy định ếu câu lệnh có từ khoá này thì lệnh sẽ làm việc với toàn bộ các bản ghi trong file thoả mãn theo điều kiện lọc hiện thời và vị trí con trỏ bản ghi lúc đầu không quan trọng. Trƣớc đó con trỏ bản ghi ở đâu không quan trọng. Khi xử lý file đến bản ghi nào thì bản ghi đó là bản ghi hiện tại. Chú ý.26 . ớ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. 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. ớ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. a. . Thực hiện xong con trỏ bản ghi nằm ở cuối file.Generated by Foxit PDF Creator © Foxit Software http://www. Thực hiện xong con trỏ bản ghi sẽ nằm ở cuối file. ế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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Đặt lọc cho file CSDL diem để chỉ xử lý trên các bản ghi là sinh viên nam. ệnh lọc không làm thay đổi con trỏ bản ghi liền sau đó. use diem set filter to (dtb > 5) and (thoc < 4) display all V. Generated by Foxit PDF Creator © Foxit Software http://www. Chú ý. hay sử dụng trong chƣơng trình in. Đặ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. display all Ví dụ. use diem set filter to gtinh = . do đó ta thƣờng phải điều chỉnh lại con trỏ bản ghi bằng lệnh GO TOP. Sau khi đặt lọc.Bài giảng Hệ quản trị CSDL Fox .đến con trỏ bản ghi.foxitsoftware.com For evaluation only. Đặt lọc cho file CSDL diem để chỉ xử lý trên các bản ghi có dtb > 5 và thoc < 4.2. 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. ọc sẽ làm liên tục hoá các bản ghi. Ví dụ. 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ụ. Nếu có to <tên biến> giá trị tính đƣợc sẽ đƣợc gán cho <tên biến>. use diem count for gtinh to sonam ? sonam/reccount() * 100 V. 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 không có phần to <tên biến> thì giá trị tính đƣợc sẽ hiện ra màn hình. Tính % số học sinh nam có trong lớp.4.nsinh.49 .dtb display all V.3. Nếu <tên biến> chƣa có sẽ sinh ra. nếu có rồi sẽ in đè lên.hoten. 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(). use diem set fields to masv.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. ệ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. 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>). Ví dụ.

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

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

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.foxitsoftware.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. Generated by Foxit PDF Creator © Foxit Software http://www. 8. 6. ếu trƣờng tiếp nhận không đủ rộng để lƣu trữ kết quả thì trƣờng này sẽ bị tràn số. 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. 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.52 . 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. use diem sort to sapxep on thoc for thoc > 4 . 9.đƣợc lệnh TOTAL xét đế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>. 10 trong môn thoc. 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. công việc A là công việc cộng dồn. Tính tổng số sinh viên đạt điểm 5. Ví dụ. 7.com For evaluation only. 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. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->