Trang chủ>  Blog >  Kiến thức chuyên môn >  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 dạng bài tập SQL truy vấn cơ bản mà bạn thường xuyên gặp.


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

  22,111 lượt xem

Nội dung bài viết

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ện

bà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

  1. 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: 

lời giải câu truy vấn không kết nối

 

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 >= 

lời giải cho bài tập sql truy vân có kết nối

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.

lời giải bài tập sql có từ khóa group by không điều kiện

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 tập sql câu lệnh group by có điều kiện lọc

Bài số 4: Câu lệnh SQL có từ khoá TOP.

  1. Cho biết MaSV, HoTen sinh viên có điểm TBC cao nhất ở học kỳ 1.
  2. Cho biết MaSV, HoTen sinh viên có số học phần điểm HP <5 nhiều nhất.
  3. SELECT TOP 1 SINHVIEN.MaSV, HoTen, SUM(DiemHP*Sodvht)/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 BYSUM(DiemHP*Sodvht)/SUM(Sodvht) DESC

  1. 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

Bài tập sql số 1: Cấu trúc lồng nhau phủ định (KHÔNG, CHƯA).

  1. Cho biết Họ tên sinh viên KHÔNG học học phần nào.
  2. 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

  1. SELECT MaSV, Hoten FROM SINHVIEN

WHERE MaSV NOT IN (SELECT MaSV FROM DIEMHP)

  1. 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 câu lệnh sql lồng nhau không kết nối.

  1. Cho biết Tên lớp có sinh viên tên Hoa.
  2. Cho biết HoTen sinh viên có điểm học phần ‘001’là <5

Lời giải:

  1. SELECT TenLop FROM DMLOP

WHERE MaLop IN (SELECT MaLop FROM SINHVIEN

WHERE HoTen LIKE N'% Hoa')

  1. 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.

  1. Cho biết HoTen sinh viên có DiemHP cao nhất.
  2. 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:

  1. SELECT SINHVIEN.MaSV, HoTen, MaHP, DiemHP FROM DIEMHP

INNER JOIN SINHVIEN ON SINHVIEN.MaSV=DIEMHP.MaSV WHERE DiemHP >=ALL(SELECT DiemHP FROM DIEMHP )

  1. SELECT HoTen, YEAR(GETDATE())-YEAR(NgaySinh) 

Bài tập sql về câu lệnh chứa lượng từ any.

  1.   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’.

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:

  1. SELECT MaSV, MaHP FROM DIEMHP WHERE DiemHP

>ANY(SELECT DiemHP FROM DIEMHP WHERE MaSV='001')

  1. 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:

1.Cho biết MaSV, HoTen sinh viên đã ít nhất một lần học học phần nào đó.

  1. Cho biết MaSV, HoTen sinh viên đã không học học phần nào.
  2. SELECT MaSV, HoTen FROM SINHVIEN WHERE EXISTS(SELECT            

* FROM DIEMHP

WHERE SINHVIEN.MaSV=DIEMHP.MaSV)

  1. SELECT MaSV, HoTen

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ệu

Bài tập sql số 1: câu Lệnh sql INSERT bổ sung dữ liệu

  1. Bổ sung một dòng dữ liệu cho bảng DMKHOA bộ giá trị sau: (‘KT’, ‘Kế toán’).
  2. Bổ sung một sinh viên cho bảng SINHVIEN (dữ liệu nào bất kỳ).

Lời giải:

  1. INSERT INTO KHOA(MaKhoa,TenKhoa) VALUES (‘KT’,N‘Kế toán’)

Hoặc

INSERT INTO   KHOA VALUES (‘KT’, N‘Kế toán’, NULL)

  1. 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

  1. Xóa những sinh viên có DTBC <3 (sinh viên buộc thôi học).
  2. Xóa những sinh viên không học học phần nào.
  3. 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

IN TO DIEMTBC FROM DMHOCPHAN

INNER JOIN DIEMHP ON DMHOCPHAN.MaHP=DIEMHP.MaHP GROUP BY MaSV

  1. DELETE FROM SINHVIEN

WHERE MaSV IN (SELECT MaSV FROM DIEMTBC

WHERE DiemTBC<3)

  1. 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

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

  1. 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 đề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, 

 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.

Chương trình đào tạo: Phân tích dữ liệu, Khoa học dữ liệu, Kĩ sư dữ liệu, Lập trình ứng dụng.
Chất lượng nhất - Uy tín nhất - Nhiều học viên tin tưởng nhất
Hơn 8000 học viên ưu tú đã tốt nghiệp
Đăng ký tư vấn khóa học

*Vui lòng nhập số điện thoại của bạn

*Vui lòng nhập họ tên của bạn

*Vui lòng chọn địa điểm học

*Vui lòng chọn giới tính

*Vui lòng chọn 1 trường


Các bài viết liên quan


Phân tích Dữ liệu và Hiểu biết Khách hàng: Tối ưu hóa Trải nghiệm Người dùng

Phân tích dữ liệu là quá trình tổng hợp, xử lý, đánh giá và giải thích các dữ liệu liên quan đến hành vi của khách hàng, bao gồm lịch sử giao dịch, hoạt động trên trang web, tương tác với sản phẩm hoặc dịch vụ, đánh giá về chất lượng và sự hài lòng, và nhiều yếu tố khác. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng phân tích dữ liệu để hiểu rõ hơn về hành vi của khách hàng. Chúng tôi hy vọng rằng bài viết này sẽ cung cấp cho bạn kiến thức và kỹ năng cần thiết để phát triển doanh nghiệp của bạn.

BigQuery - Công cụ phân tích dữ liệu mạnh mẽ của Google Cloud Platform

Trong thời đại dữ liệu lớn ngày nay, việc phân tích và trích xuất giá trị từ khối lượng dữ liệu khổng lồ là vô cùng quan trọng. BigQuery là một trong những công cụ hàng đầu giúp thực hiện điều đó một cách hiệu quả.

Trọn bộ tài liệu học SQL cho người mới bắt đầu - share tài liệu

Trọn bộ tài liệu học SQL cơ bản dành cho dân newbie hay trái ngành của MCI sẽ là điểm tựa vững chắc giúp bạn tự tin trên con đường phát triển sự nghiệp về dữ liệu.

Các bài viết liên quan