Chú ý : đây là các câu hỏi trong bài tập này mà Tâm Gà đã giải , các bạn xem sơ qua nhé. Có kèm theo link download cho các bạn nào cần down về tham khảo thêm. Chúc các bạn học tập vui vẻ nhé.



Giờ thì xem sơ qua cái đề này nhé.

Cho lược đồ CSDL quản lý điểm sinh viên, gồm các lược đồ quan hệ sau:
SinhVien(MaSV, HoTen, Nu, NgaySinh, MaLop, HocBong, Tinh)
Lop(MaLop, TenLop, MaKhoa)
Khoa(MaKhoa, TenKhoa, SoCBGD)
MonHoc(MaMH, TenMH, SoTiet)
KetQua(MaSV, MaMH, DiemThi)

Ví dụ 1Liệt kê danh sách các lớp của khoa, thông tin cần Malop, TenLop, MaKhoa
            SELECT *
            FROM Lop

Ví dụ 2Lập danh sách sinh viên gồm: MaSV, HoTen, HocBong
            SELECT MaSV, Hoten, HocBong
            FROM SinhVien

Ví dụ 3: Lập danh sách sinh viên có học bổng. Danh sách cần MaSV, Nu, HocBong
SELECT MaSV, Nu, HocBong
FROM SinhVien
WHERE HocBong>0

Ví dụ 4: Lập danh sách sinh viên nữ. Danh sách cần các thuộc tính của quan hệ sinhvien
SELECT *
FROM SinhVien
WHERE Nu =Yes

Ví dụ 5: Lập danh sách sinh viên có họ ‘Trần’
SELECT *
FROM SinhVien
WHERE HoTen Like ‘Trần *’

Ví dụ 6: Lập danh sách sinh viên nữ có học bổng
SELECT *
FROM SinhVien
WHERE Nu=Yes AND HocBong>0

Ví dụ 7: Lập danh sách sinh viên nữ hoặc danh sách sinh viên có học bổng
SELECT *
FROM SinhVien
WHERE Nu=Yes OR HocBong>0

Ví dụ 8: Lập danh sách sinh viên có năm sinh từ 1978 đến 1985. Danh sách cần các thuộc tính của quan hệ SinhVien
SELECT *
FROM SinhVien
WHERE YEAR(NgaySinh) BETWEEN 1978 AND 1985


Ví dụ 9: Liệt kê danh sách sinh viên được sắp xếp tăng dần theo MaSV
SELECT *
FROM SinhVien
ORDER BY MaSV

Ví dụ 10: Liệt kê danh sách sinh viên được sắp xếp giảm dần theo HocBong
SELECT *
FROM SinhVien
ORDER BY HocBong DESC

Ví du11: Lập danh sách sinh viên có điểm thi môn CSDL>=8
SELECT SinhVien.MaSV, HoTen, Nu, NgaySinh, DiemThi
FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV
WHERE MaMH = ‘CSDL’ AND DiemThi>=8

Ví du 12: Lập danh sách sinh viên có học bổng của khoa CNTT. Thông tin cần: MaSV, HoTen, HocBong,TenLop
            SELECT MaSV, HoTen, HocBong, TenLop
            FROM Lop INNER JOIN SinhVien ON      Lop.MaLop=SinhVien.MaLop
            WHERE HocBong>0  AND MaKhoa ='CNTT'

Ví du 13: Lập danh sách sinh viên có học bổng của khoa CNTT. Thông tin cần: MaSV, HoTen, HocBong,TenLop, TenKhoa
SELECT MaSV, HoTen, HocBong, TenLop,TenKhoa
FROM ((Lop INNER JOIN SinhVien ON Lop.MaLop=SinhVien.MaLop) INNER JOIN Khoa ON Khoa.MaKhoa=Lop.MaKhoa)
WHERE HocBong>0  AND Khoa.MaKhoa ='CNTT'

Ví dụ 14: Cho biết số sinh viên của mỗi lớp
SELECT Lop.MaLop, TenLop, Count(MaSV) as SLsinhvien
FROM Lop INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop
GROUP BY Lop.MaLop, TenLop

Ví dụ 15: Cho biết số lượng sinh viên của mỗi khoa.
SELECT Khoa.MaKhoa, TenKhoa, Count(MaSV) as SLsinhvien
FROM ((Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa)INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 16Cho biết số lượng sinh viên nữ của mỗi khoa.
SELECT Khoa.MaKhoa, TenKhoa, Count(MaSV) as SLsinhvien
FROM ((SinhVien INNER JOIN Lop ON Lop.MaLop = SinhVien.MaLop) INNER JOIN khoa ON KHOA.makhoa = SinhVien.makhoa)
WHERE Nu=Yes
GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 17: Cho biết tổng tiền học bổng của mỗi lớp
SELECT Lop.MaLop, TenLop, Sum(HocBong) as TongHB
FROM (Lop INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
GROUP BY Lop.MaLop, TenLop


Ví dụ 18Cho biết tổng số tiền học bổng của mỗi khoa
SELECT Khoa.MaKhoa, TenKhoa, Sum(HocBong) as TongHB
FROM ((Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa)INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
GROUP BY Khoa.MaKhoa, TenKhoa

Ví dụ 19Lập danh sánh những khoa có nhiều hơn 100 sinh viên. Danh sách cần: MaKhoa, TenKhoa, Soluong
SELECT Khoa.MaKhoa, TenKhoa, Count(MaSV) as SLsinhvien
FROM ((Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa)INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
GROUP BY Khoa.MaKhoa, TenKhoa
HAVING Count(MaSV) >100

Ví dụ 20Lập danh sánh những khoa có nhiều hơn 50 sinh viên nữ. Danh sách cần: MaKhoa, TenKhoa, Soluong
SELECT Khoa.MaKhoa, TenKhoa, Count(MaSV) as SLsinhvien
FROM ((Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa)INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
WHERE Nu=Yes
GROUP BY Khoa.MaKhoa, TenKhoa
HAVING Count(MaSV)>=50

Ví dụ 21Lập danh sách những khoa có tổng tiền học bổng >=1000000.
SELECT Khoa.MaKhoa, TenKhoa, Sum(HocBong) as TongHB
FROM ((Khoa INNER JOIN Lop ON Khoa.Makhoa = Lop.MaKhoa)INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop)
GROUP BY Khoa.MaKhoa, TenKhoa
            HAVING Sum(HocBong)>= 1000000

Ví dụ22Lập danh sách sinh viên có học bổng cao nhất
SELECT SinhVien.*
FROM SinhVien
WHERE HocBong>= ALL(SELECT HocBong From Sinhvien)

Ví dụ 23Lập danh sách sinh viên có điểm thi môn CSDL cao nhất
SELECT SinhVien.MaSV, HoTen, DiemThi
FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV
WHERE KetQua.MaMH= ‘CSDL’ AND DiemThi>=
ALL(SELECT DiemThi FROM KetQua WHERE MaMH = ‘CSDL’)

Ví dụ 24Lập danh sách những sinh viên không có điểm thi môn CSDL.
SELECT SinhVien.MaSV, HoTen, DiemThi,MaMH
FROM SinhVien INNER JOIN KetQua ON SinhVien.MaSV = KetQua.MaSV
WHERE SinhVien.MaSV  NOT In (Select MaSV From KetQua Where MaMH='CSDL')

Ví dụ 25: Cho biết những khoa nào có nhiều sinh viên nhất
SELECT Khoa.MaKhoa, TenKhoa, Count([MaSV]) AS SoLuongSV
FROM (Khoa INNER JOIN Lop ON Khoa.MaKhoa = Lop.MaKhoa) INNER JOIN SinhVien ON Lop.MaLop = SinhVien.MaLop
GROUP BY Khoa.MaKhoa, Khoa.TenKhoa

HaVing Count(MaSV)>=All(Select Count(MaSV) From ((SinhVien Inner Join Lop On Lop.Malop=SinhVien.Malop)Inner Join Khoa On Khoa.MaKhoa = Lop.MaKhoa )Group By Khoa.Makhoa)






25 Ví Dụ về Ôn Tập SQL Quản Lý Sinh Viên

Bạn đang xem một trong các bài viết tại Chuyên Mục Cơ Sở Dữ LiệuCoSoDuLieu. Và đây là địa chỉ link bài viết http://www.c10mt.com/2012/12/25-vi-du-ve-on-tap-sql-quan-ly-sinh-vien.html . Tâm Gà xin cảm ơn bạn đã theo dõi bài viết này. Đừng quên nhấn LIKE Chia Sẻ để ủng hộ Tâm Gà nếu bài viết có ích !




DMCA com Protection Status