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

3 621 1
THIẾT KỆ HỆ THỐNG THÔNG TIN QUẢN LÝ SINH VIÊN

Đang tải... (xem toàn văn)

Thông tin tài liệu

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) SELECT khoa.mak, tenk, sum(siso) FROM khoa, lop WHERE lop.mak=khoa.mak GROUP BY khoa.mak, tenk ORDER BY sum(siso) DESC; 5. Đưa ra số sinh viên quê ở Hà Nội thuộc lớp 42i1 SELECT count(*) AS so_sv_hanoi FROM lop, sinhvien WHERE lop.malop=sinhvien.malop and tenlop="42i1" and quequan="hà nội"; 6. Đưa ra mã lớp, tên lớp của các lớp có tỉ lệ nam nhiều hơn nữ SELECT lop.malop, tenlop, count(*) AS So_sv_nam FROM lop, sinhvien WHERE lop.malop=sinhvien.malop and gioitinh=-1 GROUP BY lop.malop, tenlop HAVING count(*)>(select count(*) from lop l1 where lop.malop=l1.malop); 7. Liệt các môn học 3 tín chỉ SELECT mamh, tenmh FROM monhoc WHERE sotc=3; 8. Đưa ra mã sinh viên, họ tên của các sinh viên khoa thương mại điện tử thi lại môn cơ sở dữ liệu SELECT sinhvien.masv, hoten FROM sinhvien, lop, khoa, monhoc, diem WHERE khoa.mak=lop.mak And lop.malop=sinhvien.malop And sinhvien.masv=diem.masv And diem.mamh=monhoc.mamh And tenk="thuong mai dien tu" And tenmh="co so du lieu" And diemlan1<5; 9. Đưa ra mã sinh viên của các sinh viên có tổng điểm 2 môn cơ sở dữ liệu và mạng máy tính lớn hơn 16 SELECT sinhvien.masv, hoten, sum(diemlan1) AS Tong_diem FROM sinhvien, monhoc, diem 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) GROUP BY sinhvien.masv, hoten HAVING count(*)>=all(select count(*) from sinhvien, diem where sinhvien.masv=diem.masv and (diemlan1=10 or diemlan2=10) group by sinhvien.masv, hoten); 15. Tính điểm trung bình tích luỹ cho các sinhviên ( chỉ tính điểm lần 1) 16. Đưa ra mã sinh viên, họ tên, tên môn học, điểm cao nhất trong các lần thi . 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. 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

Ngày đăng: 19/12/2013, 10:09

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan