You are on page 1of 5

Cho lược đồ CSDL sau:

SINHVIEN(MaSV, TenSV, ChuyenNganh, CapDo, Tuoi)


GIANGVIEN(MaGV, TenGV, MaKhoa)
LOPHOC(TenLop, ThoiGian, PhongHoc, MaGV)
DANGKY(MaSV, TenLop)

Ghi chú: trường CapDo trong bảng SINHVIEN có thể nhận các giá trị là
'FR' (freshman), 'SO' (sophomore), 'JR' (junior) và 'SR' (senior).
Các giá trị này tương ứng với sinh viên năm 1, năm 2, năm 3, và năm 4.

1. Tạo 1 view chứa những sinh viên năm hai có đăng ký lớp học được dạy bởi
'Linda Davis'.

- Tạo view:
Create or alter View View_SO_LindaDavis
As
Select *
From sinhvien
Where capdo='SO' and masv In ( Select dk.masv
From dangky dk ,giangvien gv,lophoc lh
where dk.tenlop = lh.tenlop and gv.magv = lh.magv and
gv.tengv='Linda Davis')

- Kết quả:
2. Tạo 1 view chứa những sinh viên có chuyên ngành 'History' hay có đăng ký
lớp được dạy bởi 'I. Teach'.

- Tạo view:
Create or alter View ViewSV_History_LindaDavis
As
Select *
From sinhvien
Where chuyennganh='History' or masv In (Select dk.masv
From dangky dk ,giangvien gv,lophoc lh
where dk.tenlop = lh.tenlop and gv.magv = lh.magv and
gv.tengv='I. Teach')

- Kết quả:
3. Viết stored procedure truyền vô 2 biến @Phong, @SoLuong, lấy thông tin
của tất cả các lớp học được dạy ở phòng @Phong hoặc có > @SoLuong
sinh viên đăng ký.

-Tạo thủ tục:


Create or alter Proc proc_Cau3 (@phong varchar(10),@soluong int)
As
Begin
Select *
From lophoc
Where phonghoc=@phong or tenlop in (Select lh.tenlop

From lophoc lh ,dangky dk


Where lh.tenlop = dk.tenlop
Group by lh.tenlop
Having COUNT(dk.masv) >@soluong)

End

- Kết quả:

-Giải thích kết quả : lớp Operating System Design có 6 Sinh viên đăng
ký > số lượng là 5
- Một trường hợp khác
4. Viết stored procedure lấy thông tin của tất cả các sinh viên đã viên đăng ký
2 lớp có cùng thời gian học.

5. Viết stored procedure lấy thông tin của tất cả các giảng viên đã dạy ở tất cả các
phòng học từng có lớp được dạy.
6. Viết hàm trả truyền vô biến @CapDo và trả về tuổi trung bình của các sinh
viên có cấp độ khác @CapDo truyền vào.

7. Viết hàm trả về (các) sinh viên tham gia nhiều lớp học nhất.
8. Viết hàm trả về (các) sinh viên không tham gia lớp học nào.
5. 9. Tạo trigger ràng buộc tuổi của sinh viên phải > 17 và <30
10. Tạo trigger thỏa điều kiện tất cả các lớp học đều có phòng học

You might also like