Skip to main content

Homework - Education Management

Phần A: Tạo bảng

  1. Viết các câu lệnh tạo bảng như phần mô tả bên dưới.
  2. Tạo mỗi bảng từ 5-10 records: Sử dụng câu lệnh INSERT, thứ tự nhập dữ liệu cho các tables

Teachers

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2FirstNamenvarchar(50)
3LastNamenvarchar(50)
4Genderbit
5Emailvarchar(50)UNIQUE
6PhoneNumbervarchar(50)yesUNIQUE
7Addressnvarchar(500)yes
8DateOfBirthdatetimeyes

Students

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2FirstNamenvarchar(50)
3LastNamenvarchar(50)
4Genderbit
5Emailvarchar(50)UNIQUE
6PhoneNumbervarchar(50)yesUNIQUE
7Addressnvarchar(500)yes
8DateOfBirthdatetimeyes

Employees

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2FirstNamenvarchar(50)
3LastNamenvarchar(50)
4Genderbit
5Emailvarchar(50)UNIQUE
6PhoneNumbervarchar(50)yesUNIQUE
7Addressnvarchar(500)yes
8DateOfBirthdatetimeyes

Classes

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2Namenvarchar(50)UNIQUE
3Descriptionnvarchar(500)yes
4StartDatedatetimeStartDate <= EndDate
5EndDatedatetimeStartDate <= EndDate

Sample data:

IdNameDescription
1Batch 31Khóa học M.E.R.N
2Batch 84Mỹ thuật đa phương tiện quốc tế
3Batch 99Lập trình viên quốc tế

Classes_Students

Relation Many-to-Many (Classes, Students):

IdColumn NameData TypeNullKeyDefaultConstraint
1ClassIdintFKRefrence to Classes (Id)
2StudentIdintFKRefrence to Students (Id)
PRIMARY KEY

PRIMARY KEY (ClassId, StudentId)

Classes_Teachers

Relation Many-to-Many (Classes, Teachers):

IdColumn NameData TypeNullKeyDefaultConstraint
1ClassIdintFKRefrence to Classes (Id)
2TeacherIdintFKRefrence to Teachers (Id)
PRIMARY KEY

PRIMARY KEY (ClassId, TeacherId)

Subjects

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2Namenvarchar(100)UNIQUE
3Descriptionnvarchar(500)yes

Sample data:

IdNameDescription
1HTML5, CSS3, JavaScriptLập trình WEB căn bản
2ReactJSLập trình FRONTEND ReactJS
3ExpressJSLập trình BACKEND ExpressJS
4MongoDBCSDL NoSQL MongoDB
5MySQLCSDL MySQL
6SQL ServerCSDL SQL Server

Subjects_Teachers

Relation Many-to-Many (Subjects, Teachers):

IdColumn NameData TypeNullKeyDefaultConstraint
1SubjectIdintFKRefrence to Subjects (Id)
2TeacherIdintFKRefrence to Teachers (Id)
PRIMARY KEY

PRIMARY KEY (SubjectId, TeacherId)

Marks

Relation Many-to-Many (Subjects, Students):

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2StudentIdintFKRefrence to Students (Id)
3SubjectIdintFKRefrence to Subjects (Id)
4Markdecimal(5, 2)0n >= 0 and n <= 10
5DatedatetimeNOW

AttendanceTypes

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPK
2NamenvarcharUNIQUE
3Descriptionnvarchar(500)yes

Sample data:

IdNameDescription
1PresentCó mặt
2AbsentVắng
3LateMuộn
4ExcusedCó xin phép

Attendances

Relation Many-to-Many (Students, Subjects, AttendanceTypes):

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2StudentIdintFKRefrence to Students (Id)
3SubjectIdintFKRefrence to Subjects (Id)
4AttendanceTypeIdintFKRefrence to AttendanceTypes (Id)
5DatedateNOW
6Descriptionnvarchar(500)yes
UNIQUE CONSTRAINT

UNIQUE (SubjectId, StudentId, Date)

Tuitions

Relation Many-to-Many (Students, Employees):

IdColumn NameData TypeNullKeyDefaultConstraint
1IdintPKAUTONUMBER
2StudentIdintFKRefrence to Students (Id)
3InvoiceCodevarchar(10)UNIQUE
4InvoiceDatedatetimeNOW
5Amountdecimal(18,2)Amount > 0
6EmployeeIdintFKRefrence to Employees (Id)
7Descriptionnvarchar(500)yes

Phần B: Truy vấn dữ liệu

Lớp học

  1. Hiển thị danh sách các lớp học cùng với thông tin giáo viên phụ trách.
  2. Hiển thị danh sách các lớp học cùng với thông tin giáo viên phụ trách và số lượng học sinh.
  3. Hiển thị danh sách các lớp học cùng với thông tin giáo viên phụ trách và số lượng học sinh, sắp xếp theo tên lớp học.
  4. Hiển thị danh sách các lớp học còn trống (chưa có học sinh nào đăng ký).
  5. Hiển thị danh sách các lớp học còn học, sắp xếp theo ngày kết thúc tăng dần.
  6. Hiển thị các lớp học đã kết thúc, sắp xếp theo ngày kết thúc giảm dần.
  7. Hiển thị các lớp học chưa bắt đầu, sắp xếp theo ngày bắt đầu tăng dần.
  8. Hiển thị lớp học có ít hơn 10 học sinh.
  9. Hiển thị lớp học có nhiều hơn 20 học sinh.
  10. Hiển thị lớp học có số lượng học sinh nhiều nhất.

Học sinh

  1. Hiển thị danh sách học sinh của lớp học có tên là Batch 31.
  2. Hiển thị danh sách học sinh của lớp học có tên là Batch 31, sắp xếp theo tên học sinh.

Môn học

  1. Hiển thị danh sách môn học cùng với thông tin giáo viên dạy môn đó.
  2. Hiển thị danh sách môn học cùng với thông tin giáo viên dạy môn đó, sắp xếp theo tên môn học.
  3. Hiển thị danh sách môn học cùng với thông tin trung bình cộng điểm số của môn đó, sắp xếp theo tên môn học.

Điểm số

  1. Hiển thị danh sác các học sinh có điểm số của môn học ReactJS, sắp xếp theo điểm số giảm dần.
  2. Hiển thị danh sách các học sinh có điểm số của môn học ReactJS cao nhất, sắp xếp theo điểm số giảm dần.

Học phí

  1. Hiển thị danh sách học sinh nộp học phí trong tháng 10/2020.
  2. Hiển thị danh sách học sinh nộp học phí trong tháng 10/2020, sắp xếp theo ngày nộp học phí, sắp xếp theo tên học sinh.
  3. Hiển thị danh sách học sinh chưa nộp học phí trong tháng 10/2020, sắp xếp theo tên học sinh.
  4. Hiển thị tổng số tiền học phí đã đóng của học sinh có tên là Nguyễn Văn A.
  5. Hiển thị tổng số tiền học phí đã đóng của học sinh có tên là Nguyễn Văn A trong năm 2020.
  6. Hiển thị danh sách học sinh của lớp học có tên là Batch 31 số tiền nộp học phí trong tháng 10/2020, sắp xếp theo tên học sinh.

Điểm danh

  1. Hiển thị danh sách điểm danh của học sinh có tên là Nguyễn Văn A trong tháng 10/2020, sắp xếp theo ngày điểm danh.
  2. Hiển thị danh sách điểm danh của học sinh có tên là Nguyễn Văn A trong tháng 10/2020, sắp xếp theo ngày điểm danh, sắp xếp theo tên môn học.
  3. Hiển thị danh sách điểm danh của học sinh có tên là Nguyễn Văn A trong tháng 10/2020, sắp xếp theo ngày điểm danh, sắp xếp theo tên môn học, sắp xếp theo tên giáo viên dạy môn học.
  4. Hiển thị danh sách học sinh với số lần điểm danh vắng trong tháng 10/2020, sắp xếp theo số lần điểm danh vắng giảm dần.
  5. Hiển thị danh sách học sinh với số lần điểm danh vắng trong tháng 10/2020, sắp xếp theo số lần điểm danh vắng giảm dần, sắp xếp theo tên học sinh.