Thao tac tren bang du lieu

Phần Microsoft VisualFox

Chương 1

THAO TÁC TRÊN BẢNG DỮ LIỆU

Tóm tắt lý thuyết

1. MỘT SỐ KHÁI NIỆM CƠ BẢN

1.1. Kiểu dữ liệu ( Data Type)

a. Kiểu Character

b. Kiểu Numeric

c. Kiểu Float

d. Kiểu Date và Datetime

e. Kiểu Currency

f. Kiểu Memo

g. Kiểu Logical

h. Kiểu General

1.2. Hằng (Constant)

a. Hằng ký tự (Hằng chuỗi): Được đặt trong cặp dấu '..', "....", [...]

b. Hằng kiểu ngày: Đặt trong {.........}

c. Hằng kiểu số

d. Hằng logic

1.3. Biến ( Variable)

a. Biến nhớ

b. Biến trường

c. Biến hệ thống

1.4. Hàm (Function)

Hàm do người định nghĩa phải theo cú pháp sau:

FUNCTION <Tên hàm>

<Các lệnh>

RETURN <Giá trị>

1.5. Biểu thức (Expression)

Biểu thức được tạo bới các biến, hằng, hàm và một số phép toán. Kết quả của biểu thức thuộc về các kiểu dữ liệu Character, Numeric, Date, Datetime, Logical.

2. CÁC PHÉP TOÁN

2.1. Phép gán: Ký hiệu =

2.2. Phép toán chuỗi ký tự

a. Phép +

b. Phép -

c. Phép $

2.3. Phép toán trên kiểu ngày

Phép toán Kết quả

<Ngày> + Số <Ngày>

Số + <Ngày> <Ngày>

<Ngày> - Số <Ngày>

<Ngày> - <Ngày> Số

<Ngày giờ> + Số <Ngày giờ>

Số + <Ngày giờ> <Ngày giờ>

<Ngày giờ> - Số <Ngày giờ>

<Ngày giờ> - <Ngày giờ> Số

2.4. Phép toán quan hệ: =, <, >, >=, <=, != ( <>)

2.5. Phép toán logic: NOT ( hoặc !), AND, OR

2.6. Phép toán số học: +, -, *, /, ** ( Hoặc ^), % (Chia lấy phần dư)

2.7. Thứ tự ưu tiên của các phép toán

Thứ tự ưu tiên của phép toán trên cùng một hàng thì cùng mức ưu tiên, nếu các phép toán cùng mức ưu tiên thì tính từ trái sang phải.

a. Các phép tính số học: Dấu âm, dương

Luỹ thừa

Nhân, chia

Phần dư

Cộng, trừ

b. Các phép toán cộng chuỗi: +, -

c. Các phép toán quan hệ: =, <, >, >=, <=

d. Các phép tính logic: NOT, OR, AND

3. LỆNH VÀ CẤU TẠO LỆNH

3.1. Lệnh

Lệnh là một chỉ thị của người sử dụng yêu cầu VisualFox làm một việc gì đó. Lệnh có thể đưa vào từ cửa sổ lệnh hoặc menu hệ thống

3.2. Cấu tạo lệnh

<Lệnh> [phạm vi] [FIELDS <dsách trường>] [FOR <bthức logic1>] [WHILE <biểu thức logic2>] [FROM <tên file> / ARRAY <tên mảng>] [TO print/tên file/dsách biến]

4. MỘT SỐ LỆNH CƠ BẢN

4.1 Định vị con trỏ đến một bản ghi

a. Định vị tuyệt đối

Cú pháp: GO <N>|[TOP]|[BOTTOM]

b. Định vị tương đối

Cú pháp: Skip [+|-] [<n>]

4.2. Lấy dữ liệu từ bảng

a. Lệnh Display

Cú pháp: Display [<phạm vi>] [fields<danh sách trường>] [For<bthức logic>] [While<bthức logic>] [on|off ]

b. Lệnh LIST

Cú pháp: List [<phạm vi>] [fields<danh sách trường>] [For<bthức logic>] [While<bthức logic>] [on|off]

c. Lệnh ?|??

Cú pháp: ?|?? <danh sách biểu thức>

4.3. Chèn, bổ sung bản ghi

a. Chèn bản ghi

Cú pháp: INSERT [BEFORE][BLANK]

b. Bổ sung bản ghi

Cú pháp: APPEND [BLANK]

4.4. Sửa chữa nội dung bản ghi

a. Lệnh BROWSE

Cú pháp: BROWSE [field<dsách trường>] [Freeze<dsách trường>][nodelete] [NOEDIT] [FOR<Bthức logic>]

b. Lệnh Edit

Cú pháp: Edit [<phạm vi>] [field<dsáchtrường>][ Noappend][nodelete] [noedit] [for<Bthức logic>] [While<Bthức logic>]

c. Lệnh REPLACE

Cú pháp: REPLACE [<phạmvi>]<trường 1>WITH<Bthức 1>[,<trường 2> WITH <Bthức 2> .......[for<Bthức logic>] [While<Bthức logic>]

4.5. Xoá và khôi phục bản ghi

a. Đánh dấu xoá

Cú pháp: DELETE [<phạm vi>] [For<Bthức logic>] [While<bthức LOGIC>]

b. Xoá

Cú pháp: PACK

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

Cú pháp: RECALL [<phạm vi>] [For<Bthức logic>] [While<bthức logic>]

4.6. Lọc dữ liệu

Cú pháp: SET FILTER TO <Bthức logic>

4.7. Thao tác với cấu trúc bảng

a. Xem cấu trúc bảng (List|Display structure)

Cú pháp: List | Display structure

b. Sửa đổi cấu trúc bảng dữ liệu

Cú pháp: MODIFY STRUCTURE

c. Sao lưu cấu trúc bảng dữ liệu

Cú pháp: Copy structure to <Tên Bảng> [fields<danh sách trường>]

d. Sao chép bảng

Cú pháp: Copy to <Tên bảng đích> [<phạm vi>] [fields <danh sách trường>] [For<Bthức logic>] [While<Bthức logic>]

5. SẮP XẾP, TÌM KIẾM VÀ THỐNG KÊ

5.1. Sắp xếp theo chỉ mục

a. Lập chỉ mục IDX cho bảng dữ liệu

Cú pháp: INDEX ON <bthức khoá> TO <tên file idx>[FOR<bthức logic>] [UNIQUE]

b. Một số lệnh liên quan

SET INDEX TO <file chỉ mục>: Dùng để mở file chỉ mục sau khi đã mở một bảng dữ liệu.

SET INDEX TO: Dùng để đóng file chỉ mục.

REINDEX: Dùng để cập nhật lại file chỉ mục sau khi có sự sửa đổi trên bảng dữ liệu.

5.2. Tìm kiếm

a. Tìm kiếm tuần tự

Cú pháp: LOCATE [<phạm vi>] FOR<bthức logic> [WHILE<bthức logic>]

b. Lệnh continue

Cú pháp : CONTINUE

c. Tìm kiếm sau khi đã lập chỉ mục

Cú pháp : SEEK <biểu thức>

5.3. Thống kế

a. Đếm số lượng bản ghi

Cú pháp:COUNT [<phạm vi>][FOR<Bthức Logic>] [WHILE<Bthức Logic>] [TO<biến nhớ>]

b. Tính tổng giá trị các trường kiểu số

Cú pháp: SUM [<phạm vi>] [<dsách bt>] [TO <ds biến>][FOR <Bthức logic>] [WHILE <Bthức logic>]

c. Tính trung bình cộng các trường kiểu số

Cú pháp: AVERAGE [<phạm vi>] [<ds biểu thức>] [TO <ds biến >] [FOR <bt logic>] [WHILE <Bthức logic>]

d. Tính tổng các trường số theo nhóm

Cú pháp: TOTAL ON <Bt Khóa> to <tên bảng mới.DBF>[<Phạm vi>]

[FIELD <dstrường>][FOR <Bthức Logic>][WHILE < Bthức Logic>]

A. Bài tập có lời giải

BÀI SỐ 1

Để quản lý thông tin của nhân viên người ta sử dụng một tập tin dự án QLNV.PJX chứa tập tin cơ sở dữ liệu QLNV.DBC, tập tin này chứa bảng HOSONV.DBF có cấu trúc như sau:

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MANV C 5 Mã nhân viên Khoá chính

MADV C 2 Mã đơn vị

HOLOT C 20 Họ đệm

TEN C 10 Tên

NGAYSINH D 8 Ngày sinh

DIACHI C 30 Địa chỉ

GIOITINH L 1 Giới tính Nam: .T.

a. Dùng lệnh SORT để sắp xếp lại bảng dữ liệu HOSONV.DBF sang một bảng dữ liệu mới HOSONVSX.DBF theo chỉ tiêu: Các bản ghi được sắp xếp theo mã đơn vị (giảm dần), trong mỗi đơn vị thứ tự tên, họ được sắp xếp tăng dần.

b. Mở tập tin HOSONVSX.DBF

Sử dụng lệnh BROW liệt kê các trường MADV, HOLOT, TEN, NGAYSINH, MLUONG .

c. Lập 3 tập tin chỉ mục: CMASO.IDX theo trường MANV, CDONVI.IDX theo trường MADV, CLUONG.IDX theo trường LUONG giảm dần.

Bằng cách thay thế tập tin chỉ mục chủ, hãy liệt kê các bản ghi theo MANV tăng dần, theo MADV tăng dần, theo LUONG giảm dần.

d. Dùng lệnh LOCATE:

Tìm người có họ tên là 'NGUYEN MINH HUONG'. Dùng lệnh DISPLAY cho hiện nội dung của bản ghi này, rồi dùng lệnh EDIT để sửa lại.

Tìm những người ở phòng Tổ chức (MADV='TC'), cho hiện đầy đủ thông tin của những người này.

Tìm những người có LUONG > 100000.

e. Dùng lệnh SEEK để tìm kiếm người có MANV='0001A' rồi hiển thị nội dung của bản ghi này.

f. Cho biết địa chỉ của người có tên là 'THUY', sinh ngày 11/11/80 .

Hướng dẫn giải

Chọn File/New/Project/Newfile

Trong mục Enter Project: QLNV

Chọn Data/Databases/New/New Databases

Trong mục Enter Database : QLNV

Chọn Database/New table/New Table

Trong mục Enter Table : HOSONV

Trong mục Name : Chọn tên trường, chọn Indexes, chọn Primary đối với trường MANV.

Type : Chọn kiểu dữ liệu

Width : Chọn độ rộng

Decimal : Số chữ số thập phân

Index : Thiết lập chỉ mục:

Null: Cho phép giá trị của trường là Null hoặc không

Trong mục Display : Chọn hình thức hiển thị của dữ liệu

Trong mục Field Validation: Chọn ràng buộc dữ liệu và đặt giá trị mặc định.

Sau khi tạo cấu trúc bảng xong, nhập 10 bản ghi cho bảng dữ liệu HOSONV.

MANV MADV HOLOT TEN NGAYSINH DIACHI GIOITINH

0001A

0001B

K0003

K0001

C0002

C0003

C0004

T0005

T0006

T0007 TC

HC

TC

HC

KT

TC

HC

KT

TC

HC

Cao Van

Nguyen Thi

Dau Van

Le

Te Thi

Le Van

Cao

Do Duc

Lo Thi

Ly Van Huong

Ly

Tung

Cung

Quen

Ty

Cuoi

Lan

Huong

Hy

11-04-1975

12-05-1965

04-12-1978

06-06-1979

18-10-1977

09-04-1969

01-10-1965

15-02-1968

08-01-1967

02-06-1965 Hue

Hue

Quang Binh

TP.HCM

TP.HCM

Hue

Hue

Da Nang

Hue

Qtri .T.

.F.

.T.

.T.

.T.

.F.

.T.

.F.

.T.

.F.

Trở về cửa sổ lệnh (Command) rồi lần lượt thực hiện các lệnh sau

USE HOSONV

a. SORT TO HOSONVSX ON MADV/D, TEN/A, HOLOT/A

b. USE HOSONVSX

BROW Fiel MADV, HOLOT, TEN, NGAYSINH, MLUONG .

c. USE HOSONV

INDE ON MANV TO CMASO

INDE ON MADV TO CDONVI

INDE ON -LUONG TO CLUONG

SET INDE TO CMASO

BROW

SET INDE TO CDONVI

BROW

SET INDE TO CLUONG

BROW

d. LOCA FOR ALLT(HOLOT)+' '+ALLT(TEN)='NGUYEN MINH HUONG'

DISP

EDIT

LOCA FOR MADV='TC'

DISP

LOCA FOR LUONG>1000000

e. INDE ON MANV TO SXMANV

SEEK '0001A'

DISP

f. BROW FIEL DIACHI FOR TEN='THUY' AND NGAYSINH={11/11/80}

BÀI SỐ 2

Để quản lý điểm của sinh viên bộ phận giáo vụ sử dụng một tập tin dự án QLDIEMSV.PJX chứa tập tin cơ sở dữ liệu QLDIEM.DBC, tập tin này chứa bảng DIEMSV.DBF có cấu trúc như sau:

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MASV C 5 Mã sinh viên Khoá chính

HOLOT C 20 Họ lót

TEN C 10 Tên

NGAYSINH D 8 Ngày sinh

QUEQUAN C 30 Quê quán

VFOX N 2 Điểm VFOX

ACCESS N 2 Điểm ACCESS

PASCAL N 2 Điểm Pascal

DTB N 4,2 Điểm TB

XEPLOAI C 20 Xếp loại

Nhập vào 10 bản ghi cho các trường: MASV, HOLOT, TEN, NGAYSINH, QUEQUAN, VFOX, ACCESS, PASCAL như sau:

MASV HOLOT TEN NGAYSINH QUEQUAN VFOX ACCESS PASCAL

K0001

K0002

K0003

T0001

T0002

T0003

T0004

T0005

T0006

T0007 Cao Van

Nguyen Thi

Dau Van

Le

Te Thi

Le Van

Cao

Do Duc

Lo Thi

Ly Van Huong

Ly

Tung

Cung

Quen

Ty

Cuoi

Lan

Huong

Hy 11-04-1975

12-05-1965

04-12-1978

06-06-1979

18-10-1977

09-04-1969

01-10-1965

15-02-1968

08-01-1967

02-06-1965 Hue

Hue

Quang Binh

TP.HCM

TP.HCM

Hue

Hue

Da Nang

Hue

Qtri 6

7

7

7

8

7

9

7

8

8 9

6

4

7

4

6

9

6

4

5 7

8

7

9

7

9

10

9

4

2

a. Tính (điểm trung bình), biết rằng VFOX có hệ số hai, ACCESS có hệ số 1, PASCAL có hệ số 3. Xếp loại, biết rằng:

DTB>=9 : Xếp loại 'GIOI'

7<=DTB<9 : Xếp loại 'KHA'

5<=DTB<7 : Xếp loại 'TB'

DTB<5 : Xếp loại 'YEU'

b. Sắp xếp giảm dần theo DTB và ghi vào bảng dữ liệu SXDTB.DBF. Mở bảng dữ liệu SXDTB.DBF rồi dùng lệnh BROWSE để xem kết quả

c. Đổi dữ liệu của trường QUEQUAN thành chữ hoa.

d. Tính trung bình cộng của các môn học cho toàn bộ các bản ghi, cho từng nhóm có MASV bắt đầu bằng 'K', 'T'.

e. Cho biết số sinh viên có ít nhất hai môn có điểm >=8.

f. Từ bảng dữ liệu DIEMSV.DBF hãy tạo ra một bảng dữ liệu DIEMGIOI.DBF để lưu thông tin của những sinh viên Xếp loại giỏi.

g. Loại bỏ những sinh viên xếp loại yếu ra khỏi bảng dữ liệu DIEMSV.DBF.

Hướng dẫn giải

USE DIEMSV

a. REPL ALL DTB WITH (VFOX*2+ACCESS+PASCAL*3)/6

REPL ALL XEPLOAI WITH IIF(DTB<5, 'YEU', IIF(DTB<7,'TB', IIF(DTB<8,'KHA','GIOI')))

b. SORT TO SXDTB ON DTB/D

USE SXDTB

BROW

c. REPL ALL QUEQUAN WITH UPPE(QUEQUAN)

d. SUM VFOX, ACCESS, PASCAL TO X, Y, Z

SUM VFOX, ACCESS, PASCAL FOR LEFT(MASV,1)='T' TO X, Y, Z

SUM VFOX, ACCESS, PASCAL FOR LEFT(MASV,1)='K' TO X, Y, Z

e. COUN TO X FOR MIN(VFOX,ACCESS)>=8 OR MIN(VFOX,PASCAL)>=8 OR MIN(ACCESS, PASCAL)>=8

f. COPY TO DIEMGIOI FOR XEPLOIA='GIOI'

g. DELE FOR XEPLOAI='YEU'

PACK

B. Bài tập không lời giải

BÀI SỐ 1

Để quản lý vật tư trong của hàng XYZ sử dụng một tập tin dự án QLVATTU.PJX chứa tập tin cơ sở dữ liệu QLVATTU.DBC, tập tin này chứa các bảng có cấu trúc như sau:

Bảng NHAPVATU.DBF

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MAVT C 5 Mã vật tư

NGAYNHAP D 8 Ngày nhập kho

MANX C 1 Mã nhập, xuất Nhập: N

SOLUONG N 6 Số lượng nhập

DONGIA N 9 Đơn giá

THANHTIEN N 10 Thành tiền

Nhập vào 10 bản ghi theo bảng dữ liệu trên:

MAVT NGAYNHAP MANX SOLUONG DONGIA

TV001 01-01-1998 N 12 3850000

TL001 04-01-1998 N 10 4700000

ML001 08-01-1998 X 40 5100000

BU001 04-05-1998 N 30 220000

QB001 05-01-1998 N 28 350000

MG001 05-06-1998 X 12 4000000

ND001 06-06-1998 N 20 650000

HD002 10-10-1998 N 12 13000000

HD004 01-01-1998 N 10 16000000

XD001 01-01-1998 X 30 1200000

Bảng TONKHO99.DBF

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MAVT C 5 Mã vật tư

TONDAU N 10 Tồn đầu kỳ

SLN N 10 Số lượng nhập

SLX N 10 Số lượng xuất

TONCUOI N 10 Tồn cuối

Nhập vào các bản ghi cho bảng dữ liệu

MAVT TONDAU

TV001

TL001

ML001

BU001

QB001

MG001

ND001

HD002

HD004

XD001 12

30

50

40

50

55

100

50

45

100

Bảng DMVTU.DBF

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MAVT C 5 Mã vật tư Khoá chính

TENVT C 30 Tên vật tư

Nhập vào các bản ghi cho bảng dữ liệu.

MAVT TENVT

TV01 Tivi mau SHAP 14

TL001 Tu lanh TOSHIBA 1401

ML001 May lanh 1.5 HP

BU001 Ban ui Philip

QB001 Quat ban Hitachi

MG001 May giat SANYO 40

ND001 Noi com dien SANYO

HD002 Xe cub 86

XD001 Xe dap NHAT

HD002 Xe Union

a. Tính giá trị trường THANHTIEN của tập tin NHAPVT.DBF

b. Tính tổng số tiền nhập của mỗi loại vật tư có chữ cái đầu tiên bên trái giống nhau.

c. Tính SLN, SLX, TONCUOI, sau thời gian nhập xuất trên.

d. Tạo bảng dữ liệu TONKHO95.DBF có cấu trúc giống như bảng TONKHO99.DBF. Lấy TONCUOI của bảng dữ liệu TONKHO95.DBF để cập nhật vào TONDAU của TONKHO99.DBF

e. Liệt kê danh sách Nhập vật tư gồm các mục sau:

TENVT MAVT NGAYNHAP MANX SOLUONG

f. Liệt kê danh sách TONKHO gồm các mục sau:

MAVT TENVT TONDAU TONCUOI

BÀI SỐ 2

Để quản lý điểm của một trung tâm tin học, ban giám đốc trung tâm sử dụng Project QLHV.PJX chứa một CSDL QuanlyHV.dbc gồm các bảng dữ liệu có cấu trúc như sau:

Bảng HOCVIEN có cấu trúc như sau:

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_HV C 5 Mã học viên Khoá chính

MA_LOP C 4 Mã lớp

HO C 20 Họ

TEN C 10 Tên

PHAI L 1 Phái

NGAY_SINH D 8 Ngày sinh

NOI_SINH C 30 Nơi sinh

DIA_CHI C 30 Địa chỉ

MA_GV_CN C 3 Mã GVCN

Bảng GVCN

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_GV_CN C 3 Mã GVCN Khoá chính

TEN C 30 Họ tên GVCN

DIACHI C 30 Địa chỉ

SODT C 9 Số điện thoại

Bảng DIEMHOCVIEN

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_HV C 5 Mã học viên Khoá chính

DIEM_LT N 4,1 Điểm LT

DIEM_TH N 4,1 Điểm TH

DIEMTB N 4,1 Điểm TB

XEPLOAI C 15 Xếp loại

a. Nhập dữ liệu thích hợp cho các bảng dữ liệu trên.

b. Sử dụng bảng HOCVIEN hãy hiển thị các thông tin HO, TEN, PHAI, NGAY_SINH đối với những học viên nữ (PHAI=.F.).

c. Hiển thị tổng số học viên trong bảng HOCVIEN.

d. Tính giá trị DIEMTB=(DIEM_LT+DIEM_TH*2)/3.

XEPLOAI: "Yếu" nếu DIEMTB<5, "TB" nếu 5<=DIEMTB<7, "KHÁ" nếu 7<=DIEMTB<8,"GIỎi" nếu DIEMTB>=8.

e. Thực hiện các yêu cầu sau:

Hiển thị danh sách các học viên nam (PHAI=.T.).

Hiển thị các học viên nam có tuổi từ 18 đến 35.

Hiển thị theo thứ tự tăng đần của TEN, HO của nhứng học viên có địa chỉ ở TT-Huế.

Loại bỏ các học viên xếp loại "YẾU"

f. Thiết lập mối quan hệ cho 3 bảng dữ liệu trên.

g. Đếm xem có bao nhiêu học viên có nơi sinh ở Huế xếp loại "giỏi".

h. Sử dụng lệnh SET FILTER TO để xem những học viên nữ đạt loại "TB".

i. Hiển thị danh sách học viên thuộc lớp của giáo viên chủ nhiệm "Lê văn Tam" nhưng chỉ gồm các thông tin: Mã lớp, Họ và tên, Điểm trung bình, Xếp loại.

BÀI SỐ 3

Để quản lý các mặt hàng bán được trong một siêu thị HÙNG VƯƠNG, ban quản lý siêu thị sử dụng Project QLSIEUTHI.PJX chứa một CSDL Banhang.dbc gồm các bảng dữ liệu có cấu trúc như sau:

Bảng KH_HANG (Khách hàng)

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_KH C 6

TEN_KH C 30

DIA_CHI C 30

TINH_TP C 20

THIXA_QH C 30

SO_DT C 9

FAX C 15

Bảng DON_HANG (Đơn hàng)

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_DH C 6

MA_KH C 6

MA_NV C 6

TEN_NV C 30

DIACHI_NN C 30

THANHPHO_NN C 15

NGAY_DH D 8

NGAY_GIAO D 8

TIEN N 12

Bảng CHITIET_DH (Chi tiết đơn hàng)

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_DH C 6

MA_SP C 6

DONGIA N 8

SOLUONG N 6

Bảng NHAN_VIEN (Nhân viên)

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_NV C 6

HO_NV C 20

TEN_NV C 10

NGAYSINH D 8

DIA_CHI C 30

THANH_PHO C 20

NUOC C 15

SO_DT C 9

Bảng MAT_HANG (Mặt hàng) có cấu trúc như sau:

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_SP C 6

TEN_SP C 20

SOLUONGCO N 10

a. Lập các chỉ mục và thiết lập mối quan hệ cho các bảng dữ liệu trên.

Bảng KH_HANG

Tên chỉ mục Loại chỉ mục Biểu thức

MA_KH PRIMARY MA_KH

TINH_TP REGULAR TINH_TP

Bảng DON_HANG

Tên chỉ mục Loại chỉ mục Biểu thức

MA_DH PRIMARY MA_DH

MA_KH REGULAR MA_KH

MA_NV REGULAR MA_NV

Bảng CHITIET_DH

Tên chỉ mục Loại chỉ mục Biểu thức

MA_DH PRIMARY MA_DH

MA_SP REGULAR MA_SP

Bảng MAT_HANG

Tên chỉ mục Loại chỉ mục Biểu thức

MA_SP PRIMARY MA_SP

Bảng NHAN_VIEN

Tên chỉ mục Loại chỉ mục Biểu thức

MA_NV PRIMARY MA_NV

b. Nhập dữ liệu phù hợp cho các bảng dữ liệu trên.

c. Dùng bảng dữ liệu KH_HANG để hiển thị tên khách hàng, tên cơ quan, địa chỉ, số điện thoại của các khách hàng ở "HÀNỘI".

d. Dùng bảng dữ liệu KH_HANG để tạo truy vấn với yêu cầu sau: Hiển thị tên khách hàng, tên cơ quan, địa chỉ, số điện thoại của các khách hàng ở "HUẾ" và có tên bắt đầu là "T".

e. Hiển thị các khách hàng có tổng giá trị đơn hàng từ 50000 đến 200000.

f. Hiển thị các khách hàng ở "TPHCM" và có tổng giá trị đơn hàng >=500000.

g. Sử dụng bảng NHAN_VIEN hiển thị danh sách các nhân viên có Tuổi là 30.

h. Hiển thị các thông tin Mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng có giá trị trên 1000000.

i. Hiển thị các thông tin Mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng giao trong quý 1 năm 2000 và sắp xếp theo thứ tự về thời gian.

j. Hiển thị 5 đơn đặt hàng có giá trị lớn nhất trong.khoảng thời gian từ 20/10/99 đến 31/12/99.

k. Hiển thị 5 mặt hàng có số lượng đặt hàng nhiều nhưng chỉ hiển thị mã mặt hàng, tên mặt hàng và số lượng.

m. Sử dụng 2 bảng KH_HANG và DON_HANG để hiển thị các đơn hàng của khách hàng trong tháng 8 năm 99.

l. Hiển thị 5 đơn hàng của 5 khách hàng có giá trị lớn nhất.

p. Hiển thị tổng giá trị các đơn hàng của các khách hàng ở "Đà Nẵng".

q. Hiển thị tổng số lượng của mỗi mặt hàng bán ra trong quý 1 năm 2000.

k. Dùng bảng dữ liệu KH_HANG để tạo truy vấn với yêu cầu: Hiển thị thông tin tên khách hàng, tên cơ quan, địa chỉ, số điện thoại, thị xã, huyện của khách hàng ở HÀ NỘI hoặc HẢI PHÒNG hoặc TPHCM.

s. Hiển thị các khách hàng ở HUẾ nhưng có tổng giá trị đơn đặt hàng >1000000.

r. Dùng bảng NHAN_VIEN để liệt kê danh sách các nhân viên có tuổi là 35.

t. Hiển thị các đơn hàng có giá trị trên 500000. Xuất ra màn hình các thông tin mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ.

v. Hiển thị các thông tin mã số đơn hàng, mã số khách hàng, ngày đặt hàng, ngày giao hàng, người nhận, địa chỉ đối với các đơn hàng có ngày giao hàng trong tháng 10 và xếp theo thứ tự tăng dần của thời gian.

x. Hiển thị 10 đơn đặt hàng có giá trị lớn nhất trong khoảng thời gian từ 01/01/95 đến 01/01/96.

y. Hiển thị 10 mặt hàng có số lượng đặt hàng nhiều nhất, xuất ra màn hình mã mặt hàng và số lượng.

w. Sử dụng 2 bảng KH_HANG và DON_HANG để xuất ra màn hình các đơn hàng của khách hàng trong tháng 9 năm 2000.

z. Hiển thị tổng giá trị các đơn hàng của khách hàng ở thành phố.

BÀI SỐ 4

a. Tạo một tập tin dự án Quanly.pjx chứa tập tin cơ sở dữ liệu ql.dbc, tập tin này chứa 3 bảng dữ liệu có cấu trúc như sau:

Bảng HSNV.DBF

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_SO_NV C 7 Mã số nhân viên

HOLOT C 35 Họ nhân viên

TEN C 9 Tên nhân viên

PHAI L 1 Giới tính (T:Nam)

DIA_CHI C 30 Địa chỉ

NGAY_SINH D 8 Ngày sinh

TDVH C 2 Trình độ văn hoá

LUONG N 10 Lương

NGAY_LUONG D 8 Ngày xếp lương

MA_DV C 4 Mã đơn vị

GHI_CHU Memo 10 Ghi chú

Thực hiện việc cập nhật thông tin cho bảng trên, trong đó trường TDVH được qui định như sau: 1-12: từng lớp phổ thông, 13:Đại học, 14:Cao học, 15:Tiến sĩ, 0:Mù chữ.

Bảng HOCVIEN.DBF

Tên trường Kiểu dữ liệu Độ rộng Diễn giải Ghi chú

MA_HV C 5 Mã Học viên

MA_LOP C 4 Mã lớp

HOLOT C 35 Họ học viên

TEN C 9 Tên học viên

PHAI L 1 Giới tính (T:Nam)

NGAY_SINH D 8 Ngày sinh

NOI_SINH C 30 Nơi sinh

DIA_CHI C 30 Địa chỉ

MA_GVCN C 3 Mã gvcn

DIEM_LT N 4,2 Điểm Lý thuyết

DIEM_TH N 4,2 Điểm Thực hành

XEP_LOAI C 10 Xếp loại học viên

GHI_CHU Memo 10 Ghi chú

Thực hiện việc cập nhật thông tin cho bảng trên.

Bảng DS_GVCN.DBF

Tên trường Kiểu dữ liệu Chiều rộng Diễn giải Ghi chú

MA_GVCN C 3 Mã GVCN

TEN C 30 Tên GVCN

b. Mở bảng dữ liệu HSNV hãy cho biết các thông tin HOLOT, TEN, PHAI, NGAY_SINH, LUONG.

c. Mở bảng dữ liệu HOCVIEN hãy cho biết các thông tin HOLOT, TEN, PHAI, NGAY_SINH, DIEM_LT, DIEM_TH.

d. Tạo chỉ mục cho trường MA_GVCN trong bảng HOCVIEN và DS_GVCN.

e. Thiết lập mối quan hệ giữa hai bảng HOCVIEN và DS_GVCN.

f. .Dùng hàm RECCOUNT() để cho biết tổng số Record của hai bảng dữ liệu.

g. Thêm vào bảng HOCVIEN trường DTB N(4,2) rồi thực hiện các yêu cầu sau:

Tính DTB=(DIEM_LT*2+DIEM_TH)/3

Hiển thị tất cả học viên Nam

Hiển thị tất cả các học viên Nam có tuổi từ 18-30.

Hiển thị tất cả học viên có DTB>=8

Hiển thị tất cả học viên có tên bắt đầu là 'T'

Sắp thứ tự học viên theo DTB

Hiển thị 3 học viên có điểm cao nhất

Đánh dấu xoá các học viên có DTB<3

Khôi phục lại các học viên đã bị đánh dấu xoá

h. Tính giá trị trường XEP_LOAI theo tiêu chuẩn sau:

DTB>=9: Xuất sắc

8<=DTB<9: Giỏi

7<=DTB<8: Khá

5<=DTB<7: Trung bình

DTB<5: Yếu

i. .Đếm xem mỗi xếp loại có bao nhiêu học viên?

j. Dùng lệnh SET FILTER để xem những học viên loại Xuất sắc

k. Mở bảng HSNV, lập các chỉ mục sau:

Lập chỉ mục dựa trên trường TEN tăng dần, nếu tên trùng nhau thì tăng dần theo HOLOT và đặt chỉ mục này là HTEN.

Lập chỉ mục dựa trên trường LUONG.

Lập chỉ mục dựa trên trường MANV.

C. Bài tập nâng cao

Bài toán quản lý nhân sự và lương cho một phòng giáo dục, với các yêu cầu chính sau:

Quản lý về lý lịch của nhân viên trong phòng giáo dục.

Quản lý quá trình khen thưởng và kỷ luật.

Quản lý về quá trình đào tạo và bổ sung của nhân viên.

Quản lý về trình độ tin học và ngoại ngữ của nhân viên

Trong đó:

Phần quản lý về lý lịch cần lưu trữ các thông tin như sau:

Đơn vị công tác, Họ tên nhân viên, Phái, ngày sinh, nơi sinh, dân tộc, quê quán, địa chỉ, tôn giáo, chức vụ, loại hình lao động, các thông tin liên quan về chính trị, trình độ văn hoá, trình độ chuyên môn gốc, ngành được đào tạo, nước được đào tạo, năm tốt nghiệp, các thông tin liên quan đến lương....

Phần quản lý về quá trình kỷ luật, khen thưởng cần lưu trữ các thông tin sau:

Nhân viên được khen thưởng hay kỷ luật, loại hình khen thưởng, kỷ luật, ngày khen thưởng, kỷ luật.

Phần quản lý về đào tạo bổ sung cần lưu trữ các thông tin sau:

Nhân viên được cử đi đào tạo bổ sung, chuyên môn được đào tạo, ngày được cử đi đào tạo, ngày tốt nghiệp và bằng cấp.

Phần quản lý về Tin học và ngoại ngữ cần lưu trữ các thông tin sau:

Loại trình độ về tin học và ngoại ngữ của nhân viên.

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: