1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo trình Hệ quản trị cơ sở dữ liệu

261 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo Trình Hệ Quản Trị Cơ Sở Dữ Liệu
Định dạng
Số trang 261
Dung lượng 3,51 MB

Cấu trúc

  • Chương 1. TỔNG QUAN VỀ VISUAL FOXPRO (5)
    • 1.1. Tổng quan về Visual FoxPro (5)
      • 1.1.1. Giới thiệu (5)
      • 1.1.2. Khởi động và thoát khỏi Visual Foxpro (6)
      • 1.1.3. Các chế độ làm việc (7)
    • 1.2. Các khái niệm cơ bản (7)
      • 1.2.1. Kiểu dữ liệu (7)
      • 1.2.2. Các phép toán (8)
      • 1.2.3. Hằng (11)
      • 1.2.4. Biến (11)
      • 1.2.5. Hàm (12)
      • 1.2.6. Biểu thức (14)
      • 1.2.7. Từ khoá (14)
      • 1.2.8. Lệnh và chương trình (14)
    • 1.3. Quản lý đề án ( Project Manager) (15)
      • 1.3.1. Giới thiệu Project Manager (15)
      • 1.3.2. Tạo một đề án (17)
      • 1.3.3. Mở đề án (17)
      • 1.3.4. Dịch đề án (17)
      • 1.3.5. Chạy đề án (18)
    • 1.4. Tạo lập cơ sở dữ liệu (18)
  • Chương 2. BẢNG DỮ LIỆU (TABLE) (20)
    • 2.1. Một số khái niệm (20)
    • 2.2. Tạo bảng cơ sở dữ liệu (22)
    • 2.3. Đổi tên một bảng trong cơ sở dữ liệu (27)
    • 2.4. Xoá bảng khỏi cơ sở dữ liệu (27)
    • 2.5. Thêm bảng vào cơ sở dữ liệu (27)
    • 2.6. Sửa cấu trúc bảng cơ sở dữ liệu (27)
    • 2.7. Làm việc với các bản ghi (27)
      • 2.7.1. Xem nội dung của bảng (27)
      • 2.7.2. Xem nội dung bảng kết hợp với chỉ mục (28)
      • 2.7.3. Xoá bản ghi (29)
      • 2.7.4. Khôi phục các bản ghi bị đánh dấu xoá (30)
      • 2.7.5. Xoá các bản ghi đã bị đánh dấu xoá khỏi bảng dữ liệu (30)
      • 2.7.6. Cập nhật dữ liệu vào bảng (31)
    • 2.8. Đặt mối quan hệ giữa các bảng (31)
      • 2.8.1. Chuẩn bị (32)
      • 2.8.2 Thiết lập mối quan hệ giữa các bảng (32)
      • 2.8.3. Hiệu chỉnh mối quan hệ giữa các bảng (33)
      • 2.8.4. Xoá mối quan hệ giữa các bảng (33)
  • Chương 3. TÌM KIẾM THÔNG TIN (QUERY & VIEW) (38)
    • 3.1. Query (truy vấn) (38)
      • 3.1.1. Khái niệm Query (38)
      • 3.1.2. Tạo Query (38)
    • 3.2. View (khung nhìn) (49)
      • 3.2.1. Khái niệm View (49)
      • 3.2.2. Tạo View (50)
  • Chương 4. MẪU BIỂU (FORM) (55)
    • 4.1. Khái niệm Form (55)
    • 4.2. Tạo Form bằng công cụ wizard (55)
      • 4.2.1. Tạo Form dạng Form Wizard (56)
      • 4.2.2. Tạo Form dạng One - to - many Form wizard (60)
    • 4.3. Sửa form (64)
    • 4.4. Chạy forrm (64)
    • 4.5. Tạo form bằng công cụ Form Designer (65)
  • Chương 5. BÁO CÁO VÀ NHÃN (REPORT VÀ LABEL) (69)
    • 5.1. Report (69)
      • 5.1.1. Khái niệm report (69)
      • 5.1.2. Tạo một Report Layout (69)
      • 5.1.3. Chỉnh sửa Report Layout (93)
      • 5.1.4. Xem và in Report (94)
    • 5.2. Label (95)
      • 5.2.1 Khái niệm Label (95)
      • 5.2.2 Tạo Label Layout (95)
      • 5.2.3. Chỉnh sửa Label Layout (100)
      • 5.2.4. Xem và in Label (100)
      • 5.2.5 Ví dụ về thiết kế Label layout (100)
  • Chương 6. BẢNG CHỌN (MENU) (102)
    • 6.1. Khái niệm Menu (102)
    • 6.2. Tạo Menu (103)
    • 6.3. Sửa Menu (104)
    • 6.4. Dịch Menu (104)
    • 6.5. Chạy Menu (104)
    • 6.6. Gắn các câu lệnh vào Menu (105)
    • 6.8. Một số tuỳ biến trong tạo Menu (105)
      • 6.8.1. Tạo nhóm các mục trong Menu (105)
      • 6.8.2. Tạo SDI menu (105)
      • 6.8.3. Gắn menu vào Form (106)
      • 6.8.4. Tạo phím tắt (ShortCut) (106)
      • 6.8.5. Làm mất hay có tác dụng một mục Menu (107)
    • 6.9. Ví dụ (107)
  • Chương 7. LẬP TRÌNH TRONG VISUAL FOXPRO (111)
    • 7.1. Giới thiệu về lập trình (111)
      • 7.1.1. Các kỹ thuật lập trình trong Visual FoxPro (111)
      • 7.1.2. Lưu file chương trình (113)
      • 7.1.3. Sửa chương trình (113)
      • 7.1.4. Thực hiện chương trình (113)
      • 7.1.5. Ghi chú trong chương trình (113)
    • 7.2. Chương trình con (114)
      • 7.2.1 Hàm tự tạo (114)
      • 7.2.2. Thủ tục (115)
      • 7.2.3 Cách tổ chức chương trình con (116)
    • 7.3. Biến toàn cục, biến cục bộ (118)
      • 7.3.1. Biến toàn cục (118)
      • 7.3.2. Biến cục bộ (118)
      • 7.3.3. Che các biến nhớ (118)
    • 7.4. Truyền tham số (120)
      • 7.4.1. Truyền theo giá trị (truyền theo tham trị) (120)
      • 7.4.2. Truyền theo địa chỉ (truyền theo tham biến) (120)
    • 7.5. Một số câu lệnh của Visual FoxPro (123)
      • 7.5.1 Các câu lệnh thiết lập môi trường làm việc (123)
      • 7.5.2 các câu lệnh vào, ra dữ liệu đơn giản (124)
      • 7.5.3 Các lệnh in dữ liệu ra màn hình (125)
      • 7.5.4 Lệnh SAY…GET…READ (126)
    • 7.6. Các cấu trúc điều khiển chương trình (127)
      • 7.6.1 Cấu trúc tuần tự (ngầm định) (127)
      • 7.6.2 Cấu trúc rẽ nhánh (127)
      • 7.6.3. Cấu trúc lặp (130)
    • 7.7. Một số câu lệnh thao tác với bảng dữ liệu (134)
      • 7.7.1. Mở và đóng bảng dữ liệu (134)
      • 7.7.2. Dịch chuyển con trỏ bản ghi – Lệnh GO và SKIP (134)
      • 7.7.3. Lệnh LOCATE (135)
      • 7.7.5. Bổ sung bản ghi – Lệnh APPEND (136)
      • 7.7.6. Xóa bản ghi – Lệnh DELETE, RECALL, PACK, ZAP (136)
      • 7.7.7. Các câu lệnh dặt lọc dữ liệu (137)
      • 7.7.8. Lệnh REPLACE (138)
      • 7.7.9. Cấu trúc SCAN (138)
    • 7.8. Một số ví dụ về lập trình cơ sở dữ liệu (139)
      • 7.8.1. Chương trình nhập dữ liệu cho một bảng (139)
      • 7.8.2. Chương trình tìm kiếm và xử lý bản ghi của một bảng (140)
      • 7.8.3. Tìm kiếm trên nhiều bảng (142)
    • 8.1 Một số khái niệm cơ bản (147)
      • 8.1.1. Đối tƣợng trong Visual FoxPro (147)
      • 8.1.2. Class và Object (148)
      • 8.1.3. Các Class cơ sở trong Visual FoxPro (149)
    • 8.2. Lớp Form (151)
      • 8.2.1. Một số thuộc tính thông dụng của lớp form và các control (151)
      • 8.2.2. Một số sự kiện thông dụng của form và các control (159)
      • 8.2.3. Một số Method (phương thức) thông dụng của form và các control (163)
    • 8.2. Bổ sung các đối tƣợng vào Form (165)
      • 8.3.1. Bổ sung một biểu tƣợng lớp vào thanh công cụ Form Controls (165)
      • 8.3.2. Bổ sung một Control vào Form (165)
      • 8.3.3. Một số Control thông dụng trên form (165)
    • 8.4. Một số ví dụ lập trình điều khiển trên Form (176)
      • 8.4.1. Lập trình giải bất phương trình ax + b > 0 (176)
      • 8.4.2. Lập trình giải bất phương trình bậc 2 (179)
      • 8.4.3. Lập trình điều khiển dữ liệu trên Form (182)
  • Chương 9. PHÂN PHỐI ỨNG DỤNG VÀ TẠO BỘ ĐĨA CÀI ĐẶT (144)
    • 9.1 Phân phối ứng dụng (195)
    • 9.2. Tạo bộ đĩa cài đặt cho ứng dụng bằng Setup Wizard (198)
  • Tài liệu tham khảo (0)

Nội dung

TỔNG QUAN VỀ VISUAL FOXPRO

Tổng quan về Visual FoxPro

Visual Foxpro là một ngôn ngữ lập trình thế hệ thứ tư Trong môi trường ngôn ngữ thế hệ thứ tƣ có:

- Hệ quản trị cơ sở dữ liệu

- Một ngôn ngữ lập trình có câu trúc, hướng đối tượng

- Một ngôn ngữ hỏi đáp có cấu trúc (SQL)

- Một bộ công cụ Case

Cơ sở dữ liệu là tập hợp các dữ liệu có mối quan hệ, được tổ chức và lưu trữ trong máy tính theo quy định nhất định để phục vụ một mục đích cụ thể Hệ quản trị cơ sở dữ liệu (DBMS) là hệ thống chương trình giúp quản lý, khai thác và biến đổi các cơ sở dữ liệu.

Visual Foxpro là một hệ quản trị cơ sở dữ liệu quan hệ của hãng Microsoft Nó cho phép:

- Tạo lập, cập nhật các cơ sở dữ liệu, các bảng dữ liệu

- Sắp xếp, tìm kiếm thông tin

Ngôn ngữ hỏi đáp có cấu trúc (SQL) giúp truy xuất thông tin một cách nhanh chóng và hiệu quả Để xây dựng ứng dụng dễ dàng hơn, bộ công cụ Case cho phép người dùng chỉ cần nêu ra ý tưởng cần thực hiện, thay vì phải lập trình phức tạp.

- Công cụ tạo bảng cho phép tạo cấu trúc bảng cơ sở dữ liệu, tạo các qui tắc toàn vẹn dữ liệu cũng nhƣ các khoá và chỉ mục,

- Công cụ tạo Query và View cho phép hỏi đáp, tổng hợp thông tin nhanh chóng

- Công cụ Form cho phép tạo nhanh các màn hình cập nhập dữ liệu

- Công cụ Report, Label cho phép tạo nhanh các báo cáo và nhãn

Công cụ Menu giúp người dùng tạo các menu đa cấp một cách nhanh chóng và đơn giản Bên cạnh đó, từ điển dữ liệu là nơi lưu trữ thông tin quan trọng về các cơ sở dữ liệu và mối quan hệ giữa các bảng trong hệ thống cơ sở dữ liệu.

1.1.2 Khởi động và thoát khỏi Visual Foxpro

After installing Visual FoxPro, you can start it by executing the FoxProw.exe or vfp.exe files through various methods.

- Kích chuột vào biểu tƣợng của Visual Foxpro trên màn hình nền Desktop:

Hình 1.1 Màn hình Visual Foxpro sau khi khởi động

- Chọn menu Start/Program/Microsoft Visual Studio…/ Microsoft Visual Foxpro và kích chuột vào đó

2) Thoát khỏi Visual FoxPro Để thoát khỏi Visual FoxPro có thể sử dụng một trong các cách sau:

- Tại cửa sổ lệnh nhập vào lệnh QUIT

Chương 1 Tổng quan về Visual Foxpro

- Kích trái chuột vào nút Close

1.1.3 Các chế độ làm việc

Visual FoxPro có 2 chế độ làm việc: chế độ tương tác (interactive) và chế độ chương trình (program)

1) Chế độ tương tác (đối thoại):

Chế độ người sử dụng trong Visual Foxpro cho phép người dùng nhập từng câu lệnh và nhận kết quả ngay lập tức trên màn hình Có hai hình thức nhập câu lệnh trong chế độ này.

- Đƣa câu lệnh qua menu hệ thống (system menu)

- Đƣa câu lệnh từ cửa sổ lệnh (command window)

Trong chế độ biên dịch, các câu lệnh được viết trong một file văn bản chương trình và lưu trữ trên đĩa, được gọi là file chương trình nguồn Để thực hiện các câu lệnh này, người dùng chỉ cần ra lệnh cho Visual Foxpro thực thi chương trình, và Visual Foxpro sẽ lần lượt thực hiện các câu lệnh trong file chương trình.

Các khái niệm cơ bản

1.2.1 Kiểu dữ liệu Để xử lý và khai thác tốt các dữ liệu, Visual Foxpro chia dữ liệu thành nhiều kiểu khác nhau Trong đó có một số kiểu cơ bản là: kiểu số (Numeric), kiểu xâu kí tự (Character), kiểu ngày tháng (Date), kiểu logic (Logical), kiểu bộ nhớ (Memo), kiểu tổng quát (General)

1) Kiểu số - Numeric (N): Dùng để biểu diễn dữ liệu dạng số Mỗi dữ liệu kiểu số chiếm tối đa 20 chữ số gồm cả phần nguyên, phần thập phân và dấu chấm thập phân

2) Kiểu số - Float (F): Dùng để biểu diễn số thực có dấu chấm động Ví dụ nhƣ số 2.03E+5 (2.0310 5 ) và nó thường được sử dụng trong các chương trình thuộc lĩnh vực khoa học kỹ thuật

3) Kiểu xâu ký tự - Charater (C): Chứa các dữ liệu là một dãy các ký tự bất kỳ trong bảng mã ASCII Ví dụ nhƣ họ tên, quê quán, địa chỉ,… hoặc là số nhƣng không dữ liệu kiểu xâu ký tự có độ dài tối đa 255 ký tự (mỗi ký tự chiếm 1 byte trong bộ nhớ)

4) Kiểu ngày tháng - Date (D): Dùng cho những dữ liệu dạng ngày tháng nhƣ ngày sinh, ngày đến, ngày vào đoàn, Đó là những số nguyên dạng "yyyymmdd" khi hiển thị ra bên ngoài sẽ được chuyển thành dạng ngày tháng bình thường như dd/mm/yy, mm/dd/yy, dd/mm/yyyy, tuỳ theo yêu cầu của người sử dụng Độ dài cố định của dữ liệu kiểu ngày là 8 ký tự

5) Kiểu logic - Logical (L): Dùng cho những dữ liệu chỉ có một trong hai trường hợp hoặc đúng (.T.) hoặc sai (.F.), có hoặc không nhƣ giới tính, đảng viên, mua hay bán, Độ dài cố định của dữ liệu kiểu logic là 1 ký tự

6) Kiểu bộ nhớ - Memo (M): Dữ liệu kiểu memo dùng lưu trữ một đoạn văn bản có độ dài lớn hơn 255 ký tự Chẳng hạn nhƣ các khóa đào tạo đã qua, lý lịch, quá trình công tác, Độ dài khai báo là 10 nhƣng nội dung thực sự của kiểu bộ nhớ là tuỳ ý, chúng được lưu trữ trong một tập tin văn bản khác có cùng tên nhưng phần mở rộng là FPT (FoxPro Text)

7) Kiểu tổng quát - General (G): Dùng để chứa dữ liệu nhƣ hình ảnh

Dữ liệu có thể được lưu trữ dưới các định dạng hình ảnh như BMP, GIF, và PSD, chẳng hạn như ảnh cán bộ trong các chương trình quản lý nhân sự, ảnh phạm nhân trong hệ thống quản lý nhận dạng, và biểu đồ.

1) Phép toán số học: Đƣợc thực hiện trên các dữ liệu kiểu số, gồm các phép toán:

Phép toán Ý nghĩa Ví dụ

+, - cộng, trừ 10- 2, 45+ 4 Độ ƣu tiên các phép toán theo thứ tự đã nêu ở trên, có thể thay đổi thứ tự tính

Chương 1 Tổng quan về Visual Foxpro thông thường

2) Phép toán xâu kí tự: Dùng để xử lý các dữ liệu kiểu xâu kí tự

- Phép toán ghép nối (+): Dùng để ghép 2 xâu kí tự thành một xâu kí tự

Ví dụ: 'Trung tâm' + ' Tin học'  'Trung tâm Tin học'

Phép toán ghép nối (-) cho phép kết hợp hai xâu ký tự thành một xâu duy nhất, đồng thời di chuyển các dấu cách ở cuối xâu thứ nhất (nếu có) ra phía sau xâu kết quả.

Ví dụ: 'Trung tâm ' - ' Tin học'  'Trung tâm Tin học '

- Phép toán $: Kiểm tra xâu bên trái có nằm trong xâu bên phải không Kết quả của phép toán có kiểu logic

Ví dụ: 'ab' $ „Abab‟ cho giá trị T nhƣng 'ab‟ $ „AaBb‟ cho giá trị F

3) Phép toán ngày: Hai dữ liệu kiểu ngày có thể trừ (-) cho nhau để cho khoảng cách giữa 2 ngày

