Hãy viết câu truy vấn khởi tạo bảng dưới đây và các truy vấn bên dưới QUẢN LÝ SINH VIÊN: Các bảng: Sinh viên (Mã SV, Họ tên, Ngày sinh, Ngành học, Khoa) Môn học (Mã MH, Tên MH) Điểm số (Mã SV, Mã MH, Điểm thi) Đề tài (Mã ĐT, Tên đề tài, Giảng

Hãy viết câu truy vấn khởi tạo bảng dưới đây và các truy vấn bên dưới QUẢN LÝ SINH VIÊN: Các bảng: Sinh viên (Mã SV, Họ tên, Ngày sinh, Ngành học, Khoa) Môn học (Mã MH, Tên MH) Điểm số (Mã SV, Mã MH, Điểm thi) Đề tài (Mã ĐT, Tên đề tài, Giảng viên hướng dẫn) Các truy vấn: Tìm tất cả sinh viên thuộc một ngành học cụ thể. Liệt kê các sinh viên đã tốt nghiệp. Thống kê số lượng sinh viên mỗi khoa. Tìm các sinh viên chưa bảo vệ đề tài Tính điểm trung bình tích lũy của từng sinh viên.
Câu trả lời này dùng AI, hãy kiểm tra lại trước khi sử dụng
CREATE TABLE SinhVien (
MaSV INT PRIMARY KEY,
HoTen VARCHAR(100),
NgaySinh DATE,
NganhHoc VARCHAR(100),
Khoa VARCHAR(100)
);

CREATE TABLE MonHoc (
MaMH INT PRIMARY KEY,
TenMH VARCHAR(100)
);

CREATE TABLE DiemSo (
MaSV INT,
MaMH INT,
DiemThi FLOAT,
FOREIGN KEY (MaSV) REFERENCES SinhVien(MaSV),
FOREIGN KEY (MaMH) REFERENCES MonHoc(MaMH),
PRIMARY KEY (MaSV, MaMH)
);

CREATE TABLE DeTai (
MaDT INT PRIMARY KEY,
TenDeTai VARCHAR(100),
GiangVienHuongDan VARCHAR(100)
);

-- Tìm tất cả sinh viên thuộc một ngành học cụ thể
SELECT * FROM SinhVien WHERE NganhHoc = 'Tên ngành học cụ thể';

-- Liệt kê các sinh viên đã tốt nghiệp
SELECT * FROM SinhVien WHERE (NganhHoc = 'Tên ngành tốt nghiệp' AND NgaySinh < DATE_ADD(CURRENT_DATE, INTERVAL -4 YEAR));

-- Thống kê số lượng sinh viên mỗi khoa
SELECT Khoa, COUNT(*) AS SoLuong FROM SinhVien GROUP BY Khoa;

-- Tìm các sinh viên chưa bảo vệ đề tài
SELECT * FROM SinhVien WHERE MaSV NOT IN (SELECT DISTINCT MaSV FROM DeTai);

-- Tính điểm trung bình tích lũy của từng sinh viên
SELECT MaSV, AVG(DiemThi) AS DiemTrungBinh FROM DiemSo GROUP BY MaSV;
Đăng phản hồi