1. Trang chủ
  2. » Giáo án - Bài giảng

BÀI TẬP THỰC HÀNH TẠO LẬP CSDL

18 1,2K 1

Đ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

Định dạng
Số trang 18
Dung lượng 264 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau đó thiết kế cấu trúc design các bảng sau Bảng SINHVIEN lưu thông tin về các sinh viên có cấu trúc như sau: Bảng MONHOC lưu thông tin về các môn học có cấu trúc như sau: TÊN TRƯỜNG KI

Trang 1

BÀI TẬP THỰC HÀNH TẠO LẬP CSDL (SỐ 1) – H1.

I Mục đích, yêu cầu, kỹ năng - H2.

II Nội dung thực hành

Bài 1 H3 QL điểm

TÊN TRƯỜNG KIỂU

DỮ LIỆU

KÍCH THƯỚC

RÀNG BUỘC / MẪU ĐẦU NHẬP

GIẢI THÍCH

MASV Text 6 2 kí tự đầu là SV, 4 kí tự sau

là chữ số

Mã của sinh viên Mỗi sinh viên có một mã duy nhất

cả phần tên đệm

trường hợp sinh viên có tên kép như Tuấn Anh thì từ Tuấn được đưa vào phần họ

GIOITINH Text 3 Chỉ có 2 giá trị:

Nam, Nữ

Mô tả giới tính của sinh viên

lạc với sinh viên

viên

DOITUONG Text Bao gồm một trong các ký

hiệu sau:

TBLS: con thương binh, liệt

sĩ, con gia đình chính sách

DTVC: là sinh viên ở vùng cao hoặc là người dân tộc thiểu số

GDKK: con gia đình có hoàn cảnh khó khăn (hộ nghèo, mồ côi…)

KHAC: không thuộc các đối tượng trên

Phân loại sinh viên theo đối tượng Giá trị mặc định của trường này là KHAC

Trang 2

Mở Access, tạo CSDL mới và lưu thành file QLD.MDB vào thư mục vừa tạo ở trên Sau đó thiết kế cấu trúc (design) các bảng sau

Bảng SINHVIEN lưu thông tin về các sinh viên có cấu trúc như sau:

Bảng MONHOC lưu thông tin về các môn học có cấu trúc như sau:

TÊN

TRƯỜNG

KIỂU DỮ LIỆU

KÍCH THƯỚC

RÀNG BUỘC /

NHẬP

GIẢI THÍCH

2 kí tự sau là số

Mã kí hiệu của môn học, mỗi môn học có một mã duy nhất

DVHT Number 2 Lớn hơn 0 Số đơn vị học trình

của môn học

HOCKY Number 1 Có giá trị từ 1 đến

8 Học kì mà môn họcđó được sắp xếp để

học

Trang 3

Bảng KETQUA lưu thông tin về điểm kết quả học tập của sinh viên có cấu trúc như sau:

TÊN TRƯỜNG KIỂU DỮ

LIỆU

KÍCH THƯ ỚC

RÀNG BUỘC / MẪU ĐẦU NHẬP

GIẢI THÍCH

SINHVIEN

MONHOC DIEM Number 2 Là số nguyên, có giá trị từ 0

đến 10

Điểm kết quả học tập của sinh viên (Là điểm thi cao nhất trong tất cả các lần thi)

KQHOC Text 1 Có giá trị là một trong các

kí tự sau:

H: sinh viên đang học môn này và chưa có kết quả

Q: sinh viên đã học xong môn này và đã có kết quả đạt yêu cầu

C: sinh viên chưa học môn này bao giờ

L: sinh viên đã học môn này nhưng có kết quả không đạt yêu cầu nên sẽ phải học lại

Giá trị mặc định là H

Trang 4

Hướng dẫn

Thiết kế bảng SINHVIEN

Sau khi chọn chức năng New Table, chuyển sang Design, ta thực hiện thiết kế cấu

