IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình SQL

Kiến Thức Core SQL Server

[Video] Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server [Video] Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server [Video] Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server [Video] Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server [Video] Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server [Video] Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server

View SQL Server

[Video] Hướng dẫn tìm hiểu view trong SQL Server Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

Store & Procedure

[Video] Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server [Video] Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

Trigger

[Video] Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server [Video] Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server [Video] Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL




Trang Chủ SQL Server/MySQL Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

by GokiSoft.com - 20:11 12/01/2022 9,172 Lượt Xem

Quản lý điểm danh Aptech

1. Bảng học viên -> Student

- RollNo :  tên trường trong bảng

- tên học viên : tên trường trong bảng

- giới tinh, ngày sinh, quê quán, email, sđt : tên trường trong bảng

2. Bảng giáo viên -> Teacher

- mã giáo viên : tên trường trong bảng

- ten giáo viên, giới tính, ngày sinh : tên trường trong bảng

3. Bảng môn học -> Subject

- mã môn học : tên trường trong bảng

- tên môn học : tên trường trong bảng

- tổng số buổi : tên trường trong bảng

4. Bảng lớp học -> Class

- mã lớp học : tên trường trong bảng

- tên lớp học : tên trường trong bảng

- ghi chú : tên trường trong bảng

5. Thành viên lớp học -> ClassMember

- RollNo

- ClassNo

- JoinedDate

- OutedDate

6. Phân công công viêc -> Schedule

- ID : tự tăng

- Mã giáo viên

- Mã môn học

- Mã lớp học

- ngày bắt đầu - 1/7/2018

- ngày kết thúc - 30/7/2018

7. Bảng điểm danh -> Attendance

- ID: tự tăng

-  ScheduleId -> liên kết vs Schedule

- RollNo : tên trường trong bảng

- ngày điểm danh : tên trường trong bảng

- điểm danh lần 1 : tên trường trong bảng

- điểm danh lần 2 : tên trường trong bảng

- ghi chú : thông tin bổ sung -> tên trường trong bảng

Yêu cầu :

- Thiết kế database trên

- Thêm dữ liệu cho từng bảng, mỗi bảng 5 bản nghi

- Tạo procedure để xem thông tin học viên trong một lớp học - đầu vào là tên lớp

- Tạo procedure để xem danh sách điểm danh của lớp học, của môn môn học cụ thể. - đầu vào là mã lớp học và môn học

- tạo trigger để xóa dữ liệu học viên

Bình luận



Chia sẻ từ lớp học

vuong huu phu [T2008A]

Ngày viết: 17:39 10/12/2020



create database qldiemdanh
use qldiemdanh

----1. Bảng học viên -> Student
create table Student(
RollNo nvarchar (20) primary key,
Ten_hoc_vien nvarchar (100),
Gioi_tinh nvarchar (20),
Ngay_sinh date,
Que_quan nvarchar (100),
email nvarchar (100),
SDT nvarchar (20),
)
------2. Bảng giáo viên -> Teacher
create table Teacher (
Ma_giao_vien nvarchar(20)  primary key,
Ten_giao_vien nvarchar(100),
Gioi_tinh nvarchar (20),
Ngay_sinh date
)
-----3. Bảng môn học -> Subject
create table Subject_s (
Ma_mon_hoc nvarchar(20)  primary key,
Ten_mon_hoc nvarchar(100),
Tong_so_buoi int
)
------4. Bảng lớp học -> Class
create table Class (
Ma_lop_hoc nvarchar(20)  primary key,
Ten_lop_hoc nvarchar(100),
Ghi_chu text
)
------Thành viên lớp học -> ClassMember
create table ClassMember (
RollNo nvarchar(20) ,
ClassNo nvarchar(20),
JoinedDate date,
OutedDate date
)
----6. Phân công công viêc -> Schedule
create table Schedule(
id int identity(1,1)  primary key,
Ma_giao_vien nvarchar(20),
Ma_mon_hoc nvarchar(20),
Ma_lop_hoc nvarchar(20),
Ngay_bat_dau date,
Ngay_ket_thuc date
)
------7. Bảng điểm danh -> Attendance
create table Attendance(
id int identity(1,1)  primary key,
ScheduleId int,
RollNo nvarchar(20),
Ngay_diem_danh date,
Diem_danh_lan_1 NVARCHAR(50),
Diem_danh_lan_2 NVARCHAR(50),
Ghi_chu text
)
alter table ClassMember
add constraint _fk_ClassMember_ClassNo
foreign key (ClassNo)
references Class(Ma_lop_hoc)

alter table ClassMember
add constraint _fk_ClassMember_rollno
foreign key (RollNo)
references Student(RollNo)

alter table Schedule
add constraint _fk_Schedule_Ma_giao_vien
foreign key (Ma_giao_vien)
references Teacher(Ma_giao_vien)

alter table Schedule
add constraint _fk_Schedule_Subject
foreign key (Ma_mon_hoc)
references Subject_s(Ma_mon_hoc)

alter table Schedule
add constraint _fk_Schedule_Ma_lop_hoc
foreign key (Ma_lop_hoc)
references Class(Ma_lop_hoc)

alter table Attendance
add constraint _fk_ScheduleId
foreign key (ScheduleId)
references Schedule(id)


