Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10)) GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10)) SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30)) DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30)) HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2)) Show Ta sử dụng SSMS để tạo lập và nhập dữ liệu cho CSDL Thực hiện các yêu cầu dưới đây :
Tham khảo đáp án dưới đây nhé :-- Đưa ra thông tin gồm mã số, họ tên và tên khoa của tất cả các giảng viên SELECT GV.Magv, GV.Hotengv, K.Tenkhoa FROM TBLGiangVien GV join TBLKhoa K ON GV.Makhoa = K.Makhoa -- Đưa ra thông tin gồm mã số, họ tên và tên khoa của các giảng viên của khoa 'Dia ly' SELECT GV.maGV, GV.hoTenGV, K.tenKhoa FROM TBLGiangVien GV join TBLKhoa K ON GV.maKhoa = K.maKhoa -- Cho biết số sinh viên của khoa 'Cong nghe sinh hoc' SELECT COUNT(SV.maSV) AS So_SV FROM TBLSinhVien SV WHERE maKhoa='Bio' -- Đưa ra danh sách gồm mã số, họ tên và tuổi của các sinh viên khoa 'Toan hoc' SELECT SV.maSV, SV.hoTenSV, SV.namSinh, K.tenKhoa FROM TBLSinhVien SV JOIN TBLKhoa K ON SV.maKhoa = K.maKhoa WHERE K.tenKhoa = 'Toan hoc' -- Cho biết số giảng viên của khoa 'Cong nghe sinh hoc' SELECT COUNT(GV.maGV) AS So_GV FROM TBLGiangVien GV join TBLKhoa K ON GV.maKhoa = K.maKhoa WHERE K.tenKhoa='Cong nghe sinh hoc' -- Cho biết thông tin về sinh viên không tham gia thực tập SELECT SV.maSV , SV.hoTenSV, SV.namSinh, SV.queQuan FROM TBLSinhVien SV WHERE NOT EXISTS( SELECT HD.maSV FROM TBLHuongDan HD WHERE SV.maSV = HD.maSV) -- Đưa ra mã khoa, tên khoa và số giảng viên của mỗi khoa SELECT K.maKhoa,K.tenKhoa, COUNT(K.maKhoa) AS So_GV FROM TBLGiangVien GV JOIN TBLKhoa K ON GV.maKhoa = K.maKhoa GROUP BY K.maKhoa,K.tenKhoa -- Cho biết số điện thoại của khoa mà sinh viên có tên 'Le Van Son' đang theo học SELECT K.tenKhoa, K.dienThoai FROM TBLKhoa K join TBLSinhVien SV ON K.maKhoa = SV.maKhoa WHERE SV.hoTenSV = 'Le Van Son' Devmaster Academy Các dạng bài tập SQL cơ bản bao gồm: Câu lệnh truy vấn điều kiện, phân nhóm, lồng nhau, lượng tử, cấu trúc tập hợp, lệnh bổ sung, cập nhập và xóa dữ liệu Các dạng bài tập SQL truy vấn cơ bản mà bạn thường xuyên gặp.Các bạn thắc mắc về Các dạng bài tập sql truy vấn bao gồm những dạng bài tập gì, các dạng bài tập sql đó có khó không? và phương pháp giải các bài tập sql, Hãy để MCI cùng bạn giải các bài tập đóó nhé. bài tập sql câu lệnh truy vấn có điều kiệnbài tập sql truy vấn dạng 1: Bài số 1: Câu lệnh SQL không kết nối
lời giải cho bài tập sql truy vấn: bài số 2: Câu lệnh SQL có kết nối 1.Hiển thị danh sách gồm MaSV, HoTên, MaLop, DiemHP, MaHP của những sinh viên có điểm HP >= Bài tâp sql câu lệnh truy vấn phân nhóm.Bài số1: Câu lệnh SQL có từ khoá GROUP BY không điều kiện. 1.Cho biết MaLop, TenLop, tổng số sinh viên của mỗi lớp. Bài số 2: Câu lệnh SQL có từ khóa Group By có điều kiện lọc. Cho biết MaSV, HoTen, Số các học phần thiếu điểm (DiemHP<5) của mỗi sinh viên. Bài số 4: Câu lệnh SQL có từ khoá TOP.
FROM DMHOCPHAN INNER JOIN DIEMHP ON DMHOCPHAN.MaHP=DIEMHP.MaHP INNER JOIN SINHVIEN ON SINHVIEN.MaSV=DIEMHP.MaSV WHERE HocKy='1' GROUP BY SINHVIEN.MaSV, HoTen ORDER BYSUM(DiemHP*Sodvht)/SUM(Sodvht) DESC
FROM DIEMHP INNER JOIN SINHVIEN ON SINHVIEN.MaSV=DIEMHP.MaSV WHERE DiemHP<5 GROUP BY SINHVIEN.MaSV, HoTen ORDER BY COUNT(MaHP) DESC Bài tập sql câu lệnh truy vấn lồng nhauBài tập sql số 1: Cấu trúc lồng nhau phủ định (KHÔNG, CHƯA).
Lời giải cho bài tập câu lệnh sql truy vấn lồng nhau
WHERE MaSV NOT IN (SELECT MaSV FROM DIEMHP)
WHERE MaSV NOT IN (SELECT MaSV FROM DIEMHP WHERE MaHP='001') Bài tập sql số 2: Cấu trúc câu lệnh sql lồng nhau không kết nối.
Lời giải:
WHERE MaLop IN (SELECT MaLop FROM SINHVIEN WHERE HoTen LIKE N'% Hoa')
WHERE MaSV IN (SELECT MaSV FROM DIEMHP WHERE DiemHP<5 AND MaHP='001'). Bài tập sql câu lệnh truy vấn lượng từbài tập sql về câu lệnh chứa lượng từ all.
lời giải cho bài tập sql truy vấn lượng từ all:
INNER JOIN SINHVIEN ON SINHVIEN.MaSV=DIEMHP.MaSV WHERE DiemHP >=ALL(SELECT DiemHP FROM DIEMHP )
Bài tập sql về câu lệnh chứa lượng từ any.
2.Cho biết sinh viên có điểm học phần nào đó lớn hơn gấp rưỡi điểm trung bình chung của sinh viên đó. lời giải cho bài tập sql lượng từ any:
\>ANY(SELECT DiemHP FROM DIEMHP WHERE MaSV='001')
WHERE DiemTBC*1.5 < ANY(SELECT DiemHP FROM DIEMHP WHERE DIEMHP.MaSV=DIEMTBC.MaSV) Bài tập sql về câu lệnh chứa lượng từ exists: 1.Cho biết MaSV, HoTen sinh viên đã ít nhất một lần học học phần nào đó.
* FROM DIEMHP WHERE SINHVIEN.MaSV=DIEMHP.MaSV)
FROM SINHVIEN WHERE NOT EXISTS(SELECT * FROM DIEMHP WHERE SINHVIEN.MaSV=DIEMHP.MaSV) Các câu lệnh sql bổ sung, cập nhập, xóa dữ liệuBài tập sql số 1: câu Lệnh sql INSERT bổ sung dữ liệu
Lời giải:
Hoặc INSERT INTO KHOA VALUES (‘KT’, N‘Kế toán’, NULL)
VALUES ('012', N'Nguyễn Văn Hoà', 'CT12', 'True','12/02/1994', N'Quy Nhơn') Bài tập sql số 2: câu lệnh sql DELETE xoá dữ liệu
Trước hết hãy tính điểm TBC (trung bình chung) của mỗi sinh viên và xuất ra bảng DIEMTBC. SELECT MaSV, SUM(DiemHP*Sodvht)/SUM(Sodvht) AS DiemTBC IN TO DIEMTBC FROM DMHOCPHAN INNER JOIN DIEMHP ON DMHOCPHAN.MaHP=DIEMHP.MaHP GROUP BY MaSV
WHERE MaSV IN (SELECT MaSV FROM DIEMTBC WHERE DiemTBC<3)
WHERE MaSV NOT IN (SELECT DISTINCT MaSV FROM DIEMHP) Bài tập sql số 3: câu lệnh sql UPDATE cập nhật dữ liệu 1.Thêm cột XepLoai, Cập nhật dữ liệu cột XepLoai theo yêu cầu sau: Nếu DiemTBC >=8 thì xếp loại Giỏi, ngược lại Nếu DiemTBC >=7 thì xếp loại Khá, ngược lại Nếu DiemTBC >=5 thì xếp loại Trung bình, Ngược lại là yếu Lời giải: Bảng DIEMTBC được tạo ra từ câu lệnh GROUP BY ở phần trên. Thêm cột XepLoai, XepLenLop cho bảng DIEMTBC. ALTER TABLE DIEMTBC ADD XepLoai nvarchar(10) ALTER TABLE DIEMTBC ADD XetLenLop nvarchar(50) UPDATE DIEMTBC SET XepLoai = CASE WHEN DiemTBC>=8 THEN N'Giỏi' WHEN DiemTBC>=7 THEN N'Khá' WHEN DiemTBC>=5 THEN N'Trung bình' ELSE N'Yếu' END
WHEN DiemTBC >=5 THEN N'Được lên lớp' WHEN DiemTBC>=3 THEN N'Tạm ngừng tiến độ ' ELSE N'Buộc thôi học' END Trên đây là một số bài tập sql truy vấn cơ bản mà Học Viện MCI Việt Nam, giới thiệu đên các bạn. Phân lớn các bài tập sql ở trên đều được ưng dụng nhiều trong quá trình tự học sql đối với tất cả các bạn, |