Thiết kế hệ quản trị CSDL - Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server
Chào bạn, tôi hiểu rồi. Bạn cần hệ thống lại nội dung đề bài (yêu cầu bài tập) một cách chuyên nghiệp, sạch sẽ để lưu trữ hoặc ra đề, thay vì các đoạn mã thực thi.
Dưới đây là nội dung đề bài được biên soạn lại từ các hình ảnh của bạn:
BÀI TẬP: QUẢN LÝ SINH VIÊN (Student Management System)
1. Khởi tạo Cơ sở dữ liệu (1.0 điểm)
Tạo một cơ sở dữ liệu có tên là:
StudentManagementSystem.Viết lệnh để bắt đầu sử dụng cơ sở dữ liệu vừa tạo.
2. Tạo bảng và Cấu trúc dữ liệu (3.0 điểm)
Xây dựng các bảng dựa trên thiết kế sau:
Bảng Class (Lưu thông tin lớp học)
| Cột | Kiểu dữ liệu | Ràng buộc | Mô tả |
| ClassId | INT | NOT NULL | Mã lớp |
| ClassCode | NVARCHAR(50) | Tên/Ký hiệu lớp |
Bảng Student (Lưu thông tin sinh viên)
| Cột | Kiểu dữ liệu | Ràng buộc | Mô tả |
| StudentId | INT | NOT NULL | Mã sinh viên |
| StudentName | NVARCHAR(50) | Họ và tên | |
| BirthDate | DATETIME | Ngày sinh | |
| ClassId | INT | Mã lớp (Khóa ngoại) |
Bảng Subject (Lưu thông tin môn học)
| Cột | Kiểu dữ liệu | Ràng buộc | Mô tả |
| SubjectId | INT | NOT NULL | Mã môn học |
| SubjectName | NVARCHAR(100) | Tên môn học | |
| SessionCount | INT | Số tiết học |
Bảng Result (Lưu kết quả học tập)
| Cột | Kiểu dữ liệu | Ràng buộc | Mô tả |
| StudentId | INT | NOT NULL | Mã sinh viên (Khóa ngoại) |
| SubjectId | INT | NOT NULL | Mã môn học (Khóa ngoại) |
| Mark | INT | Điểm thi |
3. Chỉ mục và Thay đổi cấu bảng (1.0 điểm)
Tạo Index: Tạo một Non-Clustered Index tên là
NCI_Student_StudentNametrên bảngStudent, áp dụng cho cộtStudentName.Thay đổi kiểu dữ liệu: Tiến hành chỉnh sửa bảng
Result, thay đổi kiểu dữ liệu của cộtMarktừINTsangFLOAT(để lưu được điểm số thập phân).
4. Thiết lập Ràng buộc (4.0 điểm)
Khóa chính (PRIMARY KEY)
PK_Class: CộtClassIdtrên bảngClass.PK_Student: CộtStudentIdtrên bảngStudent.PK_Subject: CộtSubjectIdtrên bảngSubject.PK_Result: Cặp cộtStudentIdvàSubjectIdtrên bảngResult.
Khóa ngoại (FOREIGN KEY)
FK_Student_Class: CộtClassId(Student) tham chiếu đếnClassId(Class).FK_Result_Student: CộtStudentId(Result) tham chiếu đếnStudentId(Student).FK_Result_Subject: CộtSubjectId(Result) tham chiếu đếnSubjectId(Subject).
Ràng buộc kiểm tra (CHECK CONSTRAINT)
CK_Subject_SessionCount: Đảm bảo giá trị cộtSessionCounttrong bảngSubjectphải lớn hơn 0.
5. Nhập liệu mẫu (2.0 điểm)
Thực hiện thêm dữ liệu vào các bảng theo các bảng dữ liệu cho sẵn (Xem chi tiết trong tài liệu đính kèm để đảm bảo chính xác các giá trị tên lớp, tên sinh viên và điểm số).
6. Truy vấn dữ liệu (3.0 điểm)
Thực hiện các yêu cầu sau bằng ngôn ngữ SQL:
Tìm kiếm sinh viên: Hiển thị danh sách sinh viên (
StudentId,StudentName,BirthDate) có ngày sinh nằm trong khoảng từ 10/10/1992 đến 10/10/1993.Thống kê lớp học: Đếm số lượng sinh viên của từng lớp. Kết quả hiển thị bao gồm:
ClassId,ClassCode,TotalStudent(Sĩ số).Tính tổng điểm: Tính tổng điểm tất cả các môn của từng sinh viên. Chỉ hiển thị những sinh viên có tổng điểm lớn hơn 10. Kết quả gồm:
StudentId,StudentName,TotalMark.