trúc của bảng SINHVIEN như sau:

Trường MASV: ta gõ tên trường là MASV trong cột Field Name, chọn Data Type là Text Sau đó chuyển xuống bảng thuộc tính (tab General), thực hiện các

thiết lập:

Thuộc tính Giá trị Giải thích

Input Mask LL0000 Vì yêu cầu là mã sinh viên có dạng 2 kí

tự đầu là chữ, 4 kí tự sau là chữ số

viên Là thông tin sẽ hiện ở làm chú thích chocột Sau khi tạo xong, ta thiết lập MASV là khoá chính bằng cách chọn tên trường và bấm biểu tượng khoá trên thanh công cụ

Trường HO, TEN, NGAYSINH, DIENTHOAI, QUEQUAN: ta thực hiện việc đặt tên trường và chọn kiểu dữ liệu theo đúng yêu cầu

Trường GIOITINH: do yêu cầu là chỉ có 2 giá trị (Nam, Nữ) nên sau khi đặt tên

trường, chọn kiểu dữ liệu và kích thước, ta chọn tab Look Up rồi đặt Display Control là Combo Box Sau đó thiết lập như sau:

Row Source Type Value List Kiểu chọn trực tiếp trong

danh sách các giá trị Row Source Nam;Nữ Chỉ có 2 giá trị để chọn là

Nam và Nữ

Làm tương tự với trường DOITUONG với các thiết lập như sau:

Default Value KHÁC Giá trị mặc định của

trường

Display Control Combo Box

Row Source Type Value List Kiểu chọn trực tiếp trong

danh sách các giá trị Row Source TBLS;DTVC;GDKK;KHÁC Các giá trị được chọn

Trang 5

Thiết kế bảng MONHOC

Trường MAMH: ta làm tương tự như các trường trong bảng SINHVIEN Chú ý

chọn Input Mask là LL00 và thiết lập MAMH làm khoá chính cho bảng.

Trường TENMH thiết kế như các trường khác, không có gì đặc biệt

Trường DVHT có điều kiện ràng buộc là phải lớn hơn 0 nên sau khi đặt tên

trường, chọn kiểu dữ liệu là Number, ta chuyển sang tab General và thiết lập:

này (thường số đơn vị học trình là 4)

Validation Rule [DVHT]>0 Vì yêu cầu DVHT phải lớn

hơn 0

Validation Text Số đơn vị học trình phải

lớn hơn 0

Là câu thông báo khi ràng buộc bị vi phạm để người nhập dữ liệu biết

Trường HOCKY là các số từ 1 đến 8 nên sau khi đặt tên trường và thiết lập kiểu

dữ liệu thì ta chuyển sang tab Look Up và thiết lập các thuộc tính

Display Control Combo Box Giá trị của trường được chọn

trong một danh sách các giá trị cho trước

Row Source Type Value List Danh sách giá trị được cung

cấp khi thiết kế Row Source 1;2;3;4;5;6;7;8 Liệt kê các giá trị được chọn

Trang 6

Thiết kế bảng KETQUA

Thiết kế 2 trường MASV, MAMH tương tự như trong bảng SINHVIEN và MONHOC Thiết lập cặp 2 trường MASV, MAMH làm khoá chính cho bảng.

Để thiết lập ràng buộc MASV phải có trong bảng SINHVIEN ta chọn tab Look

Up và thiết lập các thuộc tính như sau:

Display Control Combo Box Giá trị của trường được chọn

trong một danh sách các giá trị cho trước

Row Source Type Table/Query Danh sách giá trị được lấy từ

một bảng hoặc một truy vấn Row Source SINHVIEN Các giá trị được chọn lấy từ

bảng SINHVIEN Tương tự ta thiết kế ràng buộc cho trường MAMH:

Display Control Combo Box Giá trị của trường được chọn

trong một danh sách các giá trị cho trước

Row Source Type Table/Query Danh sách giá trị được lấy từ

một bảng hoặc một truy vấn Row Source MONHOC Các giá trị được chọn lấy từ

bảng MONHOC Trường DIEM có điều kiện ràng buộc là số nguyên từ 0 đến 10 nên sau khi đặt tên

trường, chọn kiểu dữ liệu là Number (Long Integer), ta chuyển sang tab General

và thiết lập:

này

Validation Rule [DIEM]>=0 and

[DIEM]<=10 Điểm từ 0 đến 10 Validation Text Điểm phải nằm trong

khoảng từ 0 đến 10 Là câu thông báo khi ràngbuộc bị vi phạm để người

nhập dữ liệu biết

Trang 7

Trường KQHOC được thiết lập các thuộc tính như sau:

này

Display Control Combo Box Giá trị của trường được chọn

trong một danh sách các giá trị cho trước

Row Source Type Value List Danh sách giá trị được cung

cấp khi thiết kế Row Source H;Q;C;L Liệt kê các giá trị được chọn

Trang 8

Sau khi thiết kế các bảng xong, ta đặt liên kết giữa các bảng như sau:

Để thiết lập quan hệ như vậy, đầu tiên ta bấm nút chọn Relationship Sau đó Add

cả 3 bảng vào Để thiết lập quan hệ giữa 2 bảng MONHOC và KETQUA, ta bấm chuột vào trường MAMH của bảng MONHOC và kéo đến trường MAMH của bảng KETQUA, sau đó trong hộp thoại hiện ra ta kích chọn các check box:

Bấm nút Create để thiết lập quan hệ Sau đó làm tương tự với trường MAMH của

bảng SINHVIEN và trường MAMH của bảng KETQUA

Trang 9

Bài 2 H3 QL nhân sự

Bài 3 H3 QL bán hàng.

Bài 4 H3 QL thư viện (không có mô tả cấu trúc bảng cụ thể). III Một số lưu ý

Trang 10

BÀI TẬP THỰC HÀNH TRUY VẤN ĐƠN GIẢN (SỐ 2)

I Mục đích, yêu cầu, kỹ năng - H2.

II Nội dung thực hành

Bài 1 H3 QL điểm

Mở CSDL QLD.MDB đã tạo lập và xây dựng các truy vấn sau:

1 Cho biết họ tên và các thông tin khác về sinh viên có mã số SV0324.

2 Đưa ra danh sách các sinh viên có quê ở Hà nội

3 Đưa ra danh sách các sinh viên không có số điện thoại liên lạc.

4 Đưa ra danh sách các sinh viên được hưởng chính sách xã hội (con thương binh, liệt sĩ, người dân tộc vùng cao, gia đình khó khăn) Danh sách được sắp xếp tăng dần theo tên

5 Lập danh sách các môn học được học trong học kì 4

6 Lập danh sách các môn học được học trong năm thứ 2 (kì 3 và kì 4)

7 Đưa ra các sinh viên học môn “HỆ QUẢN TRỊ CSDL” có điểm kết quả học tập từ 8 trở lên Danh sách được sắp xếp giảm dần theo kết quả học tập

8 Lập danh sách kết quả học tập của sinh viên về một môn học nào đó nhập

từ bàn phím (truy vấn có tham số)

9 Lập danh sách các sinh viên đang học môn “TOÁN RỜI RẠC”

10 Lập danh sách các sinh viên phải học lại môn “HỆ QUẢN TRỊ CSDL”

Hướng dẫn

Câu 1 Cho biết họ tên và các thông tin khác về sinh viên có mã số SV0324?

Họ tên và các thông tin khác của sinh viên của sinh viên có mã số này đều nằm trong bảng SINHVIEN Do đó ta sẽ xây dựng một truy vấn trên bảng SINHVIEN

với điều kiện là mã sinh viên bằng SV0324.

Đầu tiên ta tạo truy vấn mới bằng thao tác bấm link Create query in Design View:

Trang 11

Sau đó chọn bảng SINHVIEN đề xây dựng truy vấn:

Tiếp theo ta chọn các thông tin cần hiển thị và điều kiện truy vấn:

Lưu truy vấn với tên cau1 và bấm biểu tượng thực thi truy vấn và xem kết quả:

Trang 12

Bấm vào biểu tượng chuyển đổi mode của truy vấn và chọn mode SQL View:

Ta sẽ quan sát câu lệnh SQL tương ứng của truy vấn trên như sau:

Kể từ nay trở đi, ta có thể viết truy vấn 2 kiểu: kiểu QBE trong Design view và kiểu SQL trong SQL view Trong một số trường hợp viết theo kiểu này đơn giản hơn viết theo kiểu kia, mặc dù 2 cách viết là tương đương và cho cùng một kết quả

Câu 2 Đưa ra danh sách các sinh viên có quê ở Hà Nội.

Tương tự như câu 1, ta thiết lập truy vấn với điều kiện cho trường QUEQUAN là

Hà Nội Ta có thể thiết kế trong Design view như sau:

Trang 13

Hoặc viết câu lệnh trong SQL View:

SELECT * FROM SINHVIEN WHERE QUEQUAN="Hà Nội";

Chú ý là câu lệnh SQL phải có chấm phẩy ở cuối, và từ Hà Nội phải đặt trong cặp dấu “”

Câu 3 Đưa ra danh sách các sinh viên không có số điện thoại liên lạc.

Sinh viên không số điện thoại, tức là trường DIENTHOAI là rỗng Ta sẽ thiết lập

truy vấn và sử dụng điều kiện là Is Null với trường DIENTHOAI.

Ta cũng có thể viết trực tiếp câu lệnh SQL trong SQL View:

SELECT * FROM SINHVIEN WHERE DIENTHOAI Is Null;

Câu 4 Đưa ra danh sách các sinh viên được hưởng chính sách xã hội (con

thương binh, liệt sĩ, người dân tộc vùng cao, gia đình khó khăn) Danh sách được sắp xếp tăng dần theo tên.

Ta sẽ xây dựng truy vấn mà trường DOITUONG không phải là “KHÁC” Để sắp xếp tăng dần theo tên ta chọn các trường được đưa ra là HO, TEN, DOITUONG

và chọn Sort với TEN là Ascending.

Trang 14

Nếu viết truy vấn bằng SQL thì ta sẽ dùng cấu trúc ORDER BY TEN để sắp xếp

tăng dần theo tên Câu lệnh SQL như sau:

SELECT * FROM SINHVIEN WHERE DOITUONG<>"KHÁC" ORDER BY TEN;

Chú ý:

1 Toán tử so sánh khác (không bằng) trong Access viết là <>

2 Trong Design view để hiển tất cả các trường, trong đó có một số trường cần sắp xếp thì ta phải chọn từng trường và chọn kiểu sort cho từng trường Còn

viết bằng SQL thì chỉ cần viết SELECT * rồi liệt kê các trường cần sort trong phần ORDER BY của câu lệnh.

Câu 5 Lập danh sách các môn học được học trong học kì 4.

Dễ thấy là ta sẽ truy vấn trên bảng MONHOC với điều kiện HOCKY=4

Thiết kế trong Design View như sau:

Nếu viết bằng SQL thì câu lệnh như sau:

SELECT * FROM MONHOC WHERE HOCKY=4;

Câu 6 Lập danh sách các môn học được học trong năm thứ 2 (kì 3 và kì 4).

Với truy vấn này ta làm tương tự câu 5, nhưng vì có 2 điều kiện nên thiết kế trong Design view như sau:

Trang 15

Câu lệnh SQL tương đương là:

SELECT * FROM MONHOC WHERE HOCKY=3 OR HOCKY=4;

Câu 7 Đưa ra các sinh viên học môn “HỆ QUẢN TRỊ CSDL” có điểm kết

