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