Bài tập lớn môn cơ sở dữ liệu (8)

24 32 0
Bài tập lớn môn cơ sở dữ liệu (8)

Đ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

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM o0o— BÁO CÁO ĐỒ ÁN MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO ĐỀ TÀI: QUẢN LÝ ĐIỂM SINH VIÊN Nhóm thực hiện: Nhóm Lớp 63IT3 Thành viên nhóm: HOÀNG THỊ KHÁNH HUYỀN - 1605163 TRẦN THỊ KIM HOA - 77263 PHẠM THỊ NHUNG 157463 GV hướng dẫn: ThS.Nguyễn Đình Anh Hà Nội, 2021 Các vấn đề cần truy vấn ● Thêm , sửa, xóa thơng tin điểm, sinh viên, môn học, lớp môn học, khoa, lớp quản lý ĐIỂM SINHVIEN MONHOC LOPMH KHOA LOPQL ● Cho biết danh sách sinh viên lớp môn học: MSSV, họ tên, tên lớp quản lý, khoa ● Bảng điểm lớp môn học: MSSV, họ tên, đqt, đkt, tỷ lệ đqt, đtb ● Cho biết điểm sinh viên tính theo hệ 10, hệ ● Cho biết kết học tập sv (điểm chữ, kết đạt hay chưa đạt) ● Tổng kết kết học tập sv:MSSV, họ tên, tên lớp ql, điểm trung bình tích lũy hệ 10, điểm tb tích lũy hệ 4, số tín tích lũy Yêu cầu Sử dụng Code BẢNG SINH VIÊN Thêm thông tin sinh viên STORED PROCEDURE create procedure sp_themsinhvien @MSSV nvarchar(50), @HOTEN nvarchar(50), @GIOITINH nvarchar(50), @TENLOPQL nvarchar(50), @KHOAHOC nvarchar(50), @NGAYSINH nvarchar(50), @QUEQUAN nvarchar(50) as begin insert into SINHVIEN(MSSV, HOTEN, GIOITINH, TENLOPQL,KHOAHOC, NGAYSINH, QUEQUAN) values(@MSSV, @HOTEN, @GIOITINH, @TENLOPQL, @KHOAHOC,@NGAYSINH, @QUEQUAN) end - Yêu cầu thông tin sinh viên phải điền hết, không để trống thêm thông tin sinh viên TRIGGER create trigger trg_Sinhvien on SINHVIEN for insert as begin DECLARE @MSSV nvarchar(50), @HOTEN nvarchar(50), @GIOITINH nvarchar(50), @TENLOPQL nvarchar(50), @KHOAHOC nvarchar(50), @NGAYSINH nvarchar(50), @QUEQUAN nvarchar(50) select @MSSV=MSSV, @HOTEN=HOTEN, @GIOITINH=GIOITINH, @TENLOPQL=TENLOPQL, @KHOAHOC=KHOAHOC, @NGAYSINH=NGAYSINH, @QUEQUAN=QUEQUAN From SINHVIEN if((@MSSV is null) or (@HOTEN is null) or (@GIOITINH is null) or (@TENLOPQL is null) or (@KHOAHOC is null) Sửa/cập nhật thông tin sinh viên STORED PROCEDURE create procedure sp_suasinhvien ( @MSSV nvarchar(50), @HOTEN nvarchar(50), @GIOITINH nvarchar(50), @TENLOPQL nvarchar(50), @KHOAHOC nvarchar(50), @NGAYSINH nvarchar(50), @QUEQUAN nvarchar(50)) as update SINHVIEN set MSSV = @MSSV, HOTEN = @HOTEN, GIOITINH = @GIOITINH, TENLOPQL = @TENLOPQL, KHOAHOC = @KHOAHOC, NGAYSINH = @NGAYSINH, QUEQUAN = @QUEQUAN where MSSV = @MSSV Xóa thơng tin sinh viên STORED PROCEDURE create procedure sp_xoasinhvien @MSSV nvarchar(50) as delete from SINHVIEN where MSSV=@MSSV Tìm kiếm thông tin sinh viên STORED PROCEDURE SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[TIMKIEM] (@ID INT ) AS BEGIN SELECT * FROM SINHVIEN WHERE MSSV= @id END Hiển thị thông tin sinh viên STORED PROCEDURE create proc sp_hienthisinhvien as select * from SINHVIEN Coppy bảng sinh viên STORED PROCEDURE SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[SPCOPYSINHVIEN] AS if OBJECT_ID ('SINHVIENCOPY') IS NOT NULL DROP TABLE SINHVIENCOPY SELECT * INTO SINHVIENCOPY FROM SINHVIEN BẢNG KHOA Thêm thông tin khoa STORED PROCEDURE create procedure sp_themkhoa @MAKHOA NCHAR(10), @TENKHOA NCHAR(100) as begin insert into KHOA(MAKHOA,TENKHOA) values (@MAKHOA, @TENKHOA) end Khi thêm thông TRIGGER tin khoa, phải điền đầy đủ thông tin trường create trigger trg_khoa on KHOA for insert as begin DECLARE @MAKHOA NCHAR(10), @TENKHOA NCHAR(100) select @MAKHOA=MAKHOA, @TENKHOA=TENKHOA From KHOA if((@MAKHOA is null) or (@TENKHOA is null)) begin print'Ban phai day du cac thong tin' rollback tran end else begin print'ban da them du lieu cong' end end Sửa, cập nhật thông tin khoa STORED PROCEDURE create procedure sp_suakhoa ( @MAKHOA NCHAR(10), @TENKHOA NCHAR(100)) as update KHOA set MAKHOA=@MAKHOA, TENKHOA=@TENKHOA where MAKHOA=@MAKHOA Xóa thơng tin khoa STORED PROCEDURE create procedure sp_xoakhoa @MAKHOA NCHAR(10) as delete from SINHVIEN where @MAKHOA=@MAKHOA Hiển thị STORED PROCEDURE create proc sp_hienthikhoa as select * from KHOA Tìm kiếm STORED PROCEDURE SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create PROC [dbo].[sp_timkiemkhoa] (@makhoa INT ) AS BEGIN SELECT * FROM KHOA WHERE MAKHOA= @makhoa END coppy STORED PROCEDURE SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create PROC [dbo].[sp_copykhoa] AS if OBJECT_ID ('KHOACOPY') IS NOT NULL DROP TABLE khoaCOPY SELECT * INTO khoacopy FROM KHOA BẢNG ĐIỂM Thêm thông tin điểm - Kiểm tra xem điểm trình, điểm kết thúc nằm khoảng từ 0- 10 chưa - Kiểm tra xem tỷ lệ điểm trình nằm khoảng từ 0-100 chưa TRIGGER CREATE TRIGGER trg_themdiem ON DIEM For insert as DECLARE @MSSV nchar(50) DECLARE @MALOPMH nchar(10) DECLARE @HOTEN nchar(50) DECLARE @DQT float DECLARE @DKT float DECLARE @TYLEDQT int SELECT @MSSV=MSSV, @MALOPMH=MALOPMH, @HOTEN=HOTEN, @DQT=DQT, @DKT=DKT, @TYLEDQT=TYLEDQT FROM DIEM IF (@DQT 10) or (@DKT 10) or (@TYLEDQT100) begin print 'Sai gia tri diem' Rollback transaction end else begin Print 'qua trinh chen dl cong' end Hiển thị điểm thấp lớp môn học STORED PROCEDURE create proc sp_diemmin as select TENMH , MonHoc.MAMH,min(DKT) as [Min diem] from MonHoc inner join LOPMH on MonHoc.MAMH=LOPMH.MAMH inner join DIEM on DIEM.MALOPMH=LOPMH.MALOPMH group by MonHoc.MAMH, TENMH Hiển thị danh STORED sách sinh viên PROCEDURE lớp môn học: MSSV, họ tên, tên lớp quản lý, khoa USE DOANCSDL GO create proc sp_hienthisv as select SINHVIEN.MSSV, SINHVIEN.HOTEN, LOPQL.TENLOPQL, KHOA.TENKHOA from SINHVIEN inner join LOPQL ON SINHVIEN.TENLOPQL=LOPQL.TENLOPQL inner join KHOA ON KHOA.MAKHOA = LOPQL.MAKHOA Hiển thị điểm sinh viên tính theo hệ 10 hệ STORED PROCEDURE USE DOANCSDL; GO create procedure SP_DIEMHE10_4 AS select HOTEN,MSSV,TENLOPQL, sum(case when dtb>=4 then (SOTINCHI) end) as SOTINCHITICHLUY, (sum(case when dtb>=4 then (DH4*SOTINCHI)end))/(sum(case when dtb>=4 then (SOTINCHI) end)) as DIEMTLH10, (sum (case when DH4>=1 then (DH4*SOTINCHI)end)/(sum(case when dh4>=1 then (SOTINCHI) end))) as DIEMTLH4 from(SELECT SINHVIEN.MSSV,DIEM.dtb ,MONHOC.SOTINCHI,MONHOC.TENMH,SINHVIEN.HOTEN, LOPQL.TENLOPQL, DH4 = CASE WHEN (dtb>=0 AND DTB=4.0 AND DTB=5.0 AND DTB=5.5 AND DTB=6.5 AND DTB=7.0 AND DTB=8.0 AND DTB=8.5 AND DTB=0 AND DTB=4.0 AND DTB=5.0 AND DTB=5.5 AND DTB=6.5 AND DTB=7.0 AND DTB=8.0 AND DTB=8.5 AND DTB=4 THEN 'ĐAT' ELSE 'CHUA DAT' END from SINHVIEN inner join LOPQL ON SINHVIEN.TENLOPQL=LOPQL.TENLOPQL inner join DIEM ON SINHVIEN.MSSV=DIEM.MSSV inner join LOPMH ON LOPMH.MALOPMH= DIEM.MALOPMH inner join MONHOC ON MONHOC.MAMH=LOPMH.MAMH Tổng kết kết VIEW học tập sv:MSSV, họ tên, tên lớp ql, điểm trung bình tích lũy hệ 10, điểm tb tích lũy hệ 4, số tín tích lũy USE DOANCSDL; GO CREATE VIEW DIEMTONGKET AS select MSSV,HOTEN,TENLOPQL, sum(case when dtb>=4 then (SOTINCHI) end) as SOTINCHITICHLUY, sum(dtb*SOTINCHI)/(sum(case when dtb>=4 then (SOTINCHI) end)) as DIEMTLH10, sum(DH4*SOTINCHI)/(sum(case when dh4>=1 then (SOTINCHI) end)) as DIEMTLH4 from(SELECT SINHVIEN.MSSV,DIEM.dtb ,MONHOC.SOTINCHI,MONHOC.TENMH,SINHVIEN.HOTEN, LOPQL.TENLOPQL, DH4 = CASE WHEN (dtb>=0 AND DTB=4.0 AND DTB=5.0 AND DTB=5.5 AND DTB=6.5 AND DTB=7.0 AND DTB=8.0 AND DTB=8.5 AND DTB

Ngày đăng: 14/10/2021, 13:26

Hình ảnh liên quan

● Bảng điểm của một lớp môn học: MSSV, họ tên, đqt, đkt, tỷ lệ đqt, đtb - Bài tập lớn môn cơ sở dữ liệu (8)

ng.

điểm của một lớp môn học: MSSV, họ tên, đqt, đkt, tỷ lệ đqt, đtb Xem tại trang 5 của tài liệu.
BẢNG SINH VIÊN Thêm thông tin  sinh viên mới - Bài tập lớn môn cơ sở dữ liệu (8)

h.

êm thông tin sinh viên mới Xem tại trang 10 của tài liệu.
Coppy bảng sinh viên - Bài tập lớn môn cơ sở dữ liệu (8)

oppy.

bảng sinh viên Xem tại trang 14 của tài liệu.
BẢNG ĐIỂM - Bài tập lớn môn cơ sở dữ liệu (8)
BẢNG ĐIỂM Xem tại trang 17 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan