1. Trang chủ
  2. » Công Nghệ Thông Tin

SQL Quản Lý Sinh Viên || Báo Cáo Đồ Án Học Tập Cuối Kì Môn Cơ Sở Dữ Liệu

12 1,9K 20

Đ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 12
Dung lượng 66,64 KB

Nội dung

Mong Rằng tài liệu này sẽ giúp ích cho bạn phần nào về ý tưởng cũng như bài tập mẫu , cách giải , giúp bạn trong quá trình học tập Yêu cầu về CSDL: YC01: Cho phép lưu thông tin về cá nhân của từng sinh viên học trong trường YC02: Cho phép lưu thông tin về lớp học của từng sinh viên học trong trường YC03: Cho phép lưu thông tin về từng môn học mà có sinh viên đó đang học YC04: Cho phép lưu thông tin về số ngày nghỉ của từng sinh viên theo môn học tín chỉ YC05: Cho phép tính số này nghỉ của từng sinh viên để biết sinh viên nào đi học đầy đủ nhất và sinh viên nào nghỉ học nhiều nhất YC06: Cho biết lớp nào có sinh viên đi học đầy đủ nhất và sinh viên nghỉ học nhiều nhất YC07: Cho biết môn học nào có sinh viên đi học đầy đủ nhất và sinh viên nghỉ học nhiều nhất

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Tên nhóm: Nhóm 7

Tên hệ thống “Quản lý điểm danh sinh viên’’

Thành viên nhóm

Hà Nội, tháng năm

Trang 2

I)Mô tả bài toán

1.Sự cần thiết của bài toán:

a Sự cần thiết của bài toán:

Trường đại học là môi trường đào tạo nên những nhân tài đóng góp vào sự phát của đất nước Do vậy, sinh viên là một nhân tố vô cùng quan trọng Để biết được sinh viên có trang bị đầy đủ kiến thức hay không thì chúng ta cần phải xem sinh viên đó có đến lớp, đến trường, học hành có đầy đủ hay không Vì thế, chúng ta cần một chương trình quản lý điểm danh sinh viên để kiểm tra xem sinh viên có đi học đầy đủ hay không

b Yêu cầu về CSDL:

YC01: Cho phép lưu thông tin về cá nhân của từng sinh viên học trong trường YC02: Cho phép lưu thông tin về lớp học của từng sinh viên học trong trường YC03: Cho phép lưu thông tin về từng môn học mà có sinh viên đó đang học YC04: Cho phép lưu thông tin về số ngày nghỉ của từng sinh viên theo môn học tín chỉ

YC05: Cho phép tính số này nghỉ của từng sinh viên để biết sinh viên nào đi học đầy đủ nhất và sinh viên nào nghỉ học nhiều nhất

YC06: Cho biết lớp nào có sinh viên đi học đầy đủ nhất và sinh viên nghỉ học nhiều nhất

YC07: Cho biết môn học nào có sinh viên đi học đầy đủ nhất và sinh viên nghỉ học nhiều nhất

Trang 3

II)Xây dựng bài toán:

1)Sơ đồ SQL:

Tên CSDL: Quản lý điểm danh sinh viên

 Bảng lop (malop, tenlop) là bảng lưu thông tin các lớp học Mảng có malop

là mã lớp và tenlop là tên của các lớp học Khóa chính – Primary key là malop Ứng với YC02

 Bảng sinhvien (masv, ten, ngaysinh, gt) là bảng lưu thông tin của các sinh

viên Bảng có masv là mã sinh viên, tên và họ của từng sinh viên, ngaysinh

là ngày sinh của sinh viên, gt là giới tính của sinh viên Khóa chính-

Primary key là masv Ứng với YC01

 Bảng monhoc (mamh, tenmh, tc) là bảng lưu thông tin của các môn học

Bảng có mamh là mã môn học, tenmh là tên môn học và tc là tín chỉ Khóa chính – Primary key là mamh Ứng với YC03

Trang 4

 Bảng diemdanh (malop, mamh, masv, cp, kp) là bảng lưu thông tin điểm

danh của từng sinh viên Bảng có malop là mã lớp, mamh là mã môn học, masv là mã sinh viên, cp là có phép, kp là không phép Khóa ngoại – Foreign key là malop tham chiếu đến lop(malop), mamh tham chiếu đến monhoc(mamh) và masv tham chiếu đến sinhvien(masv) Ứng với YC04, YC05, YC06, YC07

Trang 5

Diagram:

Trang 6

2)Code T - SQL:

CREATEDATABASE quanly