Một dữ liệu kiểu ngày có thể cộng (+) hay trừ với (-) một số nguyên để cho kết quả là một dữ liệu kiểu ngày

- Hai dữ liệu kiểu ngày không thể cộng (+) với nhau

- Một số không thể trừ (-) đi một dữ liệu kiểu ngày

- Việc diễn tả thứ tự ngày (D), tháng (M), năm (Y) trong một dữ liệu kiểu ngày còn phụ thuộc vào thời điểm hiện tại đang theo hệ thống ngày tháng nào

+ Lệnh SET DATE FRENCH | AMERICAN : Cho phép thiết lập dữ liệu dạng

SET CENTURY ON | OFF cho phép người dùng chọn cách biểu diễn năm theo hai định dạng: bốn chữ số (yyyy) hoặc hai chữ số (yy) Khi SET CENTURY ON, năm sẽ hiển thị dưới dạng bốn con số, trong khi khi SET CENTURY OFF (mặc định), năm sẽ được biểu diễn bằng hai con số, với giả định là 19yy.

4) Phép toán quan hệ: Dùng để so sánh hai giá trị của hai biểu thức cùng kiểu

Phép toán Ý nghĩa Phép toán Ý nghĩa

> lớn hơn lớn hơn hay bằng

- Hai dữ liệu kiểu số đƣợc so sánh dựa theo biểu diễn của chúng trên trục số

- Hai dữ liệu kiểu ngày đƣợc so sánh dựa theo biểu diễn của chúng theo chiều của thời gian

- Trong kiểu logic, Visual FoxPro quy ƣớc: F. 'AB' cho kết quả F

Nếu SET EXACT OFF thì 'ABCD' = 'AB' cho kết quả T nhƣng 'AB' 'ABCD'

5) Phép toán logic: Visual FoxPro có 3 phép toán logic: NOT, AND, OR

NOT hay ! : Phủ định của toán hạng theo sau

AND: Cho giá trị T nếu cả hai toán hạng đều T

Chương 1 Tổng quan về Visual Foxpro

OR: Cho giá trị F nếu cả hai toán hạng đều F

Trong biểu thức Visual Foxpro, thứ tự ưu tiên của các phép toán bắt đầu với phép toán số học, tiếp theo là phép toán xâu kí tự, sau đó là phép quan hệ, và cuối cùng là phép toán logic.

Hằng là một đại lượng có giá trị không thay đổi trong suốt thời gian thực hiện chương trình Mỗi kiểu dữ liệu, ngoại trừ kiểu dữ liệu memo, đều có hằng tương ứng của nó.

Hằng xâu là một chuỗi ký tự được bao quanh bởi dấu ngoặc kép (" ") hoặc dấu nháy đơn (' '), với độ dài tối đa 255 ký tự Trong hằng xâu, việc phân biệt giữa chữ hoa và chữ thường là rất quan trọng.

Ví dụ: "abc"; 'tổng hợp', '123'

- Hằng kiểu ngày: Phải đƣợc đặt trong cặp dấu { }

Hằng logic: chỉ có 2 giá trị T và F

Biến là một yếu tố quan trọng trong việc lưu trữ dữ liệu trong quá trình tính toán, bao gồm hai đặc trưng chính là tên biến và giá trị của biến Tên biến phải tuân theo quy tắc dài không quá 10 ký tự, bắt đầu bằng chữ cái hoặc dấu _, và có thể bao gồm chữ cái, chữ số hoặc dấu _ Tên biến không được trùng với các từ khóa của Visual FoxPro và không phân biệt chữ hoa và chữ thường Visual FoxPro xác định kiểu của biến dựa trên giá trị mà nó chứa, với số lượng tối đa biến được phép sử dụng là 2048 Hệ thống này phân loại biến thành ba loại khác nhau.

Quản lý đề án ( Project Manager)

1.3.1 Giới thiệu Project Manager Đề án (Project) là tên gọi để chỉ đến ứng dụng mà ta đang xây dựng Mỗi dự án được lưu dưới dạng một file có phần mở rộng là PJX Thông thường các thành phần của một đề án bao gồm:

- Các file cơ sở dữ liệu (Database)

- Các bảng dữ liệu (Table)

- Các file khác nhƣ Menu, âm thanh, hình ảnh,

Project Manager là công cụ tổ chức thiết yếu, hoạt động như trung tâm điều khiển trong việc quản lý dữ liệu và các đối tượng của Visual FoxPro, hỗ trợ quá trình phát triển ứng dụng hiệu quả.

Ngay sau khi khởi động Visual Foxpro và mở đề án ta đi vào cửa sổ Project Manager:

Hình 1.2 Cửa số Project manager-Trang All

+ DataBases: Chứa các cơ sở dữ liệu

+ Tables: Các bảng dữ liệu có liên kết với nhau

+ Free Tables: Chứa các bảng tự do

+ Queries: Là cấu trúc để lấy thông tin từ các bảng

+ Local Views: Là các Query chuyên dụng dùng truy xuất và cập nhật các nguồn dữ liệu cục bộ

+ Remote Views: Là các Query chuyên dụng truy xuất và cập nhật các

Chương 1 Tổng quan về Visual Foxpro

- Trang Documents: Chứa các tài liệu sử dụng cho đề án; bao gồm các Form và Report, Label

- Trang Class: Liệt kê các thƣ viện lớp đƣợc sử dụng

- Trang Code: Chứa các đoạn mã lệnh

- Trang Other: Chứa các file khác nhƣ file Menu, văn bản

- Trang All: Bao gồm tất cả các trang trên

- Để tạo một đề án mới, sử dụng một trong các cách sau:

+ Cách 1: Nhập vào cửa sổ lệnh CREATE PROJECT

+ Cách 2: Chọn File/New/Project/New File Trong hộp thoại Create, nhập tên cho Project sẽ tạo rồi chọn nút Save

- Để chỉnh sửa bất kỳ một thành phần nào trong đề án, ta chọn tên đề án rồi chọn nút Modify

- Để thêm bất kỳ một file nào cho đề án, ta mở đề án rồi kích nút Add (nếu chọn file đã có) hoặc nút New (nếu tạo mới)

- Để loại bỏ bất kỳ một thành phần nào của đề án đang mở, ta chọn thành phần đó rồi chọn nút Remove

1.3.3 Mở đề án Để mở một đề án đã có, ta có thể sử dụng một trong các cách sau:

- Cách 1: Nhập vào cửa sổ lệnh: MODIFY PROJECT

- Cách 2: Chọn File/Open Trong hộp thoại Open, chọn file đề án, rồi chọn nút Open

+ Dịch đề án sang file có phần mở rộng là APP

Dùng lệnh BUILD

+ Để chạy đề án này phải có một bản sao của Visual Foxpro

Để chuyển đổi sang file có định dạng EXE, người dùng không cần cài đặt Visual Foxpro, nhưng phải cung cấp hai file quan trọng là vfp6r.dll và vfp6renu.dll Những file này cần được cài đặt trong đường dẫn thích hợp hoặc nằm trong cùng thư mục với ứng dụng.

Dùng lệnh: BUILD EXE

Sau khi đã dịch, ta có thể chạy đề án thông qua lệnh: DO .

Tạo lập cơ sở dữ liệu

Một đề án trong Visual FoxPro có thể liên quan đến một hoặc nhiều cơ sở dữ liệu, được lưu trữ dưới dạng file với phần mở rộng DBC Bên trong file này chứa các bảng dữ liệu có phần mở rộng DBF, cùng với các mối liên kết giữa các bảng và các View cục bộ.

- Để tạo một cơ sở dữ liệu mới cho một đề án ta thực hiện các thao tác sau:

Hình 1.3 Cửa số Project manager-Trang Data

+ Trong Project Manager, chọn trang All (hoặc Data), chọn mục Databases, rồi chọn nút New, xuất hiện hộp thoại New Database:

Hình 1.4 Hộp thoại New Database

+ Chọn New Database, xuất hiện hộp thoại Create:

Chương 1 Tổng quan về Visual Foxpro

+ Tại hộp thoại Create, nhập vào tên cơ sở dữ liệu mới vào mục Enter DataBase

+ Chọn Save Xuất hiện hộp thoại Database Designer cho phép ta thiết kế cơ sở dữ liệu Nếu không thì kích nút Close

Hình 1.6 Hộp thoại Database Designer

- Để mở một cơ sở dữ liệu trong một đề án, ta thực hiện:

Trong trang All (hoặc Data), để truy cập vào Database, bạn cần chọn tên cơ sở dữ liệu và nhấn nút Modify Ngoài ra, bạn cũng có thể nhấn vào dấu cộng bên cạnh tên cơ sở dữ liệu để thực hiện thao tác tương ứng.

BẢNG DỮ LIỆU (TABLE)

Một số khái niệm

Bảng dữ liệu được tổ chức theo dạng dòng và cột, trong đó mỗi dòng gọi là một bản ghi (record) và mỗi cột gọi là một trường (field) Mỗi bảng được đặt tên với phần mở rộng là DBF, và các trường cũng được đặt tên theo nguyên tắc đặt tên biến Đặc biệt, trong bảng cơ sở dữ liệu, không cho phép tồn tại hai dòng trùng nhau.

Trong Visual FoxPro có hai loại bảng:

- Database Table (bảng cơ sở dữ liệu): Là bảng dữ liệu nằm trong một cơ sở dữ liệu

- Free Table (bảng tự do): Là bảng dữ liệu không nằm trong bất kỳ một cơ sở dữ liệu nào

Mỗi bảng dữ liệu được lưu trữ trên đĩa với định dạng file mặc định là DBF, bao gồm hai phần chính: cấu trúc (lược đồ) và nội dung bảng (các thể hiện).

Thiết kế cơ sở dữ liệu bao gồm tạo các bảng cơ sở dữ liệu trong đó cần phải xác định:

- Tên các trường cần thiết trong bảng và kiểu dữ liệu của nó

- Các mối quan hệ cần thiết giữa các bảng với nhau

Ngoài việc tạo tiêu đề diễn giải, chúng ta cần xác định giá trị ngầm định và thiết lập các quy tắc an toàn dữ liệu cho các trường và bảng Đồng thời, việc chọn khóa và tạo chỉ mục cho các bảng cũng là những công việc quan trọng không thể bỏ qua.

Quy tắc mức trường là một đoạn mã được sử dụng để kiểm tra tính chính xác của dữ liệu khi người dùng nhập vào trường Các quy tắc này được thực hiện tự động ngay sau khi hoàn tất việc nhập dữ liệu vào trường đó.

Record -Level Rule: Là đoạn chương trình đặt ở mức bản ghi dùng để kiểm tra

Chương 2 Thao tác với bảng dữ liệu một cách tự động ngay sau khi nhập xong dữ liệu cho bản ghi đó

Trigger là một đoạn chương trình được đặt trong bảng nhằm kiểm tra tính chính xác của dữ liệu khi được nhập vào cơ sở dữ liệu Chúng tự động thực thi ngay sau khi có các thao tác thay đổi dữ liệu như chèn, sửa hoặc xóa.

Từ điển dữ liệu là một bảng tổng hợp thông tin quan trọng của các bảng trong cơ sở dữ liệu, bao gồm tên bảng, tên trường, quy tắc an toàn dữ liệu và mối quan hệ giữa các bảng.

Ví dụ 1: Trong cơ sở dữ liệu quản lý mua bán hàng

Bảng KHHang.dbf có cấu trúc sau:

Bảng MHang.dbf có cấu trúc sau:

Bảng MuaBan.dbf có cấu trúc sau:

Tạo bảng cơ sở dữ liệu

Để tạo bảng cơ sở dữ liệu ta dùng cách sau:

- Mở đề án, xuất hiện hộp thoại Project Manager

Để tạo bảng mới trong cơ sở dữ liệu, bạn cần chọn trang Data, sau đó chọn cơ sở dữ liệu và mục Table Tiếp theo, bạn nhấn vào New và chọn New table Cuối cùng, nhập tên bảng vào cửa sổ Create, lúc này hộp thoại Table Designer sẽ xuất hiện.

Hình 2.1 Hộp thoại Table Designer

Cho phép ta khai báo cấu trúc của bảng

- Name: Dùng để khai báo tên trường

- Type: Dùng để khai báo kiểu trường

- Width: Dùng để khai báo độ rộng của trường

Chương 2 Thao tác với bảng dữ liệu

- Decimal: Số chữ số lẻ sau phần dấu chấm thập phân, phần này chỉ sử dụng cho dữ liệu kiểu số

- Index: Cho phép tạo chỉ mục sắp xếp dữ liệu theo trường đó theo chiều tăng dần hoặc giảm dần

- Null: Cho phép trường có thể chứa giá trị Null (đánh dấu  thì được phép chứa giá trị Null)

- Caption: Cho phép tạo tiêu đề cho từng trường trong bảng dữ liệu Tên này sẽ xuất hiện trong cửa sổ Browser, trong Form

- Rule: Cho phép thiết kế các quy tắc mức trường

- Message: Cho phép nhập nội dung câu thông báo khi quy tắc mức trường sai

- Field Comment: Cho phép nhập lời chú giải cho từng trường

- Default value: Cho phép thiết lập giá trị mặc định

- Format: Định dạng dữ liệu hiện thị trong cửa sổ Brower hoặc Report

- Input mask: Dùng để định dạng khuôn dạng dữ liệu khi nhập

Khuôn dạng dữ liệu là một chuỗi ký tự, trong đó mỗi ký tự xác định cách thức định dạng dữ liệu đầu vào Tùy thuộc vào các ký tự trong khuôn dạng, quá trình định dạng sẽ được thực hiện theo những cách khác nhau Một số ký tự thường gặp trong khuôn dạng bao gồm:

- X : Cho phép một ký tự bất kỳ

- A : Cho phép một chữ cái

- N : Cho phép một chữ cái hoặc chữ số

- 9 : Cho phép một dấu cộng (+) hoặc trừ (-) hoặc chữ số

- # : Cho phép một dấu cộng (+) hoặc trừ (-) hoặc chữ số hoặc dấu cách

- ! : Nhận chữ cái khi nhập vào sẽ biến thành chữ in hoa

- Dấu chấm: Xác định vị trí dấu chấm thập phân trong dữ liệu kiểu số

- Dấu phẩy: Xác định vị trí phân nhóm trong dữ liệu số

Ví dụ: Input Mask của trường

Hệ số lương là: 9.99 Điện thoại là: 9999999999 Biển số xe máy là: 99A-9999

Cho phép tạo các chỉ mục sắp xếp dữ liệu trong bảng theo các biểu thức

- Order: Dùng để xác định chiều sắp xếp ( sắp xếp tăng dần,  sắp xếp giảm dần) của biểu thức sắp xếp

- Name: Dùng để xác định tên chỉ mục cần tạo

- Type: Dùng để xác định loại chỉ mục, có 4 loại chỉ mục:

Khóa chính là loại chỉ mục chính trong cơ sở dữ liệu, tồn tại khi bảng dữ liệu được tạo ra Nó được xây dựng dựa trên một biểu thức sắp xếp mà không có giá trị trùng lặp giữa các bản ghi Mỗi bảng dữ liệu chỉ cho phép có một khóa chính duy nhất.

+ Candidate: Có thể trở thành khoá chính, có thể tạo nhiều chỉ mục loại này trong một bảng dữ liệu

Chỉ mục Regular là loại chỉ mục được sử dụng để sắp xếp bảng dữ liệu theo một biểu thức nhất định, cho phép lưu trữ giá trị trùng lặp trong các bản ghi Người dùng có thể tạo nhiều chỉ mục loại này trong cùng một bảng dữ liệu.

Chương 2 Thao tác với bảng dữ liệu thức, cho phép chứa giá trị trùng nhau trên các bản ghi, kết quả chỉ xuất hiện một bản ghi đầu tiên

- Expression: Dùng để xác định biểu thức sắp xếp

- Filter: Dùng để lọc các bản ghi thoả mãn một điều kiện nào đó trước khi tạo chỉ mục

Chỉ mục sắp xếp là bảng chỉ dẫn sắp xếp, bao gồm hai trường: trường đầu tiên lưu giá trị của biểu thức cần sắp xếp, và trường thứ hai chứa con trỏ đến bản ghi trên bảng dữ liệu Các bảng chỉ mục này được lưu trữ trong file có tên tương ứng với bảng dữ liệu, với phần mở rộng là CDX.

Cho phép thiết kế các quy tắc ở mức bản ghi (Record Validation) và các quy tắc ở mức bảng (Trigger )

- Name: Dùng để xác định tên của bảng dữ liệu, tên này chỉ xuất hiện trong Project Manager Nó không phải là tên File

+ Rule: Dùng để thiết kế quy tắc kiểm tra dữ liệu ở mức Record

+ Massege: Cho phép nhập câu thông báo nếu quy tắc kiểm tra dữ liệu sai

+ Insert Trigger: Dùng để thiết kế quy tắc kiểm tra dữ liệu khi chèn một bản ghi mới

Cập nhật Trigger được sử dụng để thiết kế quy tắc kiểm tra dữ liệu khi có sự thay đổi trong thông tin, trong khi Delete Trigger được áp dụng để thiết lập quy tắc kiểm tra dữ liệu khi một bản ghi bị xoá.

- Các tên trường không được trùng nhau, không được trùng với từ khoá

Đối với dữ liệu kiểu số, nếu có phần thập phân, độ rộng của phần thập phân cần phải nhỏ hơn độ rộng của trường ít nhất 2 đơn vị.

Khi tạo cấu trúc bảng cơ sở dữ liệu, để xoá một trường, bạn chỉ cần chọn trường đó và nhấn Delete Để chèn trường mới, hãy chọn vị trí cần chèn và nhấn Insert Nếu bạn muốn kết thúc quá trình tạo cấu trúc mà không lưu lại, hãy chọn Cancel hoặc nhấn ESC Ngược lại, để lưu cấu trúc bảng vừa tạo, bạn chọn OK hoặc nhấn đồng thời Ctrl+W, lúc này sẽ xuất hiện hộp thoại xác nhận.

Hình 2.4 Hộp thoại nhắc nhập bản ghi

- Nếu chọn thì sẽ quay lại cửa sổ Project Manager

Khi bạn chọn , một cửa sổ sẽ xuất hiện cho phép bạn nhập các bản ghi vào bảng cơ sở dữ liệu Để hoàn tất quá trình nhập dữ liệu và lưu chúng lên đĩa, hãy nhấn tổ hợp phím.

hoặc kích nút Close, không ghi dữ liệu lên đĩa ấn phím ESC Mỗi bảng dữ liệu sẽ được lưu dưới dạng .DBF

Chương 2 Thao tác với bảng dữ liệu Để nhập dữ liệu cho trường MEMO, ta đưa con trỏ đến trường MEMO rồi nhấn tổ hợp phím Ctrl_PgUp, lúc đó sẽ xuất hiện cửa sổ nhập dữ liệu cho trường này Sau khi kết thúc việc nhập dữ liệu cho nó, ta ấn tổ hợp Ctrl+W để ghi lại, nếu không ghi ấn phím ESC.

Đổi tên một bảng trong cơ sở dữ liệu

- Trong cửa sổ Project Manager, chọn tên bảng cần đổi tên

- Kích chuột phải, chọn Rename

- Nhập tên mới vào hộp thoại Rename File Rồi chọn OK.

Xoá bảng khỏi cơ sở dữ liệu

- Trong cửa sổ Project Manager, chọn tên bảng cần xoá

- Chọn nút Remove, xuất hiện hộp thoại có 3 nút:

+ Remove: Tạm thời xoá khỏi cơ sở dữ liệu nhƣng vẫn còn trên ổ đĩa

+ Delete: Xoá bảng cơ sở dữ liệu ra khỏi đĩa

+ Cancel: Không xoá bảng cơ sở dữ liệu.

Thêm bảng vào cơ sở dữ liệu

Trong Visual FoxPro, tồn tại 2 dạng bảng:

Free Table: Là dạng bảng dữ liệu không nằm trong bất kỳ một cơ sở dữ liệu nào

Bảng cơ sở dữ liệu là một dạng bảng dữ liệu trong một cơ sở dữ liệu, có những đặc điểm nổi bật mà bảng tự do không có, bao gồm các quy tắc kiểm tra dữ liệu ở cấp độ trường, bản ghi, kích hoạt, và mối quan hệ bền vững giữa các bảng Bảng cơ sở dữ liệu không hỗ trợ các tính năng như tên dài, chú thích, bình luận, và giá trị mặc định.

Thêm bảng tự do vào một cơ sở dữ liệu:

- Trong mục Project Manager chọn Data, sau đó chọn mục Table

- Chọn nút Add sẽ xuất hiện hộp thoại Open, chọn bảng cần thêm

Sửa cấu trúc bảng cơ sở dữ liệu

- Trong cửa sổ Project Manager, chọn trang Data

- Chọn cơ sở dữ liệu chứa bảng dữ liệu, chọn mục Table

- Chọn bảng cần sửa cấu trúc, rồi chọn nút Modify.

Làm việc với các bản ghi

2.7.1 Xem nội dung của bảng

- Trong cửa sổ Project Manager, chọn trang Data/ chọn mục Table Sau đó, chọn tên bảng cần xem nội dung, rồi chọn nút Browse

- Muốn xem dữ liệu theo dạng bảng chọn menu View / Browse

- Muốn xem dữ liệu theo dạng mỗi trường trên một dòng thì chọn menu View / Edit (hoặc Append mode)

Khi mục chọn Append mode hoặc Edit đƣợc đánh dấu thì cho phép xem, sửa và thêm các bản ghi vào cuối bảng

2.7.2 Xem nội dung bảng kết hợp với chỉ mục

Hình 2.6 Hộp thoại Work Area Properties

Có thể tạo nhiều chỉ mục trên mỗi bảng, mỗi chỉ mục biểu diễn cho một trật tự

Chương 2 Thao tác với bảng dữ liệu làm nhƣ sau:

- Trong cửa sổ Project Manager, chọn bảng dữ liệu đã tạo chỉ mục theo tiêu chuẩn sắp xếp cần xem

- Trong hộp Index chọn tên chỉ mục cần dung

Cách 1: Trong cửa sổ Browser, chọn vào bên trái trường đầu tiên của bản ghi muốn xoá

+ Trong cửa sổ Browse, chọn menu Table / Delete Records Xuất hiện hộp thoại Delete

 All: tất cả các bản ghi bị đánh dấu xóa

 Record: để xác vị trí bản ghi cần đánh dấu xoá

 Next n: Xác định n bản ghi liên tiếp kể từ bản ghi hiện tại về phía cuối tệp

 Rest: tất cả các bản ghi từ bản ghi hiện thời về cuối tệp

+ Nhập điều kiện các bản ghi cần đánh dấu xoá tại mục For

+ Chọn nút Delete: Các bản ghi bị đánh dấu xóa có ký hiện ở đầu mỗi bản ghi

2.7.4 Khôi phục các bản ghi bị đánh dấu xoá

- Chọn Menu Table / Recall Records, xuất hiện hộp thoại Recall

- Chọn phạm vi các bản ghi cần khôi phục tại mục Scope

- Nhập điều kiện các bản ghi cần đánh dấu xoá tại mục For

2.7.5 Xoá các bản ghi đã bị đánh dấu xoá khỏi bảng dữ liệu

Chương 2 Thao tác với bảng dữ liệu

2.7.6 Cập nhật dữ liệu vào bảng

- Trong cửa sổ Browser, chọn Table / Replace Field, xuất hiện hộp thoại Replace Field

Hình 2.9 Hộp thoại Replace Field

+ Field: Xác định tên trường cần cập nhật + With: Xác định biểu thức cần cập nhật

+ Scope: Xác định phạm vi các bản ghi cần thay thế

+For: Xác định điều kiện các bản ghi cần cập nhật

- Nhập các thông số cần thiết, chọn Replace

Đặt mối quan hệ giữa các bảng

Mối quan hệ giữa các bảng trong cơ sở dữ liệu cho phép xác định sự kết nối giữa các bản ghi của bảng này với bảng khác Bảng đặt quan hệ được gọi là bảng cha, trong khi bảng được quan hệ gọi là bảng con Có nhiều kiểu quan hệ khác nhau giữa hai bảng cơ sở dữ liệu.

1) Kiểu quan hệ một - nhiều: Hai bảng A và B gọi là có mối quan hệ Một -

Mỗi bản ghi trong bảng A có thể tương ứng với không, một hoặc nhiều bản ghi trong bảng B, trong khi mỗi bản ghi trong bảng B chỉ tương ứng với tối đa một bản ghi của bảng A.

2) Kiểu quan hệ một - một: Hai bảng A và B gọi là có mối quan hệ Một - Một nếu mỗi bản ghi trong bảng A tương ứng với không quá một bản ghi trong bảng B và mỗi bản ghi trong bảng B tương ứng với không quá một bản ghi của bảng A trong mối quan hệ đó

3) Kiểu quan hệ nhiều - nhiều: Hai bảng A và B gọi là có mối quan hệ Nhiều -

Trong cơ sở dữ liệu, mối quan hệ giữa hai bảng có thể là Nhiều - Nhiều, nhưng Visual Fox không hỗ trợ loại mối quan hệ này Mỗi bản ghi trong bảng A có thể tương ứng với 0, 1 hoặc nhiều bản ghi trong bảng B, và ngược lại Khi thiết lập mối quan hệ giữa hai bảng, chúng ta cần xác định bảng bên một là bảng cha và bảng còn lại là bảng con.

Để thiết lập mối quan hệ giữa các bảng trong cơ sở dữ liệu, cần xác định khoá chính (Primary Key) và khoá ngoại (Foreign Key) Khoá chính phải được đặt trong bảng cha, trong khi khoá ngoại sẽ nằm trong bảng con để duy trì tính toàn vẹn của dữ liệu.

A Foreign Key is an index in one database table that references the Primary Key of another table, establishing a relationship between the two tables.

2.8.2 Thiết lập mối quan hệ giữa các bảng

- Mở dự án, chọn cơ sở dữ liệu chứa các bảng cần tạo mối quan hệ Sau đó, chọn nút Modify

- Nháy phải chuột vào nền của cửa sổ Database Designer, chọn Add Table, chọn tên bảng cần thiết lập mối quan hệ rồi chọn OK

- Kéo chỉ mục Primary Key của bảng cha và thả vào Foreign Key của bảng con

Chương 2 Thao tác với bảng dữ liệu

2.8.3 Hiệu chỉnh mối quan hệ giữa các bảng

In Database Designer, double-click on the connection line between the two tables to edit the relationship, which opens the Edit Relationship dialog box Here, the parent data table is displayed in the Table box, while the child data table and the relationship key are indicated in the Related table box The type of relationship is specified in the Relationship type section.

2.8.4 Xoá mối quan hệ giữa các bảng:

- Trong Database Designer, chọn đường quan hệ giữa hai bảng dữ liệu

Để quản lý hoạt động mua bán tại cửa hàng, một dự án mang tên "quanlybanhang" được thiết lập, với cơ sở dữ liệu QLBH chứa các bảng dữ liệu được cấu trúc hợp lý.

- Bảng KHHang.dbf có cấu trúc sau:

- Bảng MHang.dbf có cấu trúc sau:

- Bảng MuaBan.dbf có cấu trúc sau:

1 Tạo dự án quanlybanhang, tạo cơ sở dữ liệu QLBH

2 Tạo các bảng KHHang.dbf, MHang.dbf, MuaBan.dbf

3 Nhập dữ liệu cho các bảng

4 Sắp xếp bảng KHHang.dbf theo chiều tăng dần của makh

5 Sắp xếp bảng MuaBan.dbf theo chiều giảm dần của số lƣợng

6 Sắp xếp bảng MuaBan.dbf theo chiều giảm dần của đơn giá

7 Xem nội dung các bảng theo các chế độ Browse, Edit

8 Thêm vào bảng KHHang một số bản ghi

9 Xem nội dung các bảng MuaBan.dbf theo chiều giảm dần của số lƣợng

10 Xem nội dung các bảng MuaBan.dbf theo chiều giảm dần của đơn giá

11 Tạo mối quan hệ giữa các bảng

1 Chọn menu File / New / Project / NewFile

+ Trong hộp thoại Create, nhập quanlybanhang vào hộp textbox Enter Project

- Tạo cơ sở dữ liệu QLBH

+ Trong cửa sổ Project Manager, trong Data chọn mục Databases

+ Trong hộp thoại Create, nhập QLBH vào hộp textbox Enter Database + Chọn nút Save

Chương 2 Thao tác với bảng dữ liệu

- Trong hộp thoại Create, nhập KHHang vào hộp textbox Enter Table

- Trong hộp thoại Table Designer tiến hành khai báo từng trường

Hình 2.11 Màn hình khai báo cấu trúc bảng cơ sở dữ liệu

- Chọn OK để kết thúc khai báo cấu trúc, ghi cấu trúc lên đĩa

- Khai báo trường Makh có

+ Message: “Mã khách hàng không đƣợc để trống”

- Khai báo trường dienthoai có

Tương tự đối với bảng MHang.dbf, MuaBan.dbf

3 Nhập dữ liệu cho bảng KHHang.dbf

- Trong cửa sổ Project Manager chọn bảng Khhang cần nhập dữ liệu, chọn nút Browse

- Chọn menu View / Append Mode

- Nhập dữ liệu cho các bản ghi

- Ấn CTRL + W để kết thúc nhập và ghi dữ liệu lên đĩa

Tương tự đối với các bảng Mhang, Muaban

4 Chọn bảng KHHang trong cửa sổ Project Manager

- Nhập vào tên chỉ mục makhang ở cột Name

- Chọn kiểu chỉ mục Primary ở cột Type

- Nhập biểu thức chỉ mục Makh ở cột Expression

- Chọn  (thứ tự sắp xếp tăng dần) ở cột Order

- Trong cửa sổ Project Manager, chọn bảng KHHang

- Chọn Menu View/Browse để xem trong chế độ Browse

- Chọn Menu View/Edit để xem trong chế độ Edit

Tương tự đối với các bảng Mhang, Muaban

8 Thêm vào bảng KHHang một số bản ghi

- Trong cửa sổ Project Manager, chọn bảng KHHang

- Chọn Menu View / Append Mode

- Thêm vào một số bản ghi

- Ấn Ctrl + W để kết thúc nhập và lưu dữ liệu

9 Xem nội dung các bảng MuaBan.dbf theo chiều giảm dần của số lƣợng

Chương 2 Thao tác với bảng dữ liệu

- Chọn Menu Menu Table / Properties

- Trong hộp thoại Index chọn soluong

10 Xem nội dung các bảng MuaBan.dbf theo chiều giảm dần của đơn giá

- Trong cửa sổ Project Manager, chọn bảng MuaBan

- Chọn Menu Menu Table / Properties

- Trong hộp thoại Index chọn dongia

11 Trong cửa sổ Project Manager chon trang Data

- Chọn cơ sở dữ liệu Qlbh

- Nháy chuột phải vào bảng KHHang, chọn Modify

- Trong cửa sổ Table Designer, chọn trang Index

- Tạo chỉ mục kiểu Primary Key có tên là Makh, có biểu thức sắp xếp là Makh

- Tương tự trong bảng MHang tạo chỉ mục kiểu Primary Key có tên Mamh, có biểu thức sắp xếp là Makh

Trong bảng MuaBan, chúng ta tạo hai chỉ mục kiểu Regular: một chỉ mục có tên Makh với biểu thức sắp xếp là Makh, và một chỉ mục khác có tên Mamh với biểu thức sắp xếp là Mamh.

Trong cửa sổ DataBase Designer, bạn hãy kéo chỉ mục Makh từ bảng KHHang và thả vào chỉ mục Makh của bảng MuaBan Tương tự, kéo chỉ mục Mamh từ bảng MHang và thả vào chỉ mục Mamh của bảng MuaBan.

TÌM KIẾM THÔNG TIN (QUERY & VIEW)

Query (truy vấn)

Query là cấu trúc dùng để truy xuất thông tin nhanh chóng từ các bảng cơ sở dữ liệu Thực chất, Query là một lệnh Select…From…Where… được lưu trữ dưới dạng file có phần mở rộng QPR Để thiết kế một Query, cần thực hiện theo các bước cụ thể.

- Chọn các bảng hoặc View chứa thông tin nguồn cần tìm kiếm

- Xác định các trường cần cần đưa ra kết quả, cũng như biểu thức sắp xếp, chiều sắp xếp các bản ghi cần tìm kiếm

- Xác định các trường dùng để gộp (nhóm) các bản ghi nếu cần

- Chọn kiểu kết xuất của Query nhƣ: Browse, Table, Report…

- Chạy thử và kiểm tra Query

1) Query lấy dữ liệu từ một bảng cơ sở dữ liệu

- Trong Project Manager chọn trang Data/ Queries/ New/ New Query, xuất hiện hộp thoại Add Table or View

Hình 3.1 Hộp thoại Add Table or View

- Chọn cơ sở dữ liệu chứa bảng dữ liệu nguồn trong Combo Box Database

- Tại mục Select, chọn Table sẽ xuất hiện danh sách các bảng của cơ sở dữ liệu

Chương 3 Tìm kiếm thông tin

- Chọn bảng dữ liệu nguồn chứa thông tin cần tìm kiếm

- Chọn nút Add, xuất hiện cửa sổ Query Designer

Trong cửa sổ này có các trang sau:

+ Trang Field: Xác định các trường, các biểu thức cần đưa ra thông tin

+ Trang Join: Cho phép xác định các mối quan hệ giữa các bảng, các View (chỉ sử dụng khi dữ liệu nguồn nằm trong nhiều bảng, View)

+ Trang Filter: Dùng để xác định điều kiện lọc cho kết quả Query, chỉ có các bản ghi thoả mãn điều kiện lọc mới đƣợc đƣa ra Trong đó:

 Field Name: Dùng để xác định các trường, biểu thức có mặt trong biểu thức điều kiện

 Criteria: Dùng để xác định phép toán so sánh

 Not: Dùng để phủ định phép toán trong Criteria

 Example: Nhập giá trị cần so sánh

Nếu dữ liệu là kiểu Date thì giá trị trong Example phải viết theo mẫu {^yyyy/mm/dd}

Nếu giá trị trong Example chưa tường minh thì đặt vào đó một khối lệnh Select…From…Where để xác định giá trị đó

 Case: Dùng khi muốn phân biệt chữ hoa hay chữ thường Đánh dấu hộp kiểm tra thì không phân biệt chữ hoa và chữ thường

 Logical: Sử dụng khi có biểu thức điều kiện có chứa phép toán logic

Chương 3 Tìm kiếm thông tin

Khi sử dụng biểu thức điều kiện lọc phức tạp, bạn nên chọn mục "Expression" trong cột "Field name" và nhập trực tiếp biểu thức điều kiện vào mục "Expression" Sau đó, hãy nhấn nút "OK" để hoàn tất.

+ Trang Order By: Dùng để sắp xếp dữ liệu kết quả Trong đó

 List Box Select Field: Cho phép lựa chọn các trường, biểu thức dùng làm tiêu chuẩn sắp xếp

 List Box Ordering Criteria: Chứa các trường biểu thức đã được chọn dùng để làm tiêu chuẩn sắp xếp Thứ tự ưu tiên từ trên xuống dưới

 Order Option: Dùng để xác định chiều sắp xếp Ascending- Sắp xếp tăng dần, Descending-sắp xếp giảm dần

To select a field for sorting, choose the desired field from the Selected Fields box and click the Add button The field will then appear in the Ordering Criteria list box, allowing you to specify the sorting order.

Muốn bỏ một trường đã được chọn làm tiêu chuẩn sắp xếp thì ta chọn trường đó, rồi chọn nút Remove

+ Trang Group By: Dùng để gộp các bản ghi của một nhóm Trong đó

 List Box Available Field: Cho phép lựa chọn các trường, biểu thức dùng làm điều kiện gộp

 List Box Grouped Field: Chứa các trường biểu thức đã được chọn dùng để làm điều kiện gộp

Nút Having được sử dụng để xác định điều kiện cho nhóm dữ liệu, chỉ những nhóm đáp ứng điều kiện trong Having mới được hiển thị kết quả Việc thiết lập biểu thức điều kiện trong Having tương tự như cách thiết lập điều kiện trong trang Filter.

Hình 3.7 Hộp thoại nút Having

Muốn chọn một trường làm điều kiện gộp ta chọn trường đó trong hộp Available

Chương 3 Tìm kiếm thông tin

Muốn bỏ một trường đã được chọn làm điều kiện gộp thì ta chọn trường đó, rồi chọn nút Remove

Hộp kiểm tra No Duplicates cho phép người dùng ngăn chặn việc xuất hiện các bản ghi trùng lặp Khi chọn tùy chọn này, hệ thống sẽ không cho phép hiển thị các bản ghi giống nhau, đảm bảo tính duy nhất của dữ liệu.

 Mục Top: Dùng để xác định số lƣợng các bản ghi cần đƣợc đƣa ra kết quả

All: Đƣa ra tất cả các bản ghi Number of Record: Số lƣợng các bản ghi cần đƣa ra

Percent: Xác định phần trăm số lƣợng các bản ghi cần đƣa ra Khi chọn mục này thì nhập phần trăm vào mục Percentage

Chú ý: Mục chọn Number of Record, Percent chỉ có tác dụng nếu như trước đó mục Order By đã đƣợc chọn

Để thực hiện truy vấn từ bảng cơ sở dữ liệu MuaBan trong hệ thống QLBH, cần lấy thông tin bao gồm mã khách hàng, mã mặt hàng, số lượng, đơn giá, thành tiền và số hóa đơn cho mỗi giao dịch mà khách hàng đã thực hiện khi mua một mặt hàng trong một lần.

- Chọn trang Data / Queries / New / New Query, xuất hiện hộp thoại Add Table or View:

+ Trong hộp Database, chọn cơ sở dữ liệu QLBH

+ Trong hộp Table in Database, chọn bảng MuaBan

+ Chọn các trường Makh, MaMH, SoHD, Soluong, Dongia rồi chọn Add + Chọn nút có ba dấu chấm bên cạnh hộp Function and Expression

+ Nhập vào hộp Expression: Soluong*Dongia As Thanhtien

+ Trong hộp Field Name chọn trường Muaban

+ Trong hộp Criteria chọn dấu + Trong hộp Example nhập vào F

- Chọn biểu tƣợng Save trên thanh công cụ, hoặc chon File / Save

- Nhập vào tên Query hộp Save (chẳng hạn Vidu1)

- Để xem nhanh kết quả của Query vừa tạo chọn biểu tƣợng Run ( ! ) trên thanh công cụ

Để xem câu lệnh SQL, bạn chỉ cần nhấp chuột phải và chọn "View SQL" Bài viết này sẽ cung cấp thông tin chi tiết về mã khách hàng, mã mặt hàng, số lượng, đơn giá, thành tiền và số hóa đơn của mỗi khách hàng khi mua một mặt hàng trong một lần Danh sách kết quả sẽ được sắp xếp theo thứ tự giảm dần của thành tiền.

- Thao tác hoàn toàn tương tự như câu a

- Chỉ khác ở chỗ, khi thiết kế Query ta phải chọn thêm trang Order By

+ Chọn Soluong*Dongia As Thanhtien

Chương 3 Tìm kiếm thông tin c) Đƣa ra các thông tin gồm mã khách hàng, mã mặt hàng, số lƣợng, đơn giá, thành tiền, số hóa đơn mà mỗi khách hàng đã mua một mặt hàng trong một lần có số tiền mua lớn nhất Danh sách đƣa ra sắp xếp theo chiều giảm dần của thành tiền

- Thao tác hoàn toàn tương tự như câu b

- Chỉ khác ở chỗ trong khi thiết kế Query, ở trang Fillter

+ Trong hộp Field Name chọn trường Muaban

+ Trong hộp Criteria chọn dấu + Trong hộp Example nhập vào F

+ Trong hộp Logical chọn AND

To calculate the total amount spent by each customer per transaction, select "Expression" in the Field Name box and enter "Soluong * Dongia," then click OK In the Criteria box, choose the appropriate operator For the Example box, input "Select Max(Soluong * Dongia) From Muaban Where Muaban = F." This will yield the customer ID, invoice number, and total amount for each purchase, with each transaction represented by a unique invoice.

- Thao tác hoàn toàn tương tự như câu a

- Chỉ khác ở chỗ khi thiết kế Query, trong trang Fields ta chỉ chọn Makh, SoHD, Sum(Soluong*Dongia) As Tongtien

Trong trang Group By, chọn hai trường Makh và SoHD để hiển thị thông tin về mã khách hàng, mã mặt hàng, số lần mua và tổng số tiền mà mỗi khách hàng đã chi cho từng mặt hàng Danh sách kết quả sẽ được sắp xếp theo thứ tự tăng dần của số lần mua.

- Thao tác hoàn toàn tương tự như câu a

- Chỉ khác ở chỗ khi thiết kế Query, trong trang Fields ta chỉ chọn Makh, Mamh, Count(Makh) As Solan, Sum(Soluong*Dongia) As Tongtien

- Trong trang Group By chọn hai trường Makh, Mamh

- Ta phải chọn thêm trang Order By

+ Chọn Soluong*Dongia As Thanhtien

2) Tạo Query lấy dữ liệu từ nhiều bảng cơ sở dữ liệu

Trong Project Manager chọn trang Data

- Chọn cơ sở dữ liệu chứa bảng dữ liệu nguồn trong Combo Box Database

- Chọn Table hoặc View tại mục chọn Select (Nếu dữ liệu nguồn là View thì chọn mục Views) Xuất hiện danh sách các bảng của cơ sở dữ liệu

- Chọn các bảng hoặc view dữ liệu nguồn chứa thông tin cần tìm kiếm

- Chọn nút Add, xuất hiện cửa sổ Query Designer

- Tiến hành kết nối các bảng hoặc view

Khi thực hiện truy vấn để lấy thông tin từ nhiều bảng, điều đầu tiên cần làm là kết nối các bảng lại với nhau thành một bảng tạm Trong Visual Foxpro, có bốn loại kết nối khác nhau để thực hiện điều này.

Hình 3.9 Hộp thoại chỉnh sửa loại kết nối

Inner join là phép kết nối giữa hai bảng, cho phép chỉ hiển thị những bản ghi hoàn toàn khớp nhau giữa hai bảng có mối quan hệ.

Left outer join là một loại kết nối giữa hai bảng trong cơ sở dữ liệu, cho phép hiển thị các bản ghi mà hoàn toàn khớp với nhau giữa hai bảng, cũng như các bản ghi từ bảng cha không có mối quan hệ với bảng con.

+ Right outer join: Là mối kết nối giữa hai bảng cho phép xuất hiện các bản ghi mà

Chương 3 Tìm kiếm thông tin chúng hoàn toàn so khớp với nhau giữa hai bảng (chúng có quan hệ với nhau) hoặc các bản ghi nằm ở bên bảng con mà không có quan hệ với các bản ghi ở bảng cha

Full join là một loại kết nối giữa hai bảng trong cơ sở dữ liệu, cho phép hiển thị tất cả các bản ghi từ cả hai bảng Nó bao gồm các bản ghi hoàn toàn khớp nhau, cũng như các bản ghi chỉ có ở bảng con mà không có mối quan hệ với bảng cha, và ngược lại, các bản ghi ở bảng cha mà không có mối liên hệ với bảng con.

- Các thao tác thiết kế query tiếp theo thực hiện tương tự như đối với tạo query lấy dữ liệu từ một bảng

Khi đã có Query, có thể chạy Query để xem kết quả tìm kiếm trong cửa sổ Browse

+ Trong cửa sổ Project Manager chọn trang Data / Queries / tên Query cần chạy + Chọn nút Run

- Cách 2: Đƣa vào lệnh Do

4) Chọn hướng kết xuất cho Query

Hình 3.10 Hộp thoại hướng kết xuất của Query

View (khung nhìn)

View là một cấu trúc trong cơ sở dữ liệu giúp lấy thông tin từ các bảng, tương tự như Query, nhưng khác ở chỗ kết quả của View giống như một bảng thực tế Người dùng có thể cập nhật dữ liệu trong View và lưu kết quả vào bộ nhớ ngoài, cho phép tìm kiếm thông tin và cập nhật dữ liệu mà không cần thao tác trực tiếp với bảng dữ liệu nguồn.