quả học tập từ 8 trở lên Danh sách được sắp xếp giảm dần theo kết quả học tập.

Với truy vấn này ta thấy rằng phải lấy dữ liệu ở cả 3 bảng: SINHVIEN (để có thông tin về tên sinh viên), MONHOC (để có tên môn học), KETQUA (để có kết quả học tập) Trường DIEM của bảng KETQUA phải đặt điều kiện là >= 8 và

được chọn Sort là Descending (giảm dần).

Câu lệnh SQL tương đương là:

SELECT HO, TEN, TENMH, DIEM

FROM SINHVIEN, MONHOC, KETQUA

WHERE TENMH="HỆ QUẢN TRỊ CSDL" AND DIEM>=8

Trang 16

AND MONHOC.MAMH = KETQUA.MAMH AND SINHVIEN.MASV =

KETQUA.MASV

ORDER BY DIEM DESC;

Chú ý:

1 Nếu khi Add 3 bảng vào truy vấn mà Access không tự động tạo liên kết:

thì cần thiết kế lại Relationship như sau:

2 Lệnh SQL tương đương còn có thể viết dạng sau, sử dụng INNER JOIN để liên kết các bảng:

SELECT HO, TEN, TENMH, DIEM

FROM SINHVIEN INNER JOIN (MONHOC INNER JOIN KETQUA ON

MONHOC.MAMH = KETQUA.MAMH) ON SINHVIEN.MASV = KETQUA.MASV

WHERE TENMH="HỆ QUẢN TRỊ CSDL" AND DIEM>=8

ORDER BY DIEM DESC;

Câu 8 Lập danh sách kết quả học tập của sinh viên về một môn học nào đó

nhập từ bàn phím (truy vấn có tham số).

Với truy vấn có tham số này, ta sẽ đặt tham số trong phần điều kiện của trường TENMH (để người sử dụng nhập tên môn học cần xem kết quả) Các chi tiết khác (các bảng, các trường cần đưa ra thì) tương tự như câu 7

Trang 17

Chú ý:

1 Khi thực thi truy vấn này, Access sẽ hiện ra một cửa sổ để ta nhập giá trị

cho tham số ten_mon_hoc, ta nhập vào đó tên môn học cần xem kết quả:

2 Tên tham số có dấu cách (và cả dấu tiếng Việt) nên ta phải đặt trong cặp dấu ngoặc [ ] Muốn Access hiển thị đúng cả dấu tiếng Việt thì ta phải chọn bảng mã font tiếng Việt là Unicode

Câu 9 Lập danh sách các sinh viên đang học môn “TOÁN RỜI RẠC”.

Trang 18

Câu 10 Lập danh sách các sinh viên phải học lại môn “HỆ QUẢN TRỊ

CSDL”

Ngày đăng: 26/05/2015, 22:00

HÌNH ẢNH LIÊN QUAN

Bảng SINHVIEN lưu thông tin về các sinh viên có cấu trúc như sau: - BÀI TẬP THỰC HÀNH TẠO LẬP CSDL
ng SINHVIEN lưu thông tin về các sinh viên có cấu trúc như sau: (Trang 2)
Bảng KETQUA lưu thông tin về điểm kết quả học tập của sinh viên có cấu trúc như sau: - BÀI TẬP THỰC HÀNH TẠO LẬP CSDL
ng KETQUA lưu thông tin về điểm kết quả học tập của sinh viên có cấu trúc như sau: (Trang 3)
Bảng MONHOC - BÀI TẬP THỰC HÀNH TẠO LẬP CSDL
ng MONHOC (Trang 6)
Bảng SINHVIEN Tương tự ta thiết kế ràng buộc cho trường MAMH: - BÀI TẬP THỰC HÀNH TẠO LẬP CSDL
ng SINHVIEN Tương tự ta thiết kế ràng buộc cho trường MAMH: (Trang 6)

TỪ KHÓA LIÊN QUAN

w