THIẾT KỆ HỆ THỐNG THÔNG TIN QUẢN LÝ SINH VIÊN - Pdf 89

I- Tạo các bảng
1. Tạo bảng khoa
Create table khoa (mak char(10) primary key, tenk char(50), diachi char(30));
2. Tạo bảng giaovien
create table giaovien (magv char(10) primary key, hoten char(30), chucdanh char(30), mak
char(10) references khoa(mak));
3. Tạo bảng lop
create table lop (malop char(10) primary key, tenlop char(10), siso byte, mak char(10) references
khoa(mak), magv char(10) references giaovien(magv));
4. Tạo bảng sinhvien
create table sinhvien (masv char(10) primary key, hoten char(40), ngaysinh date, gioitinh yesno,
quequan char(20), malop char(10) references lop(malop));
5. Tạo bảng monhoc
create table monhoc (mamh char(10) primary key, tenmh char(50), sotc byte);
6. Tạo bảng diem
create table diem (masv char(10) references sinhvien(masv), mamh char(10) references
monhoc(mamh), diemlan1 double, diemlan2 double, primary key (masv,mamh));
II- Thực hiện các câu truy vấn SQL
1. Đưa ra mã sinh viên, họ tên của các sinh viên có ngày sinh vào tháng 11
SELECT masv, hoten
FROM sinhvien
WHERE month(ngaysinh)=11;
2. Đưa ra mã lớp, tên lớp của sinh viên khoa thương mại điện tử
SELECT masv, hoten, tenlop
FROM sinhvien AS sv, khoa AS k, lop AS l
WHERE sv.malop=l.malop and l.mak=k.mak and tenk="thuong mai dien tu";
3. Đưa ra mã lớp, tên lớp của lớp có sĩ số lớn nhất
SELECT malop, tenlop
FROM lop
WHERE siso=(select max(siso) from lop);
4. Đưa ra mã khoa, tên khoa, tổng số sinh viên từng khoa( theo tổng số giảm)

WHERE sinhvien.masv=diem.masv And diem.mamh=monhoc.mamh And (tenmh="co so du lieu"
Or tenmh="mang may tinh")
GROUP BY sinhvien.masv, hoten
HAVING sum(diemlan1)>16;
10. Đưa ra mã môn học, tên môn học, tổng số sinh viên thi lại của từng môn học
SELECT monhoc.mamh, tenmh, count(*) AS Tong_SV_thilai
FROM monhoc, diem
WHERE diem.mamh=monhoc.mamh And diemlan1<5
GROUP BY monhoc.mamh, tenmh;
11. Đưa ra mã môn học, tên môn học của môn học có nhiều sinh viên không thi qua lần 1 nhất
SELECT monhoc.mamh, tenmh, count(*) AS Tong_SV_thilai
FROM monhoc, diem
WHERE diem.mamh=monhoc.mamh And diemlan1<5
GROUP BY monhoc.mamh, tenmh
HAVING count(*)>=all(select count(*) from monhoc, diem where diem.mamh=
monhoc.mamh and diemlan1<5 group by monhoc.mamh, tenmh);
12. Đưa ra mã sinh viên, họ tên của các sinh viên chưa phải thi lại lần nào
SELECT sinhvien.masv, hoten
FROM sinhvien, diem
WHERE sinhvien.masv=diem.masv and diemlan1>5
GROUP BY sinhvien.masv, hoten;
13. Đưa ra mã sinh viên , họ tên của các sinh viên đã từng được điểm 10
SELECT sinhvien.masv, hoten
FROM sinhvien, diem
WHERE sinhvien.masv=diem.masv and (diemlan1=10 or diemlan2=10)
GROUP BY sinhvien.masv, hoten;
14. Đưa ra mã sinh viên, họ tên của các sinh viên có nhiều điểm 10 nhất
SELECT sinhvien.masv, hoten, count(*) AS So_lan_duoc_diem_10
FROM sinhvien, diem
WHERE sinhvien.masv=diem.masv and (diemlan1=10 or diemlan2=10)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status