[Hệ quản trị CSDL 2] – Bài tập DDL/DML

  1. Liệt kê các lớp và số lượng sinh viên mỗi lớp thuộc chuyên ngành ‘Tin học Kế toán’.Thông tin hiển thị gồm: mã lớp, tên lớp và số lượng sinh viên.

select LOP.MaLop, TenLop, count(MaSV) SoLuongSV

from LOP left join SINHVIEN on LOP.MaLop = SINHVIEN.MaLop join CHUYENNGANH on LOP.MaCN = CHUYENNGANH.MaCN

where TenCN like N’Tin học Kế toán’

group by LOP.MaLop, TenLop;

2. Cho  biết  những  sinh  viên  có  ngày  sinh  từ  ngày ‘01/01/1988’  đến  ngày ‘30/9/1988’. Thông tin hiển thị gồm: mã sinh viên, họ tên sinh viên, ngày sinh, giới tính và quê quán.

select MaSV, HoTenSV, NgaySinh, GioiTinh, MaTinh

from SINHVIEN

where NgaySinh between ’01-JAN-88′ and ’30-SEP-88′;

3.Cho biết số lượng sinh viên của từng lớp. Thông tin hiển thị gồm: mã lớp, tên lớp, số lượng sinh viên có bí danh là ‘Số lượng sinh viên’.

select LOP.MaLop, TenLop, Count(MaSV) as SoLuongSV

from SINHVIEN join LOP on LOP.MaLop = SINHVIEN.MaLop

group by LOP.MaLop, TenLop;

4.Cho biết số lượng sinh viên nữ của mỗi lớp. Thông tin hiển thị gồm: tên lớp, số lượng sinh viên nữ có bí danh là ‘Số lượng sinh viên nữ’.

select TenLop, Count(case GioiTinh when N’Nữ’ then 1 end) as SoLuongSVNu

from LOP left join SINHVIEN on LOP.MaLop = SINHVIEN.MaLop

group by TenLop;

5.Cho biết tổng số chuyên ngành đào tạo của trường.

select count(MaCN) as TongSoChuyenNganh

from CHUYENNGANH;

6.Cho biết những môn học có số tín chỉ là 4. Thông tin hiển thị gồm: mã môn học, tên môn học, số tín chỉ, số tiết lý thuyết và số tiết thực hành.

select * from MONHOC

where SoTC = 4;

7.Cho biết những môn học nào không có thực hành. Thông tin hiển thị gồm: mã môn học, tên môn học, số tín chỉ và số tiết lý thuyết.

select MaMH, TenMH, SoTC, SoTietLT

from MONHOC

where SoTietTH is null;

8.Cho biết những môn học không có sinh viên đăng ký trong ‘Học kỳ 2’ niên khóa ‘2010-2011’.

select MONHOC.MaMH, TenMH

from MONHOC join MHHOCKY on MONHOC.MaMH = MHHOCKY.MaMH

where MaHK in (select MaHK from HOCKY where TenHK like N’Học kỳ 2′ and NienKhoa like ‘2010-2011’)

    and MONHOC.MaMH not in (select MaMH from DANGKY);

9.Cho biết những sinh viên có số môn học đăng ký lớn hơn 7 trong ‘Học kỳ 1’ niên khóa ‘2010-2011’.

select SINHVIEN.MaSV, HoTenSV, count(MaMH) as SoMon

from SINHVIEN join DANGKY on SINHVIEN.MaSV = DANGKY.MaSV

where MaHK in (select MaHK from HOCKY where TenHK like N’Học kỳ 1′ and NienKhoa like ‘2010-2011’)

group by SINHVIEN.MaSV, HoTenSV

having count(MaMH)>7;

10.Cho biết ‘Học kỳ 1’ niên khóa ‘2011-2012’ mở những môn học nào. Thông tin hiển thị gồm: mã môn học, tên môn học, số tín chỉ, số tiết lý thuyết và số tiết thực hành.

select * from MONHOC

where MaMH in (select MaMH from MHHOCKY join HOCKY on HOCKY.MaHK = MHHOCKY.MaHK where TenHK like N’Học kỳ 1′ and NienKhoa like ‘2011-2012’);

11.Liệt kê các môn học do mỗi chuyên ngành đào tạo. Thông tin hiển thị gồm: mã chuyên ngành, tên chuyên ngành, mã môn học, tên môn học và số tín chỉ.

select CHUYENNGANH.MaCN, TenCN, MONHOC.MaMH, TenMH, SoTC

from MHCHUYENNGANH join MONHOC on MHCHUYENNGANH.MaMH = MONHOC.MaMH join CHUYENNGANH on MHCHUYENNGANH.MaCN = CHUYENNGANH.MaCN

order by TenCN;

12.Cho biết những sinh viên có số lượng đăng ký môn học nhiều nhất trong học kỳ ‘Học kỳ 2’ niên khóa ‘2010-2011’. Thông tin hiển thị gồm: mã sinh viên, tên sinh viên, mã lớp và số lượng môn học đăng ký.

select SINHVIEN.MaSV, HoTenSV, count(MaMH) as SoMon

from SINHVIEN join DANGKY on SINHVIEN.MaSV = DANGKY.MaSV

where MaHK in (select MaHK from HOCKY where TenHK like N’Học kỳ 2′ and NienKhoa like ‘2010-2011’)

group by SINHVIEN.MaSV, HoTenSV

having count(MaMH) = (select Max(count(MaMH)) from SINHVIEN join DANGKY on SINHVIEN.MaSV = DANGKY.MaSV

                        where MaHK in (select MaHK from HOCKY where TenHK like N’Học kỳ 2′ and NienKhoa like ‘2010-2011’)

                        group by SINHVIEN.MaSV);

13.Cho biết những sinh viên sinh năm 1990. Thôngtin hiển thị gồm: mã sinh viên, tên sinh viên, mã lớp và tên lớp.

select MaSV, HoTenSV, LOP.MaLop, TenLop

from SINHVIEN join LOP on SINHVIEN.MaLop=LOP.MaLop

where extract(year from NgaySinh)=1990;

14.Cho biết thông tin sinh viên đăng ký môn học gồm: mã sinh viên, tên sinh viên, mã môn học, tên môn học, ngày đăng ký, tên học kỳ, niên khóa với mã sinh viên là tham số nhập vào từ bàn phím.

select SINHVIEN.MaSV, HoTenSV, MONHOC.MaMH, TenMH, NgayDK, TenHK, NienKhoa

from SINHVIEN join DANGKY on SINHVIEN.MaSV=DANGKY.MaSV join HOCKY on HOCKY.MaHK=DANGKY.MAHK join MONHOC on DANGKY.MaMH=MONHOC.MaMH

where SINHVIEN.MaSV=’&MaSoSinhVien’

Tác giả: Bùi Kiều Trang (sinh viên lớp 19DTH01, khoa Công nghệ thông tin) & Lê Đoàn Bội Uyên (sinh viên lớp 19DTH01, khoa Công nghệ thông tin) & Trần Minh Nhựt (sinh viên lớp 19DTH03, khoa Công nghệ thông tin)

Bình luận về bài viết này