BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015

4 1.1K 3
BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015

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

Thông tin tài liệu

BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015, BÀI TẬP MẪU VỀ MÔN CƠ SỞ DỮ LIỆU THI CÔNG CHỨC CÀ MAU NĂM 2015, CÓ ĐÁP ÁN CHÍNH XÁC HAY, LÀ MẪU BÀI TẬP CHUNG NHẤT cho việc thi công chức tại cà mau, đề thi và bài giải môn cơ sở dữ liệu, tài liệu ôn tập môn cơ sở dữ liệu

BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015 Cho lược đồ cơ sở dữ liệu Quản lý điểm thi như sau: LOP(MaLop, TenLop, LopTruong, SiSo) SINHVIEN(MaSV, HoTenSV, NgaySinh, GioiTinh, DiaChi, Lop) MONHOC(MaMH, TenMH, SoTinChi, SoTiet) KETQUA(MaSV, MaMH, LanThi, Diem, KetQua) Yêu cầu: 1. Hãy phát biểu một cách chặt chẽ RBTV “Sĩ số thực sự (SiSo) của một lớp bằng số lượng sinh viên trực thuộc lớp đó”. Thực hiện các câu truy vấn sau bằng ngôn ngữ đại số quan hệ: 2. Với các sinh viên thuộc lớp ‘K1-01’ (tên lớp = ‘K1-01’), hãy liệt kê mã số sinh viên, họ tên sinh viên, tên môn học, lần thi, điểm số của các môn học mà sinh viên tham gia với kết quả ‘Đậu’. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL, DSQH: 3. Liệt kê mã sinh viên, họ tên sinh viên và kết quả thi (MaSV, HoTenSV, Diem, KetQua) lần 1 môn ‘Cơ sở dữ liệu’ (Tên môn học = ’Cơ sở dữ liệu’). Kết quả sắp xếp theo điểm giảm dần. 4. Cho biết tên lớp và sĩ số của lớp có đông sinh viên nhất. (chọn mẫu tin có cột kiểu số có giá trị lớn nhất) (tương tự cho câu hỏi: Cho biết môn học có số tín chỉ nhiều nhất hoặc Cho biết sinh viên có tuổi lớn nhất,…. ) 5. Cho biết mã sinh viên, họ tên và số lượng môn học mà sinh viên đó đã tham gia thi. (dùng GROUP BY) 6. Cho biết mã sinh viên, họ tên và số môn học mà sinh viên đó đã tham gia thi với số môn học trên 5? (đk trên nhóm HAVING) 7. Cho biết sinh viên học nhiều môn nhất? (đk HAVING>= all…) 8. (DSQH+SQL, phép giao): cho biết sv học cả 2 môn ‘Co So Du Lieu’ và ‘Toan Roi Rac’ 9. (DSQH+SQL, phép trừ): cho biết những sv không học môn ‘Toan Roi Rac’ - Hết - ĐÁP ÁN Câu 1: (1 điểm) • Nội dung: Sĩ số thực sự của một lớp bằng số lượng sinh viên trực thuộc lớp đó. ∀l ∈ LOP, ∀ sv ∈ SINHVIEN sao cho sv.Lop = l.MaLop l.Siso = Count (sv.MaSV) Cuối ∀sv Cuối ∀l Hoặc viết khác: ∀l ∈ LOP, l.Siso = Count (sv ∈ SINHVIEN ∧ sv.Lop = l.Malop) (sv.MaSV) Cuối ∀l hoặc cách khác: l.SiSo = Count (sv ∈ SINHVIEN ∧ sv.Lop = l.Malop) (*) • Bối cảnh: LOP, SINHVIEN • Bảng tầm ảnh hưởng : Thêm Xóa Sửa LOP + - + (SiSo) SINHVIEN + + + (Lop) Câu 2: (0.75 điểm) ((LOP:TenLop=‘K1-01’) SINHVIEN (KETQUA:Ketqua=’Đậu’) aaa MONHOC) [MaSV, HoTenSV, TenMH, LanThi, Diem] Câu 3: (0.75 điểm) (kết giữa các bảng, chọn, chiếu đơn giản) SELECT sv.MaSV, HoTenSV, Diem, KetQua FROM SINHVIEN sv, MONHOC m, KETQUA k WHERE sv.MaSV = k.MaSV AND k.MaMH = m.MaMH AND m.TenMH = ‘Cơ sở dữ liệu’ and k.LanThi=1 MaLop=Lop MaSV MaMH ORDER BY Diem DESC; Câu 4: (0.5 điểm) (chọn mẫu tin có cột kiểu số có giá trị lớn nhất) SELECT TenLop, SiSo FROM LOP WHERE SiSo = ( SELECT Max (SiSo) FROM Lop) Câu 5: (0.5 điểm) (dùng GROUP BY) SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc FROM SINHVIEN sv, KETQUA k WHERE sv.MaSV = k.MaSV GROUP BY sv.MaSV, HoTenSV MỞ RỘNG Câu 6: Cho biết mã sinh viên, họ tên và số môn học mà sinh viên đó đã tham gia thi với số môn học trên 5? (đk trên nhóm HAVING) SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc FROM SINHVIEN sv, KETQUA k WHERE sv.MaSV = k.MaSV GROUP BY sv.MaSV, HoTenSV HAVING count(distinct k.MaMH) >=5 Câu 7: Cho biết sinh viên học nhiều môn nhất? (đk HAVING>= all…) SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc FROM SINHVIEN sv, KETQUA k WHERE sv.MaSV = k.MaSV GROUP BY sv.MaSV, HoTenSV HAVING count(distinct k.MaMH) >= All (SELECT count(distinct k.MaMH) FROM SINHVIEN sv, KETQUA k WHERE sv.MaSV = k.MaSV GROUP BY sv.MaSV, HoTenSV ) Câu 8: (DSQH+SQL, phép giao): cho biết sv học cả 2 môn ‘Co So Du Lieu’ và ‘Toan Roi Rac’ ((MONHOC: TenMH= ‘Co So Du Lieu’) KETQUA)[Masv] a aa(((MONHOC: TenMH= ‘Toan Roi Rac’) KETQUA)[Masv] Select masv From MONHOC, KETQUA Where tenmh=‘Co So Du Lieu’ and monhoc.mamh=ketqua.mamh and Masv IN (Select masv From MONHOC, KETQUA Where tenmh=‘Toan Roi Rac’ and monhoc.mamh=ketqua.mamh and ) Câu 9: (DSQH+SQL, phép trừ): cho biết những sv không học môn ‘Toan Roi Rac’ ∩ MaMH MaMH MaMH SINHVIEN[MaSV] ((MONHOC: TenMH= ‘Toan roi rac’) KETQUA)[Masv] Select masv, hoten From SINHVIEN Where Masv NOT IN (Select masv from monhoc, ketqua Where tenmh=‘Toan Roi Rac’ and monhoc.mamh=ketqua.mamh and ) . BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015 Cho lược đồ cơ sở dữ liệu Quản lý điểm thi như sau: LOP(MaLop, TenLop, LopTruong, SiSo) SINHVIEN(MaSV,. và kết quả thi (MaSV, HoTenSV, Diem, KetQua) lần 1 môn Cơ sở dữ liệu (Tên môn học = Cơ sở dữ liệu ). Kết quả sắp xếp theo điểm giảm dần. 4. Cho biết tên lớp và sĩ số của lớp có đông sinh viên. Cho biết mã sinh viên, họ tên và số môn học mà sinh viên đó đã tham gia thi với số môn học trên 5? (đk trên nhóm HAVING) 7. Cho biết sinh viên học nhiều môn nhất? (đk HAVING>= all…) 8. (DSQH+SQL,

Ngày đăng: 30/01/2015, 09:07

Từ khóa liên quan

Mục lục

  • BÀI TẬP MÔN CƠ SỞ DỮ LIỆU ÔN THI CÔNG CHỨC 2015

  •  Bảng tầm ảnh hưởng

    • LOP

    • Câu 3: (0.75 điểm) (kết giữa các bảng, chọn, chiếu đơn giản)

    • SELECT sv.MaSV, HoTenSV, Diem, KetQua

    • Câu 4: (0.5 điểm) (chọn mẫu tin có cột kiểu số có giá trị lớn nhất)

    • SELECT TenLop, SiSo

    • Câu 5: (0.5 điểm) (dùng GROUP BY)

    • SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc

      • MỞ RỘNG

      • SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc

      • SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc

      • HAVING count(distinct k.MaMH) >= All (SELECT count(distinct k.MaMH)

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

Tài liệu liên quan