Bài giảng Foxpro

Visual FoxPro là một công-cụ phát-triển và ngôn-ngữ lập-trình (Development tools and languages), nó sử dụng ngôn ngữ lập-trình hướng-đối-tượng (oop : object-oriented programming) của Microsoft. Được phát triển từ FoxPro (có nguồn gốc từ FoxBASE – bắt đầu phát triển từ 1984 bởi Fox Technologies, sử dụng phong-cách lập-trình theo thủ-tục (programming in the procedural style)). Phiên bản cuối cùng của FoxPro (2.6) làm việc trên Mac OS, MS-DOS, Windows và Unix. Visual FoxPro 3.0 là phiên bản "Visual" đầu tiên, có thể chạy trong Mac và Windows, các phiên bản sau chỉ dùng trong Windows. Visual FoxPro, ký hiệu vắn tắt là VFP, là một hệ quản trị cơ sở dữ liệu (Database Management System -DBMS) trực quan. Nó không chỉ là một hệ DBMS mà còn là một ngôn ngữ lập trình có triển vọng. Nó có thể được dùng để viết cả các ứng dụng web. Tháng 12 năm 2005, VFP đã lọt vào top 20 trong TIOBE's Programming Community Index, và tháng 8 2006 nó ở vị trí 14, được coi như một ngôn ngữ hạng "A".

ppt148 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 8173 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Foxpro, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
sở dữ liệu: Là phần mềm cung cấp môi trường thuận lợi và hiệu quả để tạo lập, lưu trữ và tìm kiếm thông tin của CSDL, được gọi là hệ quản trị CSDL (hệ QTCSDL-DataBase Manegement System) Visual FoxPro là gì? Visual FoxPro là một hệ quản trị CSDL kiểu quan hệ do hãng Microsoft sản xuất. - Foxpro ra đời cuối năm 1980. Lúc đầu là các phiên bản thi hành trên DOS ( Foxpro Version 1.0 đến 2.6). Sau đó là các phiên bản thi hành trên Windows. Vào cuối những năm 1990 hãng Microsft nâng cấp Foxpro lên thành một hệ quản trị CSDL cho phép lập trình hướng đối tượng và lấy tên là Visual FoxPro FoxBase --> FoxPro --> Visual FoxPro Chương 1. Làm quen với Visual FoxPro 2. Tệp CSDL + Tên: theo luật đặt tên của Windows nhưng phần mở rộng ngầm định là DBF (*.DBF). Ví dụ: DMTKHOAN.BDF, HOSOSV.DBF, HOCKY1.DBF + Cấu trúc: Có thể xem tệp CSDL như một bảng hai chiều, mỗi cột chứa một giá trị đặc trưng cho một đặc điểm của đối tượng quản lý mà ta gọi đó là TRƯỜNG (Field). Mỗi dòng chứa một bộ các giá trị mô tả một đối tượng quản lý mà ta sẽ gọi đó là BẢN GHI(Record). Chương 1. Làm quen với Visual FoxPro 2. Tệp CSDL Một trường của tệp CSDL có 4 đặc trưng sau: + Tên trường (Field name) : Quy tắc đặt tên: - Từ 1 đến 10 ký tự. - Bắt đầu bằng một ký tự chữ - Các ký tự tiếp theo (nếu có) phải là ký tự chữ, số, dấu gạch dưới. Ví dụ: ma_so_cb, nam_1990, _hosocanhan Chương 1. Làm quen với Visual FoxPro 2. Tệp CSDL + Kiểu trường (Field Type) Chương 1. Làm quen với Visual FoxPro 2. Tệp CSDL + Độ rộng trường (Field Width) Continue Chương 1. Làm quen với Visual FoxPro 2. Tệp CSDL + Phần thập phân (Field Decimal): Chỉ mô tả khi trường là kiểu số; Phần thập phân All Programs --> Microsoft Visual Foxpro b. Foxpro * FoxPro for Windows Start --> All Programs --> Foxpro for Windows * FoxPro for DOS Bước 1: Cho máy chạy với môi trường DOS Bước 2: Chọn thư mục chứa các tệp cơ bản của FoxPro làm thư mục hoạt động. Bước 3: thi hành tệp FOXPROX.EXE Chương 1. Làm quen với Visual FoxPro 3. Khởi động Visual FoxPro Mô tả màn hình chính của Visual FoxPro * Trên đỉnh - Thanh tiêu đề (Title Bar) - Thanh menu chính (Menu Bar) - Thanh Công cụ chuẩn (Standard Tools Bar) * Vùng lớn nhất gọi là vùng làm việc: Hiện các thông báo của FoxPro hoặc kết quả thao tác của người sử dụng * Cửa sổ lệnh (Command): Nơi mà người sử dụng đưa vào các lệnh của FoxPro để thao tác với CSDL Chương 1. Làm quen với Visual FoxPro 4. Các chế độ làm việc Có 2 chế độ là hội thoại và chương trình * Chế độ hội thoại: Người sử dụng lần lượt đưa vào từng lệnh. FoxPro sẽ thực hiện xong một lệnh rồi chờ người sử dụng đưa vào một lệnh khác. * Chế độ chương trình: Người sử dụng lập trình và lưu trữ chương trình vào tệp có dạng *.PRG và sau đó trên cửa sổ lệnh gọi thực hiện bằng lệng DO Chương 1. Làm quen với Visual FoxPro 5. Các loại cửa sổ của FoxPro Có nhiều loại nhưng quan trọng nhất là ba loại cửa sổ * Cửa sổ lệnh * Cửa sổ hội thoại * Cửa sổ xuất dữ liệu Chương 1. Làm quen với Visual FoxPro 6. Các thao tác cơ bản trên cửa sổ Chọn cửa sổ hoạt động. Kích chuột vào thanh tiêu đề hoặc ấn Ctrl-F1 Dịch chuyển: Làm như với cửa sổ của Windows Thay đổi kích thước.Làm như với cửa sổ của Windows (Nếu làm với Foxpro for DOS thì ấn Ctrl-F10 để mở rộng cửa sổ toàn màn hình hoặc thu về kích thước ban đầu) Ẩn / hiện: Làm như với cửa sổ của Windows Chú ý: Trong bất kỳ trường hợp nào nếu ta ấn Ctrl-F2 thì xuất hiện cửa sổ lệnh. Chương 1. Làm quen với Visual FoxPro 7. Ra khỏi FoxPro Ngoài những cách thông thường của Windows ta có thể dùng lệnh QUIT. Chương 1. Làm quen với Visual FoxPro 1. Thiết lập tệp CSDL. 2. Mở tệp và vào dữ liệu. 3. Đọc tệp. 4. Di chuyển con trỏ bản ghi. 5. Đóng tệp. Chương 2. Những thao tác ban đầu với tệp CSDL Thiết lập tệp CSDL 1.1. Thiết kế cấu trúc tệp Thực hiện trên giấy theo mẫu: Tên tệp:______.DBF 1.2. Các bước thực hiện trên máy * Đưa vào lệnh CREATE * Khai báo cấu trúc * Kết thúc khai báo cấu trúc (Ctrl-W) * Kết thúc lệnh. Ví dụ: Tệp HSCB.DBF CREATE HSCB Chương 2. Những thao tác ban đầu với tệp CSDL 2. Mở tệp và vào dữ liệu. a. Mở tệp * Vai trò: Muốn thao tác với một tệp CSDL thì động tác đầu tiên của người sử dụng là phải mở tệp. * Lệnh mở tệp: USE [][] Ví dụ: USE HSCANBO b. Vào dữ liệu Sau khi đã mở tệp ta sử dụng lệnh BROWSE Để nhập một bản ghi ta thực hiện các thao tác sau: - Ấn Ctrl-Y - Nhập thông tin của bản ghi - Kết thúc việc nhập dữ liệu bằng Ctrl-W Chương 2. Những thao tác ban đầu với tệp CSDL 3. Đọc tệp - Mở tệp - Dùng một trong các lệnh sau: * LIST [TO PRINT] * DISPLAY ALL * BROWSE Ví dụ: USE HSCB LIST MSCB,HD,TEN,HSL Chương 2. Những thao tác ban đầu với tệp CSDL 4. Di chuyển con trỏ bản ghi Bản ghi hiện thời: Trên tệp CSDL đang mở Visual Foxpro chỉ sẵn sàng làm việc (và cho phép cập nhật) với một bản ghi và ta gọi đó là bản ghi hiện thời. Khi mới mở tệp CSDL thì bản ghi hiện thời là bản ghi đầu tiên. Con trỏ bản ghi: Con trỏ bản ghi là con trỏ dùng để chỉ đến bản ghi hiện thời. Chương 2. Những thao tác ban đầu với tệp CSDL 4. Di chuyển con trỏ bản ghi. Lệnh di chuyển con trỏ bản ghi a. Lệnh GO Cú pháp : GO GO TOP GO BOTTOM Giải thích: GO : Di chuyển con trỏ đến bản ghi có số hiệu (n là thứ tự vật lý của bản ghi trên tệp) Ví dụ: USE HSCANBO GO 5 ... GO 16 Chương 2. Những thao tác ban đầu với tệp CSDL 4. Di chuyển con trỏ bản ghi. GO TOP: Di chuyển con trỏ đến bản ghi đầu tiên GO BOTTOM: Di chuyển con trỏ đến bản ghi cuối cùng. Các hàm hỗ trợ: * RECNO(): Trả về số hiệu bản ghi hiện thời * EOF(): Trả về giá trị .T. nếu con bản ghi nằm sau bản ghi cuối cùng. Các vị trí khác là .F. * BOF(): Trả về giá trị .T. nếu con bản ghi nằm trước bản ghi đầu tiên. Các vị trí khác là .F. Ví dụ: USE HSCANBO ?RECNO() 1 GO 14 ?RECNO() 14 ?BOF() .F. Chương 2. Những thao tác ban đầu với tệp CSDL 4. Di chuyển con trỏ bản ghi. b. Lệnh SKIP Cú pháp: SKIP [] Chức năng: Di chuyển con trỏ bản ghi tính từ bản ghi hiện thời. Giải thích: Nếu n là số dương thì di chuyển về cuối tệp n bản ghi tính từ bản ghi hiện thời; Nếu n là số âm thì di chuyển về đầu tệp n bản ghi tính từ bản ghi hiện thời. Chú ý: SKIP = SKIP 1 Ví dụ: USE HOSOCB SKIP 6 ? RECNO() 7 SKIP -2 ? RECNO() 5 Chương 2. Những thao tác ban đầu với tệp CSDL 5. Đóng tệp. * Khi không làm việc với tệp CSDL nữa, ta phải tiến hành đóng tệp bằng lệnh: USE * Việc mở tệp khác cũng đồng nghĩa với đóng tệp trước đó Ví dụ: USE TAIKHOAN .... USE K_HANG .... USE Chương 2. Những thao tác ban đầu với tệp CSDL 1. Biểu thức logic. 2. Sử dụng LIST và DISPLAY với điều kiện tìm kiếm. 3. Tìm kiếm tuần tự. 4. Đặt chế độ chính xác khi tìm kiếm. Chương 3. Tìm kiếm dữ liệu 1. Biểu thức logic. .Định nghĩa .Các cách thiết lập biểu thức logic. Chương 3. Tìm kiếm dữ liệu Biểu thức logic Định nghĩa Biểu thức logic là biểu thức cho chúng ta một trong hai giá trị hoặc .T. hoặc .F. Chương 3. Tìm kiếm dữ liệu Biểu thức logic Các cách thiết lập biểu thức logic Hằng logic (.T./.F.), Biến kiểu logic, Hàm cho kết quả kiểu Logic. Hai biểu thức cùng loại (Ký tự, số, ngày) quan hệ với nhau bởi các phép so sánh >, =, Các biểu thức logic quan hệ với nhau bởi các phép toán logic NOT (!), AND, OR Ví dụ: LOCATE FOR LOCATE FOR .T. LOCATE FOR ten = ’Thanh’ LOCATE FOR tdvh=12 LOCATE FOR GDINH LOCATE FOR !GDINH LOCATE FOR GDINH AND TDVH=12 LOCATE FOR NGAY_S [TO PRINT] hoặc DISPLAY FOR Giải thích: Lệnh sẽ cho hiện lên màn hình những bản ghi thoả mãn Ví dụ: SET DATE FRENCH SET CENTURY ON USE HSCANBO LIST FOR TEN=’Thanh’ DISPLAY FOR TDVH>=10 LIST FOR NGAY_S>=CTOD(‘01/01/1986’) AND NGAY_S Giải thích: Lệnh đặt con trỏ tới bản ghi đầu tiên của tệp CSDL đang mở thỏa mãn 3.2. Hàm FOUND() Cho giá trị .T. nếu lệnh LOCATE trước đó tìm kiếm thành công, ngược lại cho giá trị .F. 3.3. Lệnh CONTINUE Cho phép tìm kiến bản ghi tiếp theo của tệp CSDL đang mở thoả mãn điều kiện tìm kiếm của lệnh LOCATE trước đó. Ví dụ: USE HSCANBO LOCATE FOR HSL>=3 ? FOUND() ? RECNO() DISPLAY CONTINUE ?FOUND() Chương 3. Tìm kiếm dữ liệu 4. Đặt chế độ chính xác khi tìm kiếm Lệnh xác lập môi trường SET EXACT ON/OFF Giải thích: Môi trường mặc định là OFF Nếu môi trường được xác lập là OFF thì việc so sánh giữa hai biểu thức ký tự không chú ý đến độ dài hay nói cách khác chỉ căn cứ vào biểu thức có độ dài ngắn hơn. Nếu môi trường được xác lập là ON thì việc so sánh giữa hai biểu thức ký tự có chú ý đến độ dài hay nói cách khác hai biểu thức chỉ bằng nhau khi chúng trùng nhau. Ví dụ: SET EXACT OFF ? “Ha” = “Hanh” .T. SET EXACT ON ? “Ha” = “Hanh” .F. Chương 3. Tìm kiếm dữ liệu 1. Xem và in cấu trúc. 2. Sửa cấu trúc tệp. 3. Sao chép cấu trúc tệp. 4. Tạo một tệp CSDL từ tệp lưu cấu trúc. Chương 4. Thao tác với cấu trúc tệp CSDL 1. Xem và in cấu trúc Để xem cấu trúc của tệp CSDL đang mở ta sử dụng lệnh LIST STRUCTURE [TO PRINT] hoặc DISPLAY STRUCTURE Lệnh sẽ cho hiển thị cấu trúc của tệp CSDL đang mở lên màn hình. Nếu có tuỳ chọn TO PRINT cấu trúc đó sẽ được in ra máy in. Thông tin về cấu trúc tệp bao gồm: Tên trường (Fieldname), kiểu trường (Type), độ rộng trường (Width) và phần thập phân (Decimal) Ví dụ: USE HSCANBO LIST STRU Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp Việc sửa đổi cấu trúc của một tệp CSDL xãy ra khi ta có nhu cầu thực hiện một hay nhiều thao tác sau: .Sửa tên một trường .Sửa kiểu một trường .Sửa độ rộng một trường .Sửa phần thập phân một trường .Chèn thêm một trường mới .Xoá một trường đang tồn tại .Chắp thêm một trường mới Các bước tiến hành như sau: Bước 1: Mở tệp CSDL muốn sửa đổi cấu trúc USE Bước 2: Đưa vào lệnh MODIFY STRUCTURE Bước 3: Thực hiện các thao tác sửa đổi nêu trên. Bước 4: Ấn Ctrl+W hoặc chọn OK để kết thúc Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. Sửa tên một trường Bước 1: Đưa con trỏ vào ô tên trường cần sửa Bước 2: Tiến hành sửa giống như sửa một văn bản bình thường Chương 4. Thao tác với cấu trúc tệp CSDL Sửa kiểu một trường Bước 1: Đưa con trỏ vào ô kiểu trường cần sửa Bước 2: Tiến hành lựa chọn kiểu trường thích hợp Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. Sửa độ rộng một trường Bước 1: Đưa con trỏ vào ô độ rộng trường cần sửa Bước 2: Tiến hành lựa chọn độ rộng trường thích hợp Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. Sửa phần thập phân một trường Bước 1: Đưa con trỏ vào ô phần thập phân trường cần sửa Bước 2: Tiến hành lựa chọn phần thập phân thích hợp Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. Chèn thêm một trường mới Bước 1: Đưa con trỏ vào bất kỳ ô nào trên dòng cần chèn trường mới Bước 2: Chọn nút Insert ta sẽ thấy xuất hiện một trường mới với tên là NewFld ở vị trí muốn chèn Bước 3: Tiến hành sửa lại tên, kiểu, độ rộng, phần thập phân cho phù hợp Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. .Xoá một trường đang tồn tại Bước 1: Đưa con trỏ vào bất kỳ ô nào trên dòng của trường muốn xoá Bước 2: Chọn nút Delete ta sẽ thấy trường cần xoá biến mất Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. Chắp thêm một trường mới Bước 1: Đưa con trỏ về sau dòng của trường cuối cùng Bước 2: Tiến hành đưa vào tên, kiểu, độ rộng, phần thập phân của trường cần chắp cho phù hợp Chương 4. Thao tác với cấu trúc tệp CSDL 2. Sửa cấu trúc tệp. 3. Sao chép cấu trúc tệp - Sao chép cấu trúc: Với một tệp CSDL đang tồn tại (tệp nguồn) ta có thể tạo ra một tệp mới có cấu trúc bao gồm một phần hoặc toàn bộ các trường của tệp nguồn như sau: USE COPY STRUCTURE TO [FIELDS ] Nếu có tuỳ chọn [FIELDS ] thì chỉ bao gồm các trường của tệp nguồn được liệt kê trong danh sách, nếu không có tuỳ chọn này thì cấu trúc của tệp mới hoàn toàn giống với cấu trúc của tệp nguồn. - Sao lưu cấu trúc: Để lưu trữ cấu trúc của một tệp CSDL ta có thể tạo ra một tệp CSDL khác lưu cấu trúc của tệp đó như sau: COPY STRUCTURE TO EXTENDED Cấu trúc của tệp lưu cấu trúc có dạng như sau: Chương 4. Thao tác với cấu trúc tệp CSDL 4. Tạo một tệp CSDL từ tệp lưu cấu trúc Khi đã có tệp lưu cấu trúc ta có thể tạo ra một tệp CSDL mới với cấu trúc đã lưu bằng lệnh sau: CREATE FROM Chương 4. Thao tác với cấu trúc tệp CSDL 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro 2. Các lệnh cập nhật dữ liệu 3. Các lệnh bổ sung dữ liệu 4. Các lệnh loại bỏ dữ liệu Chương 5. Sửa đổi dữ liệu 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro Câu lệnh tổng quát: [] [FIELDS ] [FOR ] [WHILE ] 1.1. Tuỳ chọn phạm vi 1.2. Tùy chọn FIELDS 1.3. Tùy chọn FOR và WHILE Chương 5. Sửa đổi dữ liệu 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro 1.1. Tuỳ chọn phạm vi Trong các lệnh của Foxpro tùy chọn phạm vi có nghĩa là vùng các bản ghi liên tiếp nhau mà lệnh sẽ tác động lên đó, nó sẽ mang một trong bốn giá trị và có ý nghĩa sau đây: ALL - Tất cả các bản ghi Record - Bản ghi có số hiệu n NEXT - n bản ghi tính từ bản ghi hiện thời REST - Từ bản ghi hiện thời đến cuối tệp. Chú ý: Với mỗi lệnh của Foxpro sẽ có một phạm vi ngầm định. Phạm vi này có thể là ALL hoặc bản ghi hiện thời. Ví dụ: Lệnh LIST có phạm vi ngầm định là ALL còn DISPLAY có phạm vi ngầm định là bản ghi hiện thời. Chương 5. Sửa đổi dữ liệu 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro 1.1. Tuỳ chọn phạm vi Ví dụ: Tệp HSCB.DBF có 20 bản ghi USE HSCB DISP ALL DISP Record 5 GO 10 DISP Next 5 GO 18 DISP Rest Fox Chương 5. Sửa đổi dữ liệu 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro 1.2. Tùy chọn FIELDS Không có tùy chọn này thì lệnh sẽ tác động lên tất cả các trường của tệp CSDL đang mở còn nếu có tùy chọn này thì lệnh chỉ tác động lên những trường của tệp đó có mặt trong danh sách. Tất nhiên tất cả những trường được liệt kê này phải tồn tại trong tệp đang mở. Ví dụ: USE HSCB LIST FIELDS MSCB,HD,TEN Fox Chương 5. Sửa đổi dữ liệu 1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro 1.3. Tùy chọn FOR và WHILE a. FOR Lệnh chỉ tác động lên các bản ghi thỏa mãn b. WHILE Khi gặp bản ghi đầu tiên không thỏa mãn thì lệnh kết thúc. c. Sự khác nhau của hai tùy chọn FOR và WHILE Hai tùy chọn này đều chỉ cho phép lệnh tác động lên các bản ghi thỏa mãn nhưng chúng khác nhau ở chỗ khi dùng tùy chọn FOR thì Foxpro sẽ tuyển chọn tất cả các bản ghi của tệp CSDL để tác động lên những bản ghi thỏa mãn còn tùy chọn WHILE thì cho phép lệnh bắt đầu từ đầu tệp để tác động lên các bản ghi thỏa mãn nhưng ngay lần đầu tiên gặp bản ghi không thỏa mãn thì lệnh sẽ kết thúc ngay. Ví dụ: USE HSCB LIST FOR HSL>3 LIST WHILE HSL>3 Fox Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.1. Lệnh EDIT 2.2. Lệnh BROWSE 2.3. Lệnh REPLACE Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.1. Lệnh EDIT Cú pháp: EDIT [] [FIELDS ] [FOR ] [WHILE ] Giải thích: Phạm vi ngầm định là ALL. Lệnh cho phép sửa đổi dữ liệu của từng bản ghi với khuôn dạng giống như khi ta làm việc với lệnh APPEND. Ví dụ: USE HSCB EDIT Fox Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.2. Lệnh BROWSE Cú pháp: BROWSE [] [FIELDS ] [FOR ] [LOCK] [FREEZE ] [NOAPPEND] [NOEDIT] [NOMODIFY] [FONT , , ] Giải thích: Phạm vi ngầm định là ALL. Lệnh cho phép sửa đổi dữ liệu của từng bản ghi với khuôn dạng là một bảng hai chiều mà mỗi cột là một trường và mỗi dòng là một bản ghi. Continue Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.2. Lệnh BROWSE LOCK : Chia màn hình thành hai cửa sổ, cố định n trường bên trái tệp ở cửa sổ trái và các trường còn lại ở cửa sổ phải. Ta có thể di chuyển ngang các trường trên cửa sổ phải mà không là di chuyển ngang các trường trên cửa sổ trái. Tùy chọn này được dùng khi bề ngang của tệp CSDL đã vượt quá bề ngang màn hình. FREEZE : Chỉ cho phép con trỏ di chuyển trên trường . Tùy chọn này đươc dùng trong trường hợp ta chỉ tiến hành sửa đổi trên một trường. NOAPPEND: Không cho phép thêm bản ghi trống bằng cách ấn tổ hợp phím Ctrl-Y. NOEDIT, NOMODIFY: Không cho phép sửa đổi nội dung của các bản ghi đã tồn tại trước. Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.2. Lệnh BROWSE Ví dụ: USE HSCB BROW LOCK 3 BROW FREE HSL BROW NOAP NOMO Fox Chương 5. Sửa đổi dữ liệu 2. Các lệnh cập nhật dữ liệu 2.3. Lệnh REPLACE Cú pháp: REPLACE [] WITH [, WITH ...] [FOR ] Giải thích: Phạm vi ngầm định là bản ghi hiện thời. Trên mỗi bản ghi mà lệnh có hiệu lực, Lệnh thay thế giá trị bằng , bằng ... Ví dụ: Tính lương USE BLUONG REPL ALL LCB WITH HSL*290000, LPC WITH HSPC*290000 REPL ALL TONG WITH LCB+LPC Fox Chương 5. Sửa đổi dữ liệu 3. Các lệnh bổ sung dữ liệu 3.1 Lệnh APPEND 3.2 Lệnh BROWSE 3.3 Lệnh INSERT Cú pháp: INSERT [BLANK] [BEFORE] Giải thích: Lệnh chèn một bản ghi mới. Nếu có tùy chọn BLANK bản ghi mới là rỗng, nếu không thì phải điền dữ liệu cho bản ghi đó. Nếu có tùy chọn BEFORE thì bản ghi được chèn ở trên bản ghi hiện thời, nếu không thì ở dưới bản ghi hiện thời. Ví dụ: USE HSCB GO 5 INSERT BLANK BEFORE Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu Việc xóa trong FoxPro có hai loại xóa logic và xóa vật lý. 4.1. Xóa logic (Đánh dấu xóa) 4.2. Phục hồi các bản ghi bị xóa logic. 4.3. Hàm DELETED() 4.4. Lệnh SET DELETED ON/OFF 4.5. Xóa vật lý Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu 4.1. Xóa logic (Đánh dấu xóa) a. Khái niệm: Xóa logic hay đánh dấu xóa là chỉ đánh dấu một hoặc nhiều bản ghi để sau đó tuỳ trường hợp ta có thể xác lập môi trường để cho chúng có hiệu lực tác động lên hay không. b. Lệnh đánh dấu xóa DELETE [][FOR ][WHILE ] Phạm vi ngầm định là bản ghi hiện thời. Lệnh sẽ xóa các bản ghi trong phạm vi thỏa mãn hoặc kết thúc ngay khi gặp bản ghi không thỏa mãn Ví dụ: USE HSCB GO 6 DELE DELE FOR RECN()=2 OR RECN()=8 Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu 4.2. Phục hồi các bản ghi bị xóa logic. Các bản ghi bị đánh dấu xóa sẽ được phục hồi bởi lệnh: RECALL [][FOR ][WHILE ] Phạm vi ngầm định là bản ghi hiện thời. Lệnh sẽ phục hồi các bản ghi trong phạm vi thỏa mãn hoặc kết thúc ngay khi gặp bản ghi không thỏa mãn . Ví dụ: USE HSCB GO 8 RECALL RECALL ALL Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu 4.3. Hàm DELETED() Cho kết quả là .T. nếu bản ghi hiện thời bị đánh dấu xóa, ngược lại cho giá trị .F. Ví dụ: USE HSCB ? DELETED() Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu 4.4. Lệnh SET DELETED ON/OFF Xác lập môi trường đối với các bản ghi bị đánh dấu xóa. Nếu thiết lập bằng lệnh SET DELE ON thì các bản ghi bị đánh dấu xóa sẽ không có hiệu lực đối với các lệnh tác động lên tệp. Nếu SET DELE OFF thì tất cả các bản ghi trên tệp đều như sau không phân biệt bị đánh dấu xóa hay không. Ngầm định là SET DELE OFF Ví dụ: USE HSCB GO 6 DELE REST SET DELE ON BROW SET DELE OFF BROW Chương 5. Sửa đổi dữ liệu 4. Các lệnh loại bỏ dữ liệu 4.5. Xóa vật lý Là loại bỏ hẵn khỏi tệp CSDL và không thể phục hồi bằng lệnh RECALL. a. Lệnh PACK Các bản ghi bị đánh dấu xóa sẽ bị xóa vật lý nếu ta dùng lệnh PACK. b. Lệnh ZAP Tất cả các bản ghi trong tệp CSDL không phân biệt có bị đánh dấu xóa hay không, sẽ bị xóa vật lý khi ta dùng lệnh ZAP. Ví dụ: USE HSCB DELE FOR HSL=0 PACK Ví dụ: USE HSCB ZAP Chương 5. Sửa đổi dữ liệu 1. Khái niệm đối tượng, tiêu chuẩn và trình tự sắp xếp. 2. Sắp xếp bằng lệnh SORT. 3. Lập tệp chỉ số. 4. Tìm kiếm nhanh. * FIND * SEEK 5. Dùng nhiều tệp chỉ số. 6. Bài tập Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 1. Khái niệm đối tượng, tiêu chuẩn và trình tự sắp xếp Các bản ghi được đưa vào tệp CSDL theo thứ tự xuất hiện của chúng về thời gian. Tuy nhiên trong mỗi trường hợp cụ thể chúng ta lại muốn các bản ghi trong tệp CSDL xuất hiện theo một trình tự nào đó để thuận lợi cho việc tìm kiếm dữ liệu. Trong Foxpro việc sắp xếp theo các nguyên tắc sau: Đối tượng: Các bản trong tệp CSDL đang mở. Tiêu chuẩn: Giá trị của một hay nhiều trường dữ liệu. Trình tự: Tăng dần hoặc giảm dần theo mỗi trường. Ví dụ: Trong một lớp học. Sắp xếp bàn ghế hay học sinh. Nếu sắp xếp theo học sinh thì dựa vào tuổi hay chiều cao. Sắp tăng dần hay giảm dần. Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 2. Sắp xếp bằng lệnh SORT Cú pháp: SORT TO ON [/A][/D][/C][, [/A][/D][/C] ...] [FOR ] Giải thích: : Là tệp CSDL chứa kết quả sắp xếp. Việc sắp xếp được tiến hành theo tứ tự ưu tiên , ... Nếu sau có tuỳ chọn /A nghĩa là sắp tăng dần, /D nghĩa là sắp giảm dần, /C nghĩa là không phân biệt giữa chữ hoa và chữ thường (chỉ dùng cho trường kiểu ký tự và kết hợp /AC hoặc /DC). FOR : Chỉ sắp xếp cho những bản ghi thỏa mãn Ví dụ: USE HSCB SORT TO SXHSL ON HSL SORT TO SXHT ON TEN/AC, HD/AC, NSINH/D SORT TO SXTDVH ON TDVH FOR HSL>=3 Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 3. Lập tệp chỉ số 3.1. Tệp chỉ số: Có tên tổng quát *.IDX, có chức năng điều khiển thứ tự xuất hiện của các bản ghi trên tệp CSDL theo một trình tự nào đó. 3.2. Lệnh lập chỉ số: Cú pháp: INDEX ON TO Giải thích: là một biểu thức mà trong đó tồn tại ít nhất một toán hạng là trường của tệp CSDL. Lệnh thiết lập tệp chỉ số có tên là để điều khiển tệp CSDL đang mở xuất hiện các bản ghi tăng dần theo giá trị của Ví dụ: USE HSCB INDEX ON HSL TO T1 Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 4. Tìm kiếm nhanh Các tệp CSDL khi đang được chỉ số theo một trường nào đó chúng ta có thể tìm kiếm nhanh bằng lệnh: FIND hoặc SEEK Việc xác định kết quả của các lệnh FIND và SEEK cũng được thông qua hàm FOUND(), nhưng không thể dùng lệnh CONTINUE. Ví dụ: USE HSCB INDE ON TEN TO T1 FIND Hung ?FOUND() SEEK ‘Hung’ ?FOUND()  INDE ON HSL TO T2 SEEK 3.62 ?FOUND() INDE ON NSINH TO T3 SEEK CTOD(‘25/10/1965’) ?FOUND() Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 5. Dùng nhiều tệp chỉ số Một tệp CSDL có nhiều tệp chỉ số có thể mở tệp CSDL đó đồng thời với nhiều tệp chỉ số theo một trong hai cách: Cách 1: USE INDEX Cách 2: USE SET INDEX TO Khi mới mở tệp thì tệp đầu tiên trong nắm quyền điều khiển tệp CSDL ta gọi đó là tệp chủ động. Để thay đổi vai trò chủ động của một tệp chỉ số nào đó trong danh sách ta dùng lệnh: SET ORDER TO Trong đó n là thứ tự của tệp chỉ số trong danh sách. Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 5. Dùng nhiều tệp chỉ số Ví dụ: USE HSCB INDEX T1,T2,T3 FIND Hung ?FOUND() SET ORDER TO 3 SEEK CTOD(‘25/10/1965’) ?FOUND() SET ORDER TO 2 SEEK 3.62 ?FOUND() Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh 6. Bài tập Theo từng nhóm tiến hành thảo luận và viết thu hoạch về phân biệt các lệnh SORT, INDEX và LOCATE, FIND, SEEK và trình bày theo mẫu sau: Chương 6. Sắp xếp, chỉ số và tìm kiếm nhanh Kết xuất thông tin trong tệp CSDL là từ dữ liệu hiện có trong tệp CSDL đó ta lấy ra những thông tin mang tính thống kê như: Đếm số lượng các bản ghi thoả mãn một điều kiện nào đó; tính tổng hoặc giá trị trung bình của một hoặc nhiều trường kiểu số; tính tổng một hoặc nhiều trường kiểu số của từng nhóm bản ghi theo một trường khoá nào đó. Chương 7. Kết xuất thông tin trong tệp CSDL 1. Đếm số lượng bản ghi 2. Tính tổng giá trị các trường kiểu số 3. Tính giá trị trung bình các trường kiểu số 4. Tính tổng bộ phận. 5. Đặt lọc dữ liệu. 6. Giới hạn trường dữ liệu. Chương 7. Kết xuất thông tin trong tệp CSDL Đếm số lượng bản ghi 1.1. Lệnh COUNT 1.2. Hàm RECCOUNT() Chương 7. Kết xuất thông tin trong tệp CSDL Đếm số lượng bản ghi 1.1. Lệnh COUNT Để đếm số lượng bản ghi trong một tệp CSDL thỏa mãn một điều kiện nào đó ta sử dụng lệnh: COUNT [][FOR ][TO ] Giải thích: Phạm vi ngầm định là ALL. Lệnh đếm số lượng các bản ghi trong thỏa mãn . Nếu có tuỳ chọn TO (biến bộ nhớ) thì kết quả được ghi vào , ngược lại kết quả được ghi ra màn hình. Ví dụ: USE HSCB COUNT FOR HSL>=4 COUNT FOR NSINH và FOR có nghĩa là đếm số lượng các bản ghi đang hiệu lực trên tệp CSDL đang mở, nhưng nói chung là nó không cho cùng kết quả với hàm RECCOUNT() Ví dụ: USE HSCB DELE FOR HSL][][TO ][FOR ] Giải thích: Phạm vi ngầm định là ALL. Nếu không có tuỳ chọn thì tất cả các trường kiểu số đều được tính tổng, nếu có thì chỉ tính tổng cho những trường được liệt kê trong danh sách. Nếu có tuỳ chọn TO (danh sách biến bộ nhớ) thì các kết quả được lưu vào trong danh sách biến bộ nhớ. Chú ý rằng số lượng biến bộ nhớ được sử dụng trong danh sách này phải bằng đúng số lượng các trường kiểu số được tính tổng và chúng tương ứng với nhau theo thứ tự được liệt kê trong cả hai danh sách. Nếu không sử dụng tuỳ chọn này thì kết quả được đưa lên màn hình. Continue Chương 7. Kết xuất thông tin trong tệp CSDL 2. Tính tổng giá trị các trường kiểu số Ví dụ: USE BLUONG SUM SUM LCB,LPC,TONG TO TLCB,TLPC,TTONG SUM FOR KHOA=’CNTT’ Chương 7. Kết xuất thông tin trong tệp CSDL 3. Tính giá trị trung bình các trường kiểu số Để tính giá trị trung bình các trường kiểu số của một tệp CSDL đang mở ta sử dụng lệnh: AVERAGE [][][TO ][FOR ] Giải thích: Phạm vi ngầm định là ALL. Nếu không có tuỳ chọn thì tất cả các trường kiểu số đều được tính giá trị trung bình, nếu có thì chỉ tính giá trị trung bình cho những trường được liệt kê trong danh sách. Nếu có tuỳ chọn TO (danh sách biến bộ nhớ) thì các kết quả được lưu vào danh sách biến bộ nhớ. Chú ý rằng số lượng biến bộ nhớ được sử dụng trong danh sách này phải bằng đúng số lượng các trường kiểu số được tính giá trị trung bình và chúng tương ứng với nhau theo thứ tự được liệt kê trong cả hai danh sách. Nếu không sử dụng tuỳ chọn này thì kết quả được đưa lên màn hình. Chương 7. Kết xuất thông tin trong tệp CSDL 3. Tính giá trị trung bình các trường kiểu số Ví dụ: USE BLUONG AVERAGE AVERAGE LCB,LPC,TONG TO TLCB,TLPC,TTONG AVERAGE FOR KHOA=’CNTT’ Chương 7. Kết xuất thông tin trong tệp CSDL 4. Tính tổng bộ phận. 4.1. Khái niệm 4.2. Lệnh TOTAL 4.3. Cơ chế thực hiện 4.4. Ví dụ Chương 7. Kết xuất thông tin trong tệp CSDL 4. Tính tổng bộ phận 4.1. Khái niệm Tính tổng bộ phận nghĩa là tính tổng các trường kiểu số cho các bản ghi có cùng một giá trị khóa cho trước. Mỗi giá trị khóa lập thành một tổng. Khóa ở đây là một trường của tệp CSDL. Ví dụ: Trên tệp BLUONG.DBF khi ta cần tính lương theo từng phòng, khoa. Điều đó có nghĩa là tính tổng của các bản ghi có cùng một giá trị trên trường KHOA. Chương 7. Kết xuất thông tin trong tệp CSDL 4. Tính tổng bộ phận 4.2. Lệnh TOTAL TOTAL ON TO [FOR ][FIELDS ] Giải thích: Lệnh tính tổng bộ phận cho các bản ghi có cùng một giá trị nằm liên tiếp nhau lập thành một bản ghi tổng và ghi vào . Nếu có tuỳ chọn FOR thì chỉ có những bản ghi thỏa mãn mới được tính tổng bộ phận. Nếu có tuỳ chọn FIELDS thì việc tính tổng bộ phận chỉ tiến hành trên những trường được liệt kê trong danh sách. có cấu trúc hoàn toàn giống với cấu trúc của tệp đang mở. Chương 7. Kết xuất thông tin trong tệp CSDL 4. Tính tổng bộ phận 4.3. Cơ chế thực hiện Bắt đầu từ bản ghi đầu tiên lệnh thiết lập một giá trị khóa rồi xét những bản ghi kế tiếp nó để lập một bản ghi tổng và ghi vào . Khi gặp bản ghi đầu tiên khác giá trị khóa, lệnh chuyển sang thiết lập giá trị khóa thứ hai, rồi thực hiện như trên, để thiết lập bản ghi tổng khác. Quá trình thực hiện tương tự như trên, cho đến khi kết thúc tệp CSDL. Vì vậy, để kết quả có ý nghĩa. Tệp CSDL phải được sắp xếp hoặc chỉ số theo trường khoá tính tổng bộ phận. 4. Tính tổng bộ phận 4.4. Ví dụ USE BLUONG TOTAL ON KHOA TO THOP1 INDEX ON KHOA TO T1 TOTAL ON KHOA TO THOP2 TOTAL ON KHOA TO THOP3 FOR HSL>=3 5. Đặt lọc dữ liệu Khái niệm: Lọc dữ liệu là chỉ cho phép làm việc với những bản ghi của tệp CSDL thỏa mãn một điều kiện nào đó, như trước đây ta đã dùng tuỳ chọn FOR trong các lệnh. Lệnh đặt lọc: SET FILTER TO Với tệp CSDL đang mở việc xác lập môi trường như thế này chỉ cho phép các lệnh tác động lên những bản ghi thỏa mãn Chương 7. Kết xuất thông tin trong tệp CSDL 5. Đặt lọc dữ liệu Ví dụ: USE HSCB BROW FOR HSL>3 COUNT FOR HSL>3 tương đương với USE HSCB SET FILTER TO HSL>3 BROW COUNT Chương 7. Kết xuất thông tin trong tệp CSDL 6. Giới hạn trường dữ liệu Khái niệm: Giới hạn trường dữ liệu là chỉ cho phép làm việc với những trường dữ liệu mà ta quan tâm. Lệnh giới hạn trường dữ liệu: SET FIELD TO Với tệp CSDL đang mở việc xác lập môi trường như thế này chỉ cho phép các lệnh tác động lên những trường được liệt kê trong danh sách. Chương 7. Kết xuất thông tin trong tệp CSDL 6. Giới hạn trường dữ liệu Ví dụ: USE HSCB BROW FIELD MSCB,HD,TEN tương đương với USE HSCB SET FIEL TO MSCB,HD,TEN BROW Chương 7. Kết xuất thông tin trong tệp CSDL 1. Khái niệm báo cáo dạng Report và dạng Label. 2. Tạo tệp khuôn báo cáo. 3. Sửa đổi tệp khuôn báo cáo. 4. Sử dụng lệnh REPORT 5. Tạo tệp nhãn. 6. Sửa đổi tệp nhãn. 7. Sử dụng lệnh LABEL Chương 8. Lập báo cáo bằng lệnh Report & Lable Khái niệm báo cáo dạng Report và dạng Label 1.1. Báo cáo dạng Report Là báo cáo theo dạng bảng 2 chiều mà một dòng của nó lấy thông tin trên một bản ghi. Ví dụ: DANH SÁCH THÍ SINH Đông Hà, ngày 16 tháng 3 năm 2008 CHỦ TỊCH HỘI ĐỒNG Chương 8. Lập báo cáo bằng lệnh Report & Lable Khái niệm báo cáo dạng Report và dạng Label 1.2. Báo cáo dạng Label Báo cáo mà mỗi trang lấy thông tin trên một bản ghi. Ví dụ: PHIẾU BÁO THI Trường Đại học X, báo tin cho thí sinh Họ và tên: Nguyễn Văn Hà Số báo danh: 121 Ngày sinh: 26/03/1990 Nơi sinh: Đông Hà Chương 8. Lập báo cáo bằng lệnh Report & Lable 2. Tạo tệp khuôn báo cáo 2.1 Tên tệp khuôn: Tệp khuôn báo cáo có tên *.FRX 2.2. Tạo tệp khuôn: Việc tạo ra nó bao gồm các bước sau: B1: Thiết kế báo cáo B2: Phân định rõ 3 vùng: Đầu biểu (Title), nội dung (Detail) và cuối biểu (Summary) B3: Mở tệp CSDL tương ứng USE B4: Đưa vào lệnh tạo tệp khuôn báo cáo CREATE REPORT B5: Định dạng trang in (Alt - Report - Page layout - Right Margin Colum) B6: Khai báo vùng Detail B7: Mở vùng Title và Summary (Alt - Report - Title/Summary) Đánh dấu Title Band và Summary Band Chương 8. Lập báo cáo bằng lệnh Report & Lable 2. Tạo tệp khuôn báo cáo B8: Khai báo vùng Title B9: Khai báo vùng Summary 2.3. Cách đưa vào một đối tượng văn bản 2.4. Cách đưa vào một đối tượng trường dữ liệu * Trường đơn giản * Trường có tính toán Ví dụ: Từ tệp HSCB.DBF lập Danh sách cán bộ trích ngang. USE HSCB CREA REPO DSTN (tạo ra DSTN.FRX) Từ tệp BLUONG.DBF lập Bảng thanh toán lương. USE BLUONG CREA REPO BTTL (tạo ra BTTL.FRX) Chương 8. Lập báo cáo bằng lệnh Report & Lable 3. Sửa đổi tệp khuôn báo cáo Với một tệp khuôn báo cáo đã được thiết lập. Ta có thể sửa đổi nó bằng lệnh: MODIFY REPORT Ví dụ: USE HSCB MODI REPO DSTN Chương 8. Lập báo cáo bằng lệnh Report & Lable 4. Sử dụng lệnh REPORT 4.1. Cú pháp: REPORT FORM [FOR ] TO PRINT/PREVIEW 4.2. Giải thích: Lệnh in báo cáo với khuôn dạng của và dữ liệu là ở trên các tệp CSDL đang mở. Nếu có tuỳ chọn FOR thì chỉ có những bản ghi thỏa mãn mới được in theo báo cáo. Nếu có tuỳ chọn TO PRINT thì báo cáo được in ra máy in hoặc tuỳ chọn PREVIEW thì báo cáo được đưa ra màn hình. Ví dụ: USE HSCB REPO FORM DSTN PREV USE BLUONG REPO FORM BTTL PREV Chương 8. Lập báo cáo bằng lệnh Report & Lable 5. Tạo tệp nhãn 5.1 Tên tệp nhãn: Tệp nhãn có tên *.LBX 5.2. Tạo tệp nhãn: Việc tạo ra nó bao gồm các bước sau: B1: Thiết kế nhãn B2: Mở tệp CSDL tương ứng (USE ) B3: Đưa vào lệnh tạo tệp nhãn (CREATE LABEL ) B4: Định dạng trang in (Alt - Label - Page layout ) B5: Khai báo nhãn 5.3. Cách đưa vào một đối tượng văn bản 5.4. Cách đưa vào một đối tượng trường dữ liệu Ví dụ: Từ tệp HSCB.DBF tạo nhãn là các Phiếu cán bộ. USE HSCB CREA LABEL PCB (tạo tệp PCB.LBX) Chương 8. Lập báo cáo bằng lệnh Report & Lable 6. Sửa đổi tệp nhãn Với một tệp nhãn đã được thiết lập. Ta có thể sửa đổi nó bằng lệnh: MODIFY LABEL Ví dụ: USE HSCB MODI LABEL PCB Chương 8. Lập báo cáo bằng lệnh Report & Lable 7. Sử dụng lệnh LABEL 7.1. Cú pháp: LABEL FORM [FOR ] TO PRINT/PREVIEW 7.2. Giải thích: Lệnh in nhãn với khuôn dạng của và dữ liệu là ở trên các tệp CSDL đang mở. Nếu có tuỳ chọn FOR thì chỉ có những bản ghi thỏa mãn mới được in ra nhãn. Nếu có tuỳ chọn TO PRINT thì nhãn được in ra máy in hoặc tuỳ chọn PREVIEW thì nhãn được đưa ra màn hình. Ví dụ: USE HSCB LABE FORM PCB PREV Chương 8. Lập báo cáo bằng lệnh Report & Lable 1. Định vùng làm việc và gán bí danh 2. Cập nhật từ một tệp CSDL khác 3. Kết nối hai tệp CSDL 4. Thiết lập mối liên kết giữa nhiều tệp CSDL 5. Đóng các tệp CSDL đang mở Chương 9. Thao tác với nhiều tệp CSDL Định vùng làm việc và gán bí danh 1.1. Các vùng làm việc của FoxPro. 1.2. Mở tệp trên một vùng làm việc bất kỳ và gán bí danh. 1.3. Truy nhập trường dữ liệu của tệp hiện thời và tệp đang mở ở vùng làm việc khác. Chương 9. Thao tác với nhiều tệp CSDL 1. Định vùng làm việc và gán bí danh 1.1. Các vùng làm việc của FoxPro Từ trước cho đến nay chúng ta chỉ làm việc với một vùng của Foxpro nên khi mở tệp CSDL cũng đồng nghĩa với việc đóng tệp CSDL đang mở. Thực tế Foxpro có 25 vùng làm việc được đặt tên như sau: Dùng số: Từ 1 đến 25 Dùng ký tự: 10 vùng làm việc đầu tiên có tên bằng số từ 1 đến 10 hoặc bằng ký tự từ A đến J. Để chọn vùng làm việc ta dùng lệnh SELECT Ví dụ: SELE C hoặc SELE 15 Chương 9. Thao tác với nhiều tệp CSDL Định vùng làm việc và gán bí danh 1.2. Mở tệp trên một vùng làm việc bất kỳ và gán bí danh a. Mở tệp trên vùng làm việc SELECT USE b. Gán bí danh SELECT USE ALIAS : Do người sử dụng tự đặt nhưng phải tuân thủ hai điều sau: * Theo đúng luật đặt tên trường dữ liệu * Tên không thể là các ký tự từ A đến J. Ví dụ: SELE 5 USE HSCB Ví dụ: SELE 16 USE BLUONG ALIAS BL Chương 9. Thao tác với nhiều tệp CSDL Định vùng làm việc và gán bí danh 1.3 Truy nhập trường dữ liệu của tệp hiện thời và tệp đang mở ở vùng làm việc khác. * Tệp hiện thời: như đã dùng từ trước đến nay * Tệp ở vùng làm việc khác . . Chú ý rằng việc di chuyển con trỏ bản ghi chỉ thực hiện được đối với tệp hiện thời chứ không làm đưọc với tệp đang mở trên vùng khác, trừ dùng lệnh SET RELATION Ví dụ: SELE 3 USE HSCB ALIAS HS SELE 1 USE BLUONG ? HSL ? HS.HSL (hoặc C.HSL) Chương 9. Thao tác với nhiều tệp CSDL 2. Cập nhật từ một tệp CSDL khác 2.1. Bổ sung các bản ghi từ một tệp CSDL khác. 2.2. Sửa đổi dữ liệu dựa vào dữ liệu trên một tệp khác. Chương 9. Thao tác với nhiều tệp CSDL 2. Cập nhật từ một tệp CSDL khác 2.1. Bổ sung các bản ghi từ một tệp CSDL khác Khi hai tệp CSDL có cùng chung cấu trúc tệp hay có một số trường trùng nhau về cấu trúc ta có thể bổ sung các bản ghi của tệp này sang tệp kia bằng cách sau: Tệp muốn bổ sung được mở ở vùng hiện thời. Tệp chứa các bản ghi để bổ sung ở trạng thái đóng. Sử dụng lệnh: APPEND FROM [FOR ][FIELDS ] Chương 9. Thao tác với nhiều tệp CSDL 2. Cập nhật từ một tệp CSDL khác 2.1. Bổ sung các bản ghi từ một tệp CSDL khác Giải thích: Nếu có tuỳ chọn FOR thì chỉ những bản ghi thỏa mãn mới được bổ sung. Nếu có tuỳ chọn FIELDS thì các bản ghi được bổ sung vào tệp hiện thời theo các trường được liệt kê trong danh sách. Ngược lại các bản ghi được bổ sung vào tệp hiện thời theo tất cả các trường của nó trùng tên với tệp hiện thời. Ví dụ:USE HSCB COPY TO HS1 APPEND FROM HS1 FOR HSL>3 APPEND FROM HS1 FIELD MSCB, HD, TEN,HSL APPEND FROM BLUONG Chương 9. Thao tác với nhiều tệp CSDL 2. Cập nhật từ một tệp CSDL khác 2.2. Sửa đổi dữ liệu dựa vào dữ liệu trên một tệp khác Thông thường khi sửa đổi dữ liệu nhiều, người ta sẽ chuẩn bị dữ liệu sửa đổi trên một tệp khác. Sau đó sẽ dùng tệp đó để sửa trên tệp hiện thời bằng lệnh: UPDATE ON FROM REPLACE WITH [, WITH ... ] [ FOR ] Giải thích: Tệp chứa dữ liệu sửa đổi được mở trên vùng làm việc khác với và chỉ số theo cập nhật. Tệp cần sửa đổi được mở ở vùng hiện thời và cũng được chỉ số theo cập nhật. Với những bản ghi của hai tệp có cùng giá trị khoá thì việc cập nhật được tiến hành như mô tả trên REPLACE. Nếu có tuỳ chọn FOR thì chỉ những bản ghi thoả mãn mới được cập nhật. Chú ý: Trường của cả hai tệp phải trùng nhau về cấu trúc. Chương 9. Thao tác với nhiều tệp CSDL 2. Cập nhật từ một tệp CSDL khác 2.2. Sửa đổi dữ liệu dựa vào dữ liệu trên một tệp khác Ví dụ: SELE 3 USE LMOI ALIAS LM INDE ON MSCB TO T1 SELE 1 USE HSCB INDE ON MSCB TO T2 UPDATE ON MSCB FROM LM REPL HSL WITH LM.HSL Chương 9. Thao tác với nhiều tệp CSDL 3. Kết nối hai tệp CSDL Với hai tệp CSDL có mối quan hệ logic với nhau ta có thể kết nối chúng bằng lệnh sau: JOIN WITH TO FOR [FIELDS ] Điều kiện: Một tệp được mở trên vùng làm việc khác với , tệp còn lại được mở trên vùng hiện thời. Giải thích: Lệnh sẽ tiến hành kết nối mỗi bản ghi của tệp hiện thời lần lượt với từng bản ghi của tệp thỏa mãn và ghi vào . Nếu có tùy chọn FIELDS thì bao gồm những trường được liệt kê trong danh sách và theo thứ tự này. Nếu không có tùy chọn đó thì bao gồm tất cả các trường của tệp hiện thời và tất cả các trường của tệp không trùng tên với các trường của tệp hiện thời. Chương 9. Thao tác với nhiều tệp CSDL 3. Kết nối hai tệp CSDL Cơ chế: Trước hết con trỏ của tệp hiện thời đặt ở bản ghi đầu tiên, con trỏ của tệp cũng được đặt ở bản ghi đầu tiên và lệnh xét nếu thỏa mãn thì một bản ghi sẽ được kết nối và ghi vào , ngược lại thì bỏ qua và con trỏ trên tệp di chuyển đến bản ghi kế tiếp và lại xét quá trình tiếp tục cho đến khi con trỏ bản ghi của tệp đặt ở cuối tệp thì con trỏ của tệp hiện thời được di chuyển đến bản ghi kế tiếp và con trỏ bản ghi của tệp lại trở về bản ghi đầu tiên. Quá trình xét bản ghi này của tệp hiện thời với các bản ghi của tệp bí danh lại diễn ra như trên. Đến khi con trỏ của tệp hiện thời đặt ở cuối tệp thì lệnh kết thúc. Chương 9. Thao tác với nhiều tệp CSDL 3. Kết nối hai tệp CSDL Ví dụ 1: CLOS ALL SELE 2 USE DMHANG ALIAS DM SELE 1 USE HOADON JOIN WITH DM TO KQUA FOR MSHH=DM.MSHH FIEL SHHD, MSHH, DM.DGIA, SL, TIEN USE KQUA BROW Chương 9. Thao tác với nhiều tệp CSDL 3. Kết nối hai tệp CSDL Ví dụ 2: CLOSE ALL SELE 3 USE DIEMTHI ALIA DT SELE 2 USE FACHBT ALIA FA SELE 1 USE HOSO JOIN WITH FA TO TGIAN FOR SBD=FA.SBD USE TGIAN JOIN WITH DT TO KQTHI FOR FACH=DT.FACH USE KQTHI BROW Chương 9. Thao tác với nhiều tệp CSDL 4. Thiết lập mối liên kết giữa nhiều tệp CSDL Lệnh JOIN có một số nhược điểm sau: Phải tạo ra tệp CSDL để chứa kết quả (tốn không gian nhớ) Việc kết nối chỉ thể hiện một lúc hai tệp Kết quả bị cứng hoá nên sau khi kết nối nếu có sự thay đổi trên các tệp nguồn thì tệp kết quả cũng không thể hiện được. Để khắc phục chúng ta sẽ tiến hành liên kết bằng lệnh: SET RELATION TO INTO [ADDITIVE] Điều kiện: Trong các tệp tham gia liên kết ta phải chọn một tệp có khả năng liên kết với các tệp khác để mở ở vùng hiện thời và gọi nó là tệp chủ. Các tệp còn lại gọi là tệp kết được mở trên các vùng làm việc khác với bí danh và được chỉ số theo trường khóa liên kết. Chương 9. Thao tác với nhiều tệp CSDL 4. Thiết lập mối liên kết giữa nhiều tệp CSDL Giải thích: Lệnh thiết lập mối liên kết giữa tệp chủ và tệp theo phép so sánh bằng giữa trường của tệp chủ và trường lập chỉ số của tệp . Nếu có tuỳ chọn ADDITIVE thì liên kết này sẽ bổ sung vào các liên kết đã có trước đó của tệp chủ. Nếu không đây là liên kết đầu tiên của tệp chủ. Cơ chế: Với các tệp kết đang thiết lập liên kết với tệp chủ, khi con trỏ của tệp chủ đứng ở một bản ghi nào đó thì con trỏ của các tệp kết sẽ tự động dịch chuyển đến các bản ghi tương ứng Ví dụ: Trong 2 tệp HOADON.DBF và DMHANG.DBF thì HOADON.DBF là tệp chủ. Trong 3 tệp HOSO.DBF, FACHBT.DBF và DIEMTHI.DBF thì FACHBT.DBF là tệp chủ Chương 9. Thao tác với nhiều tệp CSDL 4. Thiết lập mối liên kết giữa nhiều tệp CSDL Ví dụ 1: CLOS ALL SELE 2 USE DMHANG ALIAS DM INDE ON MSHH TO T1 SELE 1 USE HOADON SET RELATION TO MSHH INTO DM BROW FIEL SHHD, MSHH, SL, DM.DGIA, TIEN Chương 9. Thao tác với nhiều tệp CSDL 4. Thiết lập mối liên kết giữa nhiều tệp CSDL Ví dụ 2: CLOSE ALL SELE 3 USE DIEMTHI ALIA DT INDE ON FACH TO T1 SELE 2 USE HOSO ALIA HS INDE ON SBD TO T2 SELE 1 USE FACHBT SET RELA TO SBD INTO HS SET RELA TO FACH INTO DT ADDITIVE BROW FIEL SBD, HS.HVT, DT.DIEM Chương 9. Thao tác với nhiều tệp CSDL 5. Đóng các tệp CSDL đang mở CLOSE DATABASE: Đóng tất cả các tệp CSDL và các tệp chỉ số. CLOSE ALL: Đóng tất cả các loại tệp. QUIT: Đóng tất cả các loại tệp và thoát khỏi Foxpro Chương 9. Thao tác với nhiều tệp CSDL 1. Chọn thư mục hiện thời 2. Đọc danh sách các tệp trên đĩa 3. Sao chép tệp 4. Đổi tên tệp 5. Xóa tệp 6. Sử dụng lệnh DOS Chương 10. Những thao tác khác với tệp CSDL 1. Chọn thư mục hiện thời Khi ta mới khởi động Foxpro thì thư mục hiện thời là thư mục mà ở mức DOS ta thực hiện lệnh khởi động Foxpro. Để thay đổi thư mục hiện thời ta sử dụng lệnh: SET DEFAULT TO [] Giải thích: Lệnh sẽ chọn thư mục hiện thời là thư mục được chỉ ra bởi đường dẫn trên ổ đĩa Ví dụ: SET DEFA TO C:\QLNS Chương 10. Những thao tác khác với tệp CSDL 2. Đọc danh sách các tệp trên đĩa 2.1. Tệp CSDL: Muốn xem danh sách các tệp CSDL đang tồn tại trong một thư mục nào đó ta sử dụng lệnh: DIR [][TO PRINT] Giải thích: Lệnh sẽ hiển thị tên của các tệp CSDL trong thư mục được chỉ ra bởi đường dẫn hoặc đưa ra máy in nếu có tùy chọn TO PRINT Ví dụ: DIR TO PRINT DIR C:\QLNS Chương 10. Những thao tác khác với tệp CSDL 2. Đọc danh sách các tệp trên đĩa 2.2. Tệp tổng quát: DIR [][TO PRINT] Giải thích: ở đây có thể viết tường minh hoặc mô tả với việc sử dụng các ký tự đại diện * và ?. Ví dụ: DIR *.PRG DIR HSCANBO.* DIR C:\QLNS\*.FRX Chương 10. Những thao tác khác với tệp CSDL 3. Sao chép tệp 3.1. Sao chép tệp CSDL: Với tệp CSDL hiện thời, ta có thể sao chép nó thành một tệp khác bằng lệnh: COPY TO [] [FIELDS ][FOR ] Giải thích: Nếu có tùy chọn FIELDS thì chỉ bao gồm các trường được liệt kê trong danh sách. Nếu có tùy chọn FOR thì chỉ có những bản ghi của tệp hiện thời thỏa mãn mới được sao chép sang . Ví dụ: USE HSCANBO COPY TO HSCB COPY TO HS1 FIELD MSCB, HD, TEN, HSL COPY TO HS2 FOR HSL>=3 Chương 10. Những thao tác khác với tệp CSDL 3. Sao chép tệp 3.2. Sao chép tệp tổng quát: Với tệp tổng quát, ta có thể sao chép nó thành một tệp khác bằng lệnh: COPY FILE [] TO [] Giải thích: và phải được viết dưới dạng đầy đủ và tường minh. Ví dụ: COPY FILE HS1.DBF TO HS3.DBF COPY FILE DSTN.FRX TO BCCB.FRX Chương 10. Những thao tác khác với tệp CSDL 4. Đổi tên tệp Với một tệp CSDL hoặc một tệp tổng quát đang ở trạng thái đóng ta có thể đổi tên nó bằng lệnh: RENAME [] TO Giải thích: Lệnh sẽ đổi tệp có tên là được xác định bởi đường dẫn thành tên là . Ví dụ: RENAME HS2.DBF TO CBQL.DBF Chương 10. Những thao tác khác với tệp CSDL 5. Xóa tệp Để xóa một tệp bất kỳ đang ở trạng thái đóng bạn có thể dùng lệnh: DELETE FILE phải được viết ở dạng tường minh. Ví dụ: DELETE FILE HS3.DBF DELETE FILE \QLNS\MAIN.PRG Chương 10. Những thao tác khác với tệp CSDL 6. Sử dụng lệnh DOS Chúng ta thấy rằng rất nhiều thao tác ở trên chúng ta có thể thực hiện bằng lệnh DOS nếu ta thoát khỏi FOXPRO. Tuy nhiên khi đang ở FoxPro ta hoàn toàn có thể thi hành các lệnh của DOS bằng cách sử dụng cú pháp: ! Ví dụ: !DEL \QLNS\*.PRG !C:\BP\BIN\TURBO Chương 10. Những thao tác khác với tệp CSDL SQL - Structured Query Language - Ngôn ngữ truy vấn dữ liệu có cấu trúc. Cách viết SQL chuẩn có dấu ; cuối câu nhưng SQL trong FoxPro thì tuân theo luật viết lệnh của Foxpro Ví dụ: SQL chuẩn SELECT * FROM HSCANBO; SQL Foxpro SELECT *; FROM HSCANBO Các thuật ngữ: Table: Tệp CSDL Row: bản ghi Col: Trường dữ liệu Chương 11. Truy vẫn dữ liệu thông qua SQL 1. Tạo tệp CSDL và vào dữ liệu 2. Truy vấn dữ liệu đơn giản 3. Kết xuất tệp theo thứ tự hoặc bỏ bản ghi trùng 4. Các hàm SQL 5. Tính tổng bộ phận 6. JOIN và UNION: liên kết dữ liệu 7. Các câu truy vấn dữ liệu lồng nhau 8. Ghi kết quả vào tệp hay in ra máy in Chương 11. Truy vẫn dữ liệu thông qua SQL 1. Tạo tệp CSDL và vào dữ liệu 1.1. Tạo tệp CSDL Lệnh: CREATE TABLE ( [([,])][, [([,])] ...]) Giải thích: : tên của tệp CSDL muốn tạo : tên của trường thứ i [([,])]: Là kiểu và độ rộng của trường thứ i được quy định như sau: C(X)- Kiểu ký tự với độ dài X D - Kiểu ngày L - Kiểu Logic N(X,Y) - Kiểu số với độ rộng X và phần thập phân là Y. Chương 11. Truy vẫn dữ liệu thông qua SQL 1. Tạo tệp CSDL và vào dữ liệu 1.1. Tạo tệp CSDL Ví dụ: CREATE TABLE HSCB (MSCB C(4), HD C(18), TEN C(7), NSINH D, HSL N(4,2), TDVH N(2), GD L) CREA TABL HOSO (SBD N(4),HVT C(25)) CREA TABL FACHBT (SBD N(4), FACH C(2)) CREA TABL DIEMBT(FACH C(2),DIEM N(5,2)) Chương 11. Truy vẫn dữ liệu thông qua SQL 1. Tạo tệp CSDL và vào dữ liệu 1.2. Vào dữ liệu: Lệnh: INSERT INTO [()] VALUES () Giải thích: Lệnh sẽ chắp vào một bản ghi mới. Nếu không có tùy chọn thì phải vào dữ liệu cho tất cả các trường, nếu có thì chỉ vào dữ liệu cho các trường được liệt kê trong danh sách. là danh sách các giá trị sẽ gán cho các trường tương ứng theo thứ tự ở và hoặc là thứ tự các trường trên tệp nếu không có tùy chọn . Ví dụ: INSERT INTO HSCANBO (MSCB, HD, TEN) VALUES (‘NV01’,’TRAN VAN’,’DUNG’) INSERT INTO DIEMBT VALUES (‘X4’,9.5) Chương 11. Truy vẫn dữ liệu thông qua SQL 2. Truy vấn dữ liệu đơn giản 2.1. Chọn tệp CSDL và các trường 2.2. Chọn các bản ghi Chương 11. Truy vẫn dữ liệu thông qua SQL 2. Truy vấn dữ liệu đơn giản 2.1. Chọn tệp CSDL và các trường Lệnh: SELECT FROM Giải thích: Lệnh sẽ hiển thị lên màn hình nội dung của . Nếu tùy chọn được thay bằng dấu * thì tất cả các trường đều được hiển thị, nếu viết tường minh thì chỉ các trường được liệt kê trong danh sách mới được hiển thị. Ví dụ: SELE * FROM HSCANBO SELE MSCB,HD,TEN,HSL FROM HSCANBO Chương 11. Truy vẫn dữ liệu thông qua SQL 2. Truy vấn dữ liệu đơn giản 2.2. Chọn các bản ghi Để chọn các bản ghi trong tệp CSDL thỏa mãn điều kiện nào đó ta thêm vào lệnh tùy chọn sau: WHERE Giải thích: - Với tuỳ chọn này được bổ sung vào lệnh thì chỉ có những bản ghi thỏa mãn điều kiện chọn mới được hiện ra. - có thể là một trong các dạng sau: * Hai biểu thức cùng loại (Số, Ký tự, Ngày) quan hệ với nhau bằng một trong các phép toán Logic sau: = bằng # khác > lớn hơn != khác khác >= lớn hơn hoặc bằng !> không lớn hơn IN (, , ...) có giá trị là một trong các thì thỏa mãn. * LIKE Ở vị trí của là dấu gạch dưới _ có nghĩa là thay thế cho một ký tự bất kỳ. Ở vị trí của là dấu phần trăm % có nghĩa là thay thế cho một xâu ký tự bất kỳ. * BETWEEN AND Giá trị của ở trong đoạn và * Các toán tử logic NOT, AND và OR Với các điều kiện chọn như trên ta có thể sử dụng các toán tử logic kết hợp với chúng. Chương 11. Truy vẫn dữ liệu thông qua SQL 2. Truy vấn dữ liệu đơn giản 2.2. Chọn các bản ghi Ví dụ: SELE * FROM HSCANBO WHERE HSL IN (2.97,3.62) SELE * FROM HSCANBO WHERE MSCB LIKE “NV__” SELE * FROM HSCANBO WHERE HD LIKE “%VAN%” SELE * FROM HSCANBO WHERE TDVH BETWEEN 8 AND 10 SELE * FROM HSCANBO WHERE MSCB LIKE “NV__” AND HSL>3 Chương 11. Truy vẫn dữ liệu thông qua SQL 3. Kết xuất tệp theo thứ tự hoặc bỏ bản ghi trùng 3.1 Kết xuất theo thứ tự: Muốn các bản ghi của một tệp CSDL xuất hiện theo một thứ tự nào đó ta sẽ bổ sung vào lệnh tuỳ chọn: ORDER BY [ASC|DESC][, [ASC|DESC]...] Giải thích: Các bản ghi sẽ xuất hiện theo thứ tự ưu tiên trường 1, trường 2, Nếu có tùy chọn ASC thì được sắp theo thứ tự tăng dần còn DESC là giảm dần. Ví dụ: SELE * FROM HSCANBO ORDER BY TEN, HD SELE * FROM HSCANBO ORDER BY HSL DESC Chương 11. Truy vẫn dữ liệu thông qua SQL 3. Kết xuất tệp theo thứ tự hoặc bỏ bản ghi trùng 3.2 Chỉ hiện một bản ghi có một giá trị trường: Muốn các bản ghi của một tệp CSDL có cùng một giá trị trường nào đó chỉ xuất hiện một bản ghi ta sẽ bổ sung vào tên của nó sau lệnh SELECT tuỳ chọn DISTINCT Ví dụ: SELECT DISTINCT HSL FROM HSCANBO Chương 11. Truy vẫn dữ liệu thông qua SQL 4. Các hàm SQL 4.1 Hàm COUNT() Đếm số lượng các bản ghi Các mẫu lệnh SELECT COUNT(*) FROM HSCANBO Đếm số lượng các bản ghi trong tệp HSCANBO SELECT COUNT(MSCB) FROM HSCANBO Đếm số lượng các bản ghi trong tệp HSCANBO có MSCB không rỗng. SELECT COUNT(DISTINCT HSL) FROM HSCANBO Đếm số lượng các loại hệ số lương trong tệp HSCANBO SELECT COUNT(MSCB) FROM HSCANBO WHERE HSL=3.62 Đếm số lượng các bản ghi trong tệp HSCANBO có HSL=3.62. Chương 11. Truy vẫn dữ liệu thông qua SQL 4. Các hàm SQL 4.2 Các hàm AVG(), MIN(), MAX(), SUM() Các hàm này được sử dụng tương tự như trên nhưng không sử dụng DISTINCT đối với MAX và MIN. Ví dụ: SELECT AVG(HSL), MAX(HSL), MIN(HSL) FROM HSCANBO Chương 11. Truy vẫn dữ liệu thông qua SQL 5. Tính tổng bộ phận Để tính tổng bộ phận chúng ta sẽ sử dụng hai tùy chọn GROUP BY và HAVING Mẫu lệnh SELECT KHOA, SUM(TONG) FROM BLUONG GROUP BY KHOA Tính tổng bộ phận của tổng lương theo từng phòng khoa. SELECT KHOA, SUM(HSL*290000) FROM BLUONG GROUP BY KHOA HAVING (HSL*290000)>600000 Tính tổng bộ phận của tổng lương theo từng phòng khoa với điều kiện HSL*290000>600000. Ngoài ra chúng ta có thể dùng kết hợp với tùy chọn WHERE SELECT KHOA, SUM(HSL*290000) FROM BLUONG WHERE PCTN>0 GROUP BY KHOA HAVING (HSL*290000)>600000 Chương 11. Truy vẫn dữ liệu thông qua SQL 6. JOIN và UNION: liên kết dữ liệu 6.1 Liên kết dữ liệu Để liên kết dữ liệu trên nhiều tệp CSDL ta sẽ mở rộng lệnh SELECT như sau: SELECT [*|.[, ....]] FROM [, ... ] WHERE * là bí danh của tệp i * : Đây là điều kiện để kết nối các tệp Chương 11. Truy vẫn dữ liệu thông qua SQL 6. JOIN và UNION: liên kết dữ liệu 6.1 Liên kết dữ liệu Mẫu lệnh SELECT HD.SHHD,HD.MSHH, DM.TENH, HD.SL,DM.DGIA FROM HOADON HD, DMHANG DM WHERE HD.MSHH=DM.MSHH Liên kết hai tệp HOADON.DBF và DMHANG.DBF với điều kiện các bản ghi bằng nhau về MSHH SELECT HS.SBD,HS.HVT, FA.FACH, DI.DIEM FROM HOSO HS, FACHBT FA, DIEMTHI DI WHERE HS.SBD=FA.SBD AND FA.FACH=DI.FACH Liên kết ba tệp HOSO.DBF, FACHBT.DBF và DIEMTHI.DBF với điều kiện các bản ghi của hai tệp HOSO.DBF, FACHBT.DBF bằng nhau về SBD và hai tệp FACHBT.DBF và DIEMTHI.DBF bằng nhau về FACH. Chương 11. Truy vẫn dữ liệu thông qua SQL 6. JOIN và UNION: liên kết dữ liệu 6.2 Bổ sung bản ghi: Với các tệp CSDL có cấu trúc giống nhau ta có thể nối liền nhau các bản ghi của nhiều tệp bằng tùy chọn UNION Mẫu lệnh: SELECT * FROM HOSO UNION SELECT * FROM HS1 UNION SELECT * FROM HS2 Chương 11. Truy vẫn dữ liệu thông qua SQL 7. Các câu truy vấn dữ liệu lồng nhau Các câu truy vấn có thể có một câu truy vấn phụ nằm trong tùy chọn WHERE. Như vậy kết quả của một câu truy vấn sẽ được sử dụng để thực hiện một câu truy vấn khác. Mẫu lệnh: SELECT * FROM DMHANG WHERE MSHH = (SELECT MSHH FROM HOADON WHERE SL>=50) Liệt kê các mặt hàng (đầy đủ các thuộc tính) mà đã bán trên mỗi hoá đơn với số lượng lớn hơn hoặc bằng 50. Chương 11. Truy vẫn dữ liệu thông qua SQL 8. Ghi kết quả vào tệp hay in ra máy in * Để đưa kết quả vào tệp ta đưa ra tuỳ chọn TO FILE * Để đưa kết quả ra máy in ta đưa ra tuỳ chọn TO PRINT Chương 11. Truy vẫn dữ liệu thông qua SQL

Các file đính kèm theo tài liệu này:

  • pptBài giảng FOXPRO.ppt
Tài liệu liên quan