View trong Visual Foxpro tương tự như Query, vì vậy quy trình tạo View cũng giống như tạo Query View là bảng ảo, do đó Visual Foxpro không lưu trữ kết quả của View như một bảng trong cơ sở dữ liệu, mà chỉ lưu lại cách thức tạo View, bao gồm tên các bảng dữ liệu nguồn và các trường được chọn Khi sử dụng View, hệ thống sẽ sử dụng cách thức này để xây dựng câu lệnh SQL nhằm tạo ra dữ liệu trong View.

Visual FoxPro hỗ trợ hai loại View: View cục bộ và View từ xa View cục bộ sử dụng câu lệnh SQL để truy xuất thông tin từ các bảng hoặc View trong cơ sở dữ liệu tập trung, trong khi View từ xa lấy dữ liệu từ các bảng nguồn trên mạng thông qua ODBC (Open DataBase Connectivity).

Trong khuôn khổ tài liệu này, ta chỉ đề cập đến các View cục bộ

- Trong Project Manager chọn trang Data

- Chọn DataBases, chọn cơ sở dữ liệu

- Chọn nút New / New View, xuất hiện hộp thoại Add Table or View

Để bắt đầu, hãy chọn cơ sở dữ liệu chứa bảng dữ liệu nguồn trong Combo Box Database Tiếp theo, bạn cần chọn Table hoặc View tại mục chọn Select; nếu dữ liệu nguồn là một View, hãy chọn mục Views Sau khi thực hiện các bước này, danh sách các bảng trong cơ sở dữ liệu sẽ xuất hiện.

+ Chọn các Table hoặc View chứa thông tin để tạo View

+ Chọn nút Add, bảng hoặc View đƣợc chọn xuất hiện trong cửa sổ View Designer

- Các trang trong cửa sổ View Designer tương tự như cửa sổ Query Designer, các thao tác tiến hành tạo View tương tự như tạo Query

- Để xem nhanh kết quả trong View, chọn biểu tƣợng Run ( ! ) trên thanh công cụ hoặc nháy phải chuột vào nền của cửa sổ View Desgner chọn Run Query

Chương 3 Tìm kiếm thông tin

- Để xem câu lệnh SQL, nháy phải chuột vào nền của cửa sổ View Desgner chọn View SQL

Hình 3.11 Hộp thoại View Designer

Khác với cửa sổ Query Designer, cửa sổ View Designer bổ sung trang Update Criteria, cho phép người dùng cập nhật dữ liệu từ View Việc này có thể dẫn đến việc thay đổi dữ liệu trên các bảng nguồn.

Để cập nhật sự thay đổi dữ liệu từ View về bảng dữ liệu nguồn, người dùng cần chọn mục "Send SQL Update" Có thể cập nhật một số trường mà không cần cập nhật toàn bộ bảng, nhưng ít nhất một trường phải là khoá của bảng dữ liệu để View Designer tự động nhận diện Nếu không, người dùng phải tự chọn ít nhất một trường làm khoá cho View Để cập nhật lại bảng dữ liệu nguồn cho trường cụ thể, chỉ cần chọn trường đó, và nút "Update All" cho phép chọn tất cả các trường được cập nhật.

Khi làm việc trong môi trường có nhiều người cùng sử dụng một cơ sở dữ liệu trên máy chủ, việc cập nhật đồng thời có thể gây ra xung đột Do đó, cần chú ý đến mục chọn SQL WHERE Clause Includes, đặc biệt khi tạo View từ xa.

Mục chọn Update Using có hai lựa chọn khi cập nhật dữ liệu:

- SQL DELETE then INSERT: Sử dụng câu lệnh SQL xoá rồi thêm vào

- SQL UPDATE: Sử dụng câu lệnh SQL để sửa trực tiếp

2) Xem kết quả trong View

Nếu đã có View, muốn xem kết quả trong View ta có thể sử dụng một trong các cách sau:

- Chọn tên View từ của sổ Project Manager

- Đƣa vào câu lệnh Use

- Đƣa vào câu lệnh Browse

- Trong cửa sổ Project Manager chọn tên View cần sửa

- Trong cửa sổ Project Manager chọn tên View cần đổi tên

- Chọn menu Project / Rename File

- Nhập vào tên mới trong hộp TO, rồi chọn nút OK

Chương 3 Tìm kiếm thông tin

- Trong cửa sổ Project Manager chọn tên View cần xoá

6) Tạo View có tham số

Ta có thể tạo một View mà điều kiện lọc (Fillter) có thể đƣợc nhập vào từ bàn phím, bằng cách tạo một View có tham số.

Hình 3.1 Hộp thoại View Designer tạo tham số

- Trong cửa sổ View Designer, tạo một View tương tự View thông thường

- Mở trang Fillter nhập biểu thức từ cột Field Name

- Chọn phép toán so sánh trong cột Cirteria

- Nhập vào ? (không đƣợc chứa dấy cách) vào cột Example

Trong cơ sở dữ liệu QLBH, cần tạo các View để thực hiện những công việc sau: a) Hiển thị thông tin mã khách hàng, mã mặt hàng, số lượng, đơn giá, thành tiền và số hóa đơn cho mỗi lần mua hàng của khách hàng b) Cung cấp thông tin tương tự nhưng sắp xếp theo thứ tự giảm dần của thành tiền c) Trình bày thông tin về lần mua hàng có số tiền lớn nhất của mỗi khách hàng, cũng sắp xếp theo thứ tự giảm dần của thành tiền d) Hiển thị mã khách hàng, số hóa đơn và tổng số tiền mỗi lần mua hàng e) Cung cấp thông tin về mã khách hàng, mã mặt hàng, số lần mua và tổng số tiền, sắp xếp theo thứ tự tăng dần của số lần mua f) Cuối cùng, hiển thị mã khách hàng, tên khách hàng, tên mặt hàng, số lượng, đơn giá, thành tiền và số hóa đơn, sắp xếp theo thứ tự giảm dần của thành tiền, và nếu thành tiền bằng nhau thì sắp xếp theo thứ tự tăng dần của số lượng.

Hướng dẫn thực hiện các thao tác tương tự như khi tạo query trong mục 3.1, nhưng thay vì chọn Query, hãy chọn Local Views Cần đưa ra thông tin bao gồm mã khách hàng, tên khách hàng, tên mặt hàng, số lượng, đơn giá, thành tiền và số hóa đơn cho mỗi lần khách hàng mua hàng, với mã khách hàng và mã mặt hàng được nhập từ bàn phím Danh sách kết quả sẽ được sắp xếp theo chiều giảm dần của cột số lượng.

Hướng dẫn: Thực hiện các thao tác hoàn toàn tương tự, chỉ khác ở chỗ trong trang Filter:

- Trong hộp Field Name chọn trường MaKH

- Trong hộp Criteria chọn dấu - Trong hộp Example nhập vào ?makh

- Trong hộp Logical chọn AND

- Trong hộp Field Name chọn trường MaMH

- Trong hộp Criteria chọn dấu - Trong hộp Example nhập vào ?mamh

MẪU BIỂU (FORM)

BÁO CÁO VÀ NHÃN (REPORT VÀ LABEL)

BẢNG CHỌN (MENU)

LẬP TRÌNH TRONG VISUAL FOXPRO

PHÂN PHỐI ỨNG DỤNG VÀ TẠO BỘ ĐĨA CÀI ĐẶT

Ngày đăng: 26/12/2021, 17:27

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Cửa số Project manager-Trang All - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 1.2. Cửa số Project manager-Trang All (Trang 16)
Hình 2.5.  Cửa sổ Browse - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 2.5. Cửa sổ Browse (Trang 28)
Hình 2.6. Hộp thoại Work Area Properties - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 2.6. Hộp thoại Work Area Properties (Trang 28)
Hình 2.7. Hộp thoại Delete - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 2.7. Hộp thoại Delete (Trang 29)
Hình 3.2. Trang Fields - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 3.2. Trang Fields (Trang 39)
Hình 3.6.  Trang Group by - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 3.6. Trang Group by (Trang 42)
Hình 3.12.  Trang Update Criteria - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 3.12. Trang Update Criteria (Trang 51)
Hình 3.11. Hộp thoại View Designer - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 3.11. Hộp thoại View Designer (Trang 51)
Hình 4.2.  Hộp thoại chọn loại công cụ Form wizard - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.2. Hộp thoại chọn loại công cụ Form wizard (Trang 56)
Hình 4.4. Hộp thoại bước 2 - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.4. Hộp thoại bước 2 (Trang 57)
Hình 4.9.  Hộp thoại bước 3 - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.9. Hộp thoại bước 3 (Trang 59)
Hình 4.14.  Hộp thoại One-To- any Form wizard- bước 2 - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.14. Hộp thoại One-To- any Form wizard- bước 2 (Trang 62)
Hình 4.17.  Kết quả chạy thử Form - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.17. Kết quả chạy thử Form (Trang 63)
Hình 4.18. Hộp thoại bước 4 - Giáo trình Hệ quản trị cơ sở dữ liệu
Hình 4.18. Hộp thoại bước 4 (Trang 65)
w