insert into Student(RollNo,Ten_hoc_vien,Gioi_tinh,Ngay_sinh,Que_quan,email,SDT)
values
('HS01','A','Nam','2002-09-18','Ha Noi','[email protected]','01234567899'),
('HS02','E','Nam','2002-09-01','Hai Duong','[email protected]','4594859847'),
('HS03','D','Nu','2002-01-28','Ha Nam','[email protected]','0120897688'),
('HS04','C','Nam','2002-07-10','Ha Noi','[email protected]','58748588488'),
('HS05','B','Nam','2002-12-28','Tuyen Quang','[email protected]','01234564583')

insert into Teacher(Ma_giao_vien,Ten_giao_vien,Gioi_tinh,Ngay_sinh)
values
('GV01','ooo','Nu','1997-02-16'),
('GV02','ttt','Nu','1998-07-29'),
('GV03','hhh','Nam','1995-02-20'),
('GV04','yyy','Nu','1991-09-19'),
('GV06','opp','Nu','1997-01-06')

insert into Subject_s(Ma_mon_hoc,Ten_mon_hoc,Tong_so_buoi)
values
('MH01','Toan','40'),
('MH02','Van','40'),
('MH03','Tieng Anh','30'),
('MH04','Lich su','25'),
('MH05','Dia li','25')

insert into Class(Ma_lop_hoc,Ten_lop_hoc,Ghi_chu)
values 
('Cl01','Lop A1','Tang 1'),
('Cl02','Lop A2','Tang 1'),
('Cl03','Lop A3','Tang 2'),
('Cl04','Lop A4','Tang 2'),
('Cl05','Lop A5','Tang 3')

insert into ClassMember (RollNo,ClassNo,JoinedDate,OutedDate)
values
('HS01','Cl01','1-7-2018','1-7-2022'),
('HS02','Cl02','1-7-2018','1-7-2022'),
('HS03','Cl03','1-7-2018','1-7-2022'),
('HS04','Cl04','1-7-2018','1-7-2022'),
('HS05','Cl05','1-7-2018','1-7-2022')

insert into Schedule (Ma_giao_vien,Ma_mon_hoc,Ma_lop_hoc,Ngay_bat_dau,Ngay_ket_thuc)
values
('GV01','MH01','Cl01','2018-7-1','2018-7-30'),
('GV02','MH02','Cl02','2018-7-1','2018-7-30'),
('GV03','MH03','Cl03','2018-7-1','2018-7-30'),
('GV04','MH04','Cl04','2018-7-1','2018-7-30'),
('GV06','MH05','Cl05','2018-7-1','2018-7-30')

insert into Attendance(ScheduleId,RollNo,Ngay_diem_danh,Diem_danh_lan_1,Diem_danh_lan_2,Ghi_chu)
values
('1','HS01','2020-01-01','ok','ok','ok'),
('2','HS02','2020-01-01','ok','ok','ok'),
('3','HS03','2020-01-01','ok','ok','ok'),
('4','HS04','2020-01-01','ok','ok','ok'),
('5','HS05','2020-01-01','ok','ok','ok')

create proc xem_sh_the_lop
@ten_lop nvarchar(100) 
as
select Student.RollNo,Student.Ten_hoc_vien,Student.Gioi_tinh,Student.Que_quan,Student.email,Student.SDT,Class.Ma_lop_hoc,Class.Ten_lop_hoc
from ClassMember,Schedule,Attendance,Class,Subject_s,Teacher,Student
where ClassMember.ClassNo = Class.Ma_lop_hoc and Schedule.Ma_giao_vien = Teacher.Ma_giao_vien and Schedule.Ma_mon_hoc = Subject_s.Ma_mon_hoc
and Schedule .Ma_lop_hoc =Class.Ma_lop_hoc and Schedule .id = Attendance.ScheduleId and ClassMember.RollNo =Student.RollNo
and Class.Ten_lop_hoc = @ten_lop


exec xem_sh_the_lop 'Lop A3'
exec xem_sh_the_lop 'Lop A1'

select *from Attendance
select * from Schedule

create proc xem_diem_danh
@Ma_lop nvarchar(100),
@ma_mon_hoc nvarchar(100)
as
select Class.Ten_lop_hoc,Student.RollNo,Student.Ten_hoc_vien,Attendance.Ngay_diem_danh,Attendance.Diem_danh_lan_1,Attendance.Diem_danh_lan_2,Subject_s.Ten_mon_hoc
from ClassMember,Schedule,Attendance,Class,Subject_s,Teacher,Student
where ClassMember.ClassNo = Class.Ma_lop_hoc and Schedule.Ma_giao_vien = Teacher.Ma_giao_vien and Schedule.Ma_mon_hoc = Subject_s.Ma_mon_hoc
and Schedule .Ma_lop_hoc =Class.Ma_lop_hoc and Schedule .id = Attendance.ScheduleId and ClassMember.RollNo =Student.RollNo
and Class.Ma_lop_hoc = @Ma_lop and Subject_s.Ma_mon_hoc = @ma_mon_hoc

exec xem_diem_danh 'Cl03' , 'MH03'

create trigger xoa_hoc_vien_sd
on Student
instead of delete
as
begin
delete from Attendance where RollNo in ( select RollNo from deleted)
delete from ClassMember where RollNo in ( select RollNo from deleted)
delete from Student where RollNo in ( select RollNo from deleted)
end

delete student where RollNo = 'HS01'
select* from Student 


Đã sao chép!!!