malop NVARCHAR ( 10 ),

tenlop NVARCHAR ( 10 ),

);

INSERT INTO Lop VALUES ( 'NV1' , 'CNPM' );

INSERT INTO Lop VALUES ( 'NV2' , 'CNDT' );

INSERT INTO Lop VALUES ( 'NV3' , 'HTD' );

masv NVARCHAR ( 20 ),

ten VARCHAR ( 30 ),

ngaysinh DATE ,

gt BIT ,

);

INSERT INTO sinhvien VALUES ( 'A100' , 'Nguyen Van Anh' , '1/1/1999' , '0' );

INSERT INTO sinhvien VALUES ( 'A101' , 'Le Van Anh' , '2/3/1999' , '1' );

INSERT INTO sinhvien VALUES ( 'A102' , 'Nguyen Dinh Duong' , '1/21/1999' , '1' );

INSERT INTO sinhvien VALUES ( 'A103' , 'Nguyen Tri Tue' , '2/8/1999' , '1' );

INSERT INTO sinhvien VALUES ( 'A104' , 'Ngo Thii Uyen' , '3/12/1999' , '0' );

INSERT INTO sinhvien VALUES ( 'A105' , 'Nguyen Van A' , '3/12/1999' , '0' );

mamh NVARCHAR ( 10 ),

tenmh VARCHAR ( 30 ),

tc INT ,

);

INSERT INTO monhoc VALUES ( 'MH1' , 'Toan' , '2' );

INSERT INTO monhoc VALUES ( 'MH2' , 'Ly' , '3' );

INSERT INTO monhoc VALUES ( 'MH3' , 'Hoa' , '2' );

INSERT INTO monhoc VALUES ( 'MH4' , 'Sinh' , '2' );

INSERT INTO monhoc VALUES ( 'MH5' , 'CSDL' , '2' );

INSERT INTO monhoc VALUES ( 'MH6' , 'GDTC' , '1' );

malop NVARCHAR ( 10 ),

mamh NVARCHAR ( 10 ),

masv NVARCHAR ( 20 ),

cp INT ,

kp INT ,

);

INSERT INTO diemdanh VALUES ( 'NV1' , 'MH1' , 'A100' , '0' , '0' );

INSERT INTO diemdanh VALUES ( 'NV2' , 'MH2' , 'A100' , '4' , '2' );

INSERT INTO diemdanh VALUES ( 'NV1' , 'MH1' , 'A101' , '0' , '1' );

INSERT INTO diemdanh VALUES ( 'NV3' , 'MH3' , 'A102' , '2' , '3' );

INSERT INTO diemdanh VALUES ( 'NV1' , 'MH4' , 'A103' , '4' , '2' );

INSERT INTO diemdanh VALUES ( 'NV2' , 'MH5' , 'A104' , '4' , '2' );

INSERT INTO diemdanh VALUES ( 'NV3' , 'MH6' , 'A104' , '4' , '2' );

INSERT INTO diemdanh VALUES ( 'NV3' , 'MH1' , 'A105' , '4' , '2' );

Trang 7

Bài Tập Và Lời Giải Chi Tiết

Bài 1 : Danh sách sinh viên có vần A

SELECT mamh,sinhvien.*,cp,kp

WHERE sinhvien.masv=diemdanh.masv and ten like '%a%'

GROUP BY

mamh,sinhvien.masv,sinhvien.ten,sinhvien.ngaysinh,sinhvien.gt,cp,kp

Bài 2 : Cập nhật môn học với phí phạt không đi học.Căn cứ vào số buổi không đi học của từng sinh viên.Cập nhật tổng tiền phạt

ALTER TABLE monhoc ADD tienphat int

UPDATE monhoc

WHERE mamh='MH1' AND mamh='MH3' AND mamh='MH4' AND

mamh='MH5'

UPDATE monhoc

WHERE mamh='MH2'

UPDATE monhoc

WHERE mamh='MH6'

ALTER TABLE diemdanh ADD tongtienphat int

UPDATE diemdanh

WHERE diemdanh.mamh=monhoc.mamh )

Bài 3 : Danh sách sinh viên sinh vào tháng 1 đi học đầy đủ

Trang 8

SELECT malop,diemdanh.mamh, sinhvien.*, cp, kp

FROM sinhvien, diemdanh

WHERE sinhvien.masv=diemdanh.masv and kp=0 and cp=0 and

month(ngaysinh) = '1'

Bài 4 : Cập nhật thời gian điểm danh của lớp

ALTER TABLE dbo.diemdanh

ADD timedd DATE

UPDATE dbo.diemdanh SET timedd='2018/11/19' WHERE malop='NV1' UPDATE dbo.diemdanh SET timedd='2018/11/21' WHERE malop='NV2' UPDATE dbo.diemdanh SET timedd='2018/11/20' WHERE malop='NV3'

Bài 5 : Tính số lượng sinh viên đi học trong ngày 20-11

IF EXISTS ( SELECT COUNT(masv)

FROM dbo.diemdanh

WHERE timedd='2018/11/20')

BEGIN

PRINT('TONG SO SINH VIÊN ĐI HOC TRONG NGAY 20-11') SELECT COUNT(masv)

FROM dbo.diemdanh

WHERE timedd='2018/11/20'

Trang 9

ELSE

PRINT('KHONG CO SINH VIÊN DI HOC TRONG NGAY 20/11')

Bài 6:Thêm tổng cột sinh viên đi học trong bảng môn học

ALTER TABLE monhoc

ADD tongsinhvien INT

GO

UPDATE monhoc SET tongsinhvien = (SELECT COUNT(diemdanh.masv) FROM monhoc,diemdanh where monhoc.mamh = diemdanh.mamh

group by monhoc.mamh )

SELECT * FROM monhoc

Bài 7 :Danh sách lớp có sinh viên đi học ít nhất

SELECT DISTINCT diemdanh.malop,tenlop,count(masv) AS'So luong sinh vien'

FROM lop,diemdanh

WHERE lop.malop=diemdanh.malop and diemdanh.malop in (SELECT malop FROM diemdanh

WHERE (cp+kp) in (SELECT max (cp+kp) FROM diemdanh) ) GROUP BY diemdanh.malop,tenlop,diemdanh.masv

Bài 8 :Môn học có sinh viên đi học đầy đủ nhất

SELECT DISTINCT diemdanh.mamh,tenmh,count(masv) AS 'So luong sinh vien'

FROM monhoc,diemdanh

Trang 10

WHERE monhoc.mamh=diemdanh.mamh and diemdanh.mamh in (SELECT mamh

FROM diemdanh

WHERE (cp+kp) in (SELECT min(cp+kp) FROM diemdanh)) GROUP BY diemdanh.mamh,tenmh,diemdanh.masv

Bài 9 : Danh sách sinh viên đi học đầy đủ theo lớp

SELECT malop,mamh,sinhvien.*,cp,kp

FROM diemdanh,sinhvien

WHERE diemdanh.masv = sinhvien.masv and cp=0 and kp=0

GROUP BY sinhvien.masv,ten,ngaysinh,gt,malop,mamh,cp,kp

Bài 10 ;Danh sách sinh viên ít đi học nhất

SELECT DISTINCT sinhvien.*,tenmh,cp,kp,sum(cp+kp) AS 'So buoi nghi' FROM sinhvien,diemdanh,monhoc

WHERE sinhvien.masv=diemdanh.masv and diemdanh.masv in (SELECT DISTINCT masv

FROM diemdanh

WHERE (cp+kp) in (SELECT DISTINCT max(cp+kp) FROM diemdanh))

GROUP BY sinhvien.masv,ten,ngaysinh,gt,cp,kp,monhoc.tenmh

Trang 11

III)Thao tác với CSDL:

1)Nguyễn Đức Thịnh:

https://drive.google.com/file/d/1JDwhv9i4mHasr0cUnX1DUDURrHXiMQCj/view? usp=sharing

2) Nguyễn Đức Phú:

https://drive.google.com/file/d/1R7V1wDaL2bwoYJoS1Jwnz7UlfARVMv4T/view? usp=sharing

3) Lê Công Quyền:

https://drive.google.com/file/d/1GGPQGaELVBoCzNEsG0BLN6muezhPppKg/view? usp=sharing

4) Trần Minh Sơn: https://drive.google.com/open?

id=1JGsrQmjzTeSLCFNEWfAWLALkhVbuHzYx

5) Đặng Hùng Sơn:

https://drive.google.com/file/d/1nnCA_RTtmNX9udRJMQip3aSy20E3gsZb/view? usp=sharing

6) Lê Văn Thiêm:

https://drive.google.com/file/d/1rGta6ugePjQV2ulxmSoQE83y0UNjlrvl/view?

usp=sharing

Trang 12

7) Vũ Nguyên Ngọc Tâm:

https://drive.google.com/file/d/1Byhzgv0eLglYiP4VBEtnyasvVbaECgOb/view? usp=sharing

Ngày đăng: 25/03/2019, 20:26

w