Chào mừng bạn quay trở lại với chuỗi hành trình tự học SQL cùng MCNA Technology School!
Ở Bài 1, bạn đã biết cách lấy toàn bộ dữ liệu từ một bảng. Tuy nhiên, trong thực tế, các bảng dữ liệu có thể chứa hàng triệu dòng và bạn chỉ cần lấy một phần nhỏ trong đó. Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh WHERE trong SQL để lọc chính xác thông tin bạn cần và sắp xếp chúng theo thứ tự mong muốn bằng ORDER BY.
1. Lệnh WHERE Trong SQL Dùng Để Làm Gì?
Lệnh WHERE trong SQL được sử dụng để lọc các bản ghi (hàng dữ liệu) thỏa mãn một hoặc nhiều điều kiện cụ thể.
Cú pháp cơ bản:
SQL
SELECT tên_cột_1, tên_cột_2
FROM tên_bảng
WHERE điều_kiện;
2. Các Toán Tử Thường Dùng Với Lệnh WHERE Trong SQL
Để tạo điều kiện lọc, bạn có thể kết hợp lệnh WHERE trong SQL với các toán tử sau:
2.1. Toán tử so sánh (=, >, <, >=, <=, <>)
-
Ví dụ: Lấy danh sách học viên có điểm thi lớn hơn hoặc bằng 8:
SQL
SELECT HoTen, DiemThi
FROM HocVien
WHERE DiemThi >= 8;
2.2. Toán tử logic (AND, OR, NOT)
-
AND: Tất cả điều kiện phải đúng. -
OR: Chỉ cần một trong các điều kiện đúng. -
NOT: Phủ định — lấy kết quả ngược lại với điều kiện.
SQL
-- AND: Lọc học viên sống ở 'TP.HCM' VÀ đăng ký khóa học 'SQL'
SELECT * FROM HocVien
WHERE ThanhPho = 'TP.HCM' AND KhoaHoc = 'SQL';
-- OR: Lọc học viên sống ở 'TP.HCM' HOẶC đăng ký khóa học 'SQL'
SELECT * FROM HocVien
WHERE ThanhPho = 'TP.HCM' OR KhoaHoc = 'SQL';
-- NOT: Lọc các học viên KHÔNG sống ở 'TP.HCM'
SELECT * FROM HocVien
WHERE NOT ThanhPho = 'TP.HCM';
2.3. Toán tử phạm vi và danh sách (BETWEEN, IN)
-
BETWEEN: Lọc giá trị trong một khoảng (bao gồm cả 2 mút). -
IN: Lọc các giá trị nằm trong danh sách chỉ định.
SQL
-- Tìm học viên có điểm thi từ 7 đến 9
SELECT * FROM HocVien
WHERE DiemThi BETWEEN 7 AND 9;
-- Tìm học viên sống tại Hà Nội hoặc TP.HCM
SELECT * FROM HocVien
WHERE ThanhPho IN ('Hà Nội', 'TP.HCM');
2.4. Toán tử tìm kiếm mẫu (LIKE)
Dùng ký tự đại diện % để tìm chuỗi phù hợp:
-
%A: Kết thúc bằng chữ A. -
A%: Bắt đầu bằng chữ A. -
%A%: Chứa chữ A ở bất kỳ vị trí nào.
SQL
-- Tìm học viên có tên bắt đầu bằng chữ 'Nguyên'
SELECT * FROM HocVien
WHERE HoTen LIKE 'Nguyên%';
3. Sắp Xếp Dữ Liệu Với Mệnh Đề ORDER BY
Sau khi lọc bằng lệnh WHERE trong SQL, bạn thường muốn sắp xếp kết quả hiển thị theo một thứ tự nhất định. Mệnh đề ORDER BY giúp bạn thực hiện điều này:
-
ASC(Ascending): Sắp xếp tăng dần (Mặc định). -
DESC(Descending): Sắp xếp giảm dần.
Ví dụ:
Lấy danh sách học viên khóa ‘SQL’, sắp xếp điểm thi từ cao xuống thấp:
SQL
SELECT HoTen, DiemThi
FROM HocVien
WHERE KhoaHoc = 'SQL'
ORDER BY DiemThi DESC;
Lưu ý về thứ tự cú pháp: Mệnh đề
WHEREluôn đứng trướcORDER BY.
4. Bài Tập Thực Hành Học SQL Bài 2
Hãy thử áp dụng lệnh WHERE trong SQL và ORDER BY để giải các câu hỏi dưới đây:
Đề bài: Cho bảng
NhanViengồm các cột:MaNV,HoTen,PhongBan,Luong,ThanhPho.
Viết câu lệnh tìm các nhân viên thuộc phòng ‘Marketing’.
Viết câu lệnh tìm các nhân viên có mức lương trên 15,000,000 và sống tại ‘Hà Nội’.
Viết câu lệnh hiển thị tất cả nhân viên thuộc phòng ‘Kế toán’, sắp xếp lương từ thấp đến cao.
SQL
-- Câu 1:
SELECT * FROM NhanVien
WHERE PhongBan = 'Marketing';
-- Câu 2:
SELECT * FROM NhanVien
WHERE Luong > 15000000 AND ThanhPho = 'Hà Nội';
-- Câu 3:
SELECT * FROM NhanVien
WHERE PhongBan = 'Kế toán'
ORDER BY Luong ASC;
Tác giả: Huỳnh Trung Hậu
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
🌐 Website: MCNA Technology School
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

