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é.
Contents
Bài tập SQL câu lệnh truy vấn có điều kiện
Bài tập SQL truy vấn dạng 1:
Bạn đang xem: Các dạng bài tập SQL truy vấn cơ bản mà bạn thường xuyên gặp.
Bài số 1: Câu lệnh SQL không kết nối
- Hiển thị danh sách gồm: MaSV, HoTen, MaLop, NgaySinh(dd/mm/yyyy), GioiTinh (Nam, Nữ), Namsinh của những sinh viên có họ không bắt đầu bằng chữ N, L, T.
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
- Hiển thị danh sách gồm MaSV, HoTen, MaLop, DiemHP, MaHP của những sinh viên có điểm HP >=
READ MORE:
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.
- 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.
- Cho biết MaSV, HoTen sinh viên có điểm TBC cao nhất ở học kỳ 1.
- Cho biết MaSV, HoTen sinh viên có số học phần điểm HP <5 nhiều nhất.
SELECT TOP 1 SINHVIEN.MaSV, HoTen, SUM(DiemHPSodvht)/SUM(Sodvht) AS DiemTBC
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 BY SUM(DiemHPSodvht)/SUM(Sodvht) DESC
SELECT TOP 1 SINHVIEN.MaSV, HoTen, COUNT(MaHP) AS ‘So Hoc phan’
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 nhau
Xem thêm : Non IT Business analyst: Vai trò, thách thức và những khía cạnh cần trau dồi
Bài tập SQL số 1: Cấu trúc lồng nhau phủ định (KHÔNG, CHƯA).
- Cho biết Họ tên sinh viên KHÔNG học học phần nào.
- Cho biết Họ tên sinh viên CHƯA học học phần có mã ‘001’
Lời giải cho bài tập câu lệnh SQL truy vấn lồng nhau
SELECT MaSV, Hoten
FROM SINHVIEN
WHERE MaSV NOT IN (SELECT MaSV FROM DIEMHP)
SELECT MaSV, HoTen
FROM SINHVIEN
WHERE MaSV NOT IN (SELECT MaSV FROM DIEMHP
WHERE MaHP=’001′)
Bài tập SQL số 2: Cấu trúc lồng nhau không kết nối.
- Cho biết Tên lớp có sinh viên tên Hoa.
- Cho biết HoTen sinh viên có điểm học phần ‘001’ là <5
Xem thêm : Top 4 trang web tạo widget thời tiết online miễn phí tốt nhất
Lời giải:
SELECT TenLop
FROM DMLOP
WHERE MaLop IN (SELECT MaLop FROM SINHVIEN
WHERE HoTen LIKE N’% Hoa’)
SELECT HoTen
FROM SINHVIEN
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.
- Cho biết HoTen sinh viên có DiemHP cao nhất.
- Cho biết HoTen sinh viên có tuổi cao nhất.
Lời giải cho bài tập SQL truy vấn lượng từ all:
SELECT SINHVIEN.MaSV, HoTen, MaHP, DiemHP
FROM DIEMHP
INNER JOIN SINHVIEN ON SINHVIEN.MaSV=DIEMHP.MaSV
WHERE DiemHP >= ALL(SELECT DiemHP FROM DIEMHP )
SELECT HoTen, YEAR(GETDATE())-YEAR(NgaySinh)
FROM SINHVIEN
Bài tập SQL về câu lệnh chứa lượng từ any.
- Cho biết MaSV, MaHP có điểm HP lớn hơn bất kỳ các điểm HP của sinh viên mã ‘001’.
- 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:
SELECT MaSV, MaHP
FROM DIEMHP
WHERE DiemHP > ANY(SELECT DiemHP FROM DIEMHP WHERE MaSV=’001′)
SELECT MaSV
FROM DIEMTBC
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:
- Cho biết MaSV, HoTen sinh viên đã ít nhất một lần học học phần nào đó.
- Cho biết MaSV, HoTen sinh viên đã không học học phần nào.
Xem thêm : Top 4 trang web tạo widget thời tiết online miễn phí tốt nhất
Lời giải:
SELECT MaSV, HoTen FROM SINHVIEN WHERE EXISTS(SELECT * FROM DIEMHP
WHERE SINHVIEN.MaSV=DIEMHP.MaSV)
SELECT MaSV, HoTen
FROM SINHVIEN WHERE
NOT EXISTS(SELECT * FROM DIEMHP
WHERE SINHVIEN.MaSV=DIEMHP.MaSV)
READ MORE:
Các câu lệnh SQL bổ sung, cập nhật, xóa dữ liệu
Bài tập SQL số 1: Câu lệnh SQL INSERT bổ sung dữ liệu
- Bổ sung một dòng dữ liệu cho bảng DMKHOA bộ giá trị sau: (‘KT’, ‘Kế toán’).
- Bổ sung một sinh viên cho bảng SINHVIEN (dữ liệu nào bất kỳ).
Xem thêm : Top 4 trang web tạo widget thời tiết online miễn phí tốt nhất
Lời giải:
INSERT INTO KHOA(MaKhoa,TenKhoa) VALUES (‘KT’,N’Kế toán’)
INSERT INTO KHOA VALUES (‘KT’, N’Kế toán’, NULL)
INSERT INTO SINHVIEN
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
- Xóa những sinh viên có DTBC <3 (sinh viên buộc thôi học).
- Xóa những sinh viên không học học phần nào.
Xem thêm : Top 4 trang web tạo widget thời tiết online miễn phí tốt nhất
Lời giải:
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
INTO DIEMTBC FROM DMHOCPHAN
INNER JOIN DIEMHP ON DMHOCPHAN.MaHP=DIEMHP.MaHP GROUP BY MaSV
DELETE FROM SINHVIEN
WHERE MaSV IN (SELECT MaSV FROM DIEMTBC
WHERE DiemTBC<3)
DELETE FROM SINHVIEN
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
- 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.
Xem thêm : Top 4 trang web tạo widget thời tiết online miễn phí tốt nhất
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
UPDATE DIEMTBC SET XetLenLop=
CASE
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 được ứng dụng nhiều trong quá trình tự học SQL đối với tất cả các bạn. Các bạn có thể tham khảo thêm các bài viết liên quan đến Python, SQL, DA.
Tài liệu tham khảo: Cafedev tài liệu SQL toàn tập.
Nguồn: https://ispacedanang.edu.vn
Danh mục: Học tập