6
Quản lý sinh viên Chuong_Trinh_Hoc Ma_CT Ten_CT Giang_Khoa Ma_CT Ma_Khoa MaMH Nam_Hoc Hoc_Ky STLT STTH So_Tin_Chi Ket_Qua MaSV MaMH Lan_Thi Diem_Thi Khoa Ma_Khoa Ten_Khoa Nam_Thanh_Lap Khoa_Hoc Ma_Khoa_Hoc Nam_Bat_Dau Nam_Ket_Thuc Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Quản lý sinh viênChuong_Trinh_Hoc

Ma_CT

Ten_CT

Giang_KhoaMa_CT

Ma_Khoa

MaMH

Nam_Hoc

Hoc_Ky

STLT

STTH

So_Tin_Chi

Ket_QuaMaSV

MaMH

Lan_Thi

Diem_Thi

KhoaMa_Khoa

Ten_Khoa

Nam_Thanh_Lap

Khoa_HocMa_Khoa_Hoc

Nam_Bat_Dau

Nam_Ket_Thuc

LopMa_Lop

Ma_Khoa

Ma_Khoa_Hoc

Ma_CT

STT

Mon_HocMaMH

Ma_Khoa

TenMH

Sinh_VienMaSV

Ho_Ten

Nam_Sinh

Dan_Toc

Ma_Lop

Page 2: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Bài tập SP

Hãy viết các Stored Procedure sau:

1. In danh sách các sinh viên của 1 lớp học

2. Nhập vào 2 sinh viên, 1 môn học, tìm xem sinh viên nào có điểm thi môn học đó lần đầu tiên là cao hơn.

3. Nhập vào 1 môn học và 1 mã sv, kiểm tra xem sinh viên có đậu môn này trong lần thi đầu tiên

không (đậu nếu điểm >=5), nếu đậu thì xuất ra là “Đậu”, không thì xuất ra “Không đậu”

4. Nhập vào 1 khoa, in danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh) thuộc khoa này.

5. Nhập vào 1 sinh viên và 1 môn học, in điểm thi của sinh viên này của các lần thi môn học đó.

Ví dụ: Lần 1 : 10 Lần 2: 8

6. Nhập vào 1 sinh viên, in ra các môn học mà sinh viên này phải học.

7. Nhập vào 1 môn học, in danh sách các sinh viên đậu môn này trong lần thi đầu tiên.

8. In điểm các môn học của sinh viên có mã số là maSinhVien được nhập vào.

Chú ý: điểm của môn học là điểm thi của lần thi sau cùng

Page 3: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Bài tập SP

Thêm 1 quan hệ XepLoai (MaSV, diemTrungBinh, ketQua, hoc Luc)

9. Đưa dữ liệu vào bảng xếp loại:

- diemTrungBinh được tính từ các môn đã có điểm của sinh viên. Điểm trung bình được tính dựa trên điểm thi lần sau cùng.

- ketQua của sinh viên là ”Đạt‘ nếu diemTrungBinh của sinh viên đó lớn hơn hoặc bằng 5 và không quá 2 môn dưới 4 điểm, ngược lại thì kết quả là không đạt.

- Đối với những sinh viên có ketQua là ”Đạt‘ thì hocLuc được xếp loại như sau:

• diemTrungBinh >= 8 thì hocLuc là ”Giỏi”

• 7 < = diemTrungBinh < 8 thì hocLuc là ”Khá” Còn lại là ”Trung bình”

10. In ra điểm trung bình cho các sinh viên có tham gia đầy đủ các môn học của khoa, chương trình mà sinh viên đang theo học.

11. Thêm dữ liệu kết quả: Nhận vào tham số mã sinh viên, mã môn học, điểm thi. Lần thi sẽ đượctự động tính bằng lần thi cao nhất hiện tại của sinh viên cho môn học đó + 1. Tiến hành thêmvào bảng kết quả dòng mới với các thông tin tương ứng.

Page 4: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Bài tập Function

Hãy viết các Function sau:

1. Với 1 mã sinh viên và 1 mã khoa, kiểm tra xem sinh viên có thuộc khoa này không (trả về đúng hoặc sai)

2. Tính điểm thi sau cùng của một sinh viên trong một môn học cụ thể

3. Tính điểm trung bình của một sinh viên (chú ý : điểm trung bình được tính dựa trên lần thi sau cùng), sử dụng function 2 đã viết

4. Nhập vào 1 sinh viên và 1 môn học, trả về các điểm thi của sinh viên này trong các lần thi của mônhọc đó.

5. Nhập vào 1 sinh viên, trả về danh sách các môn học mà sinh viên này phải học.

6. Nhập vào mã môn học, trả về điểm thi lần đầu của các sinh viên tham gia môn học này

7. Nhập vào mã môn học, in ra điểm cao nhất đạt được của môn học này

8. Nhập vào mã khoa, trả về danh sách lớp thuộc khoa này kèm số lượng sinh viên của mỗi lớp

Page 5: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Bài tập Trigger1. Viết trigger cho bảng Chuong_Trinh_Hoc tương ứng với hành động thêm/cập nhật dữ liệu để

kiểm tra ràng buộc Mã chương trình (Chuong_Trinh.Ma_CT) chỉ có thể bắt đầu là ‘CQ‘ hoặc ‘CD‘ hoặc ‘TC’

2. Viết trigger cho bảng Giang_Khoa tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tracác ràng buộc sau:

• Chỉ có 2 học kỳ là ‘HK1‘ và ‘HK2‘

• Số tiết lý thuyết tối đa là 120

• Số tiết thực hành tối đa là 60

• Số tiết lý thuyết không nhỏ hơn số tiết thực hành

• Số tín chỉ của một môn học tối đa là 6

3. Viết trigger cho bảng Ket_Qua tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tra ràngbuộc: Kiểm tra và báo lỗi nếu điểm <0 hoặc >10, và tự động làm tròn với độ chính xác đến 0.5.

4. Viết trigger cho bảng Khoa_hoc tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tra ràngbuộc: Năm kết thúc khóa học phải lớn hơn hoặc bằng năm bắt đầu, và mã khóa học phải bắt đầubằng ‘K’

5. Viết trigger cho bảng Sinh_Vien tương ứng với hành động cập nhật dữ liệu để kiểm tra ràng buộc, nếu sửa năm sinh thì năm sinh mới phải khác năm sinh cũ và năm sinh phải từ 1980 đến 2002.

6. Viết trigger cho bảng Ket_Qua tương ứng với hành động xóa dữ liệu: không cho phép xóa kết quảcủa lần thi đầu tiên (lần 1).

Page 6: Quản lýsinhviên MaSV Sinh Vien MaSV Ho Ten MaMH Nam Sinh ... · Lop Ma_Lop Ma_Khoa Ma_Khoa_Hoc Ma_CT STT Mon_Hoc MaMH Ma_Khoa TenMH Sinh_Vien MaSV Ho_Ten Nam_Sinh Dan_Toc Ma_Lop

Bài tập Trigger

7. Viết trigger cho bảng Mon_hoc tương ứng với hành động thêm/cập nhật dữ liệu để kiểmtra ràng buộc: Tên môn học phải duy nhất.8. Viết trigger cho bảng Lop tương ứng với hành động thêm/cập nhật dữ liệu để kiểm traràng buộc: Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của khoa quản lý lớp đó.9. Viết trigger cho bảng Ket_qua tương ứng với hành động thêm/cập nhật dữ liệu để kiểmtra ràng buộc: Sinh viên chỉ có thể dự thi các môn học thuộc về khoa mà sinh viên đó đang theo học.10. Hãy bổ sung vào quan hệ Lop thuộc tính Siso. Viết trigger cho bảng Lop tương ứngvới hành động thêm/cập nhật dữ liệu để kiểm tra sĩ số của một lớp phải bằng số lượng sinh viên đang theo học lớp đó