Đăng nhập

Bài 8: Sử dụng WHERE để lọc dữ liệu

Khi làm việc với dữ liệu, việc lấy toàn bộ bảng ra hiếm khi cần thiết. Trong thực tế, chúng ta thường chỉ quan tâm đến một phần dữ liệu thỏa điều kiện nhất định, chẳng hạn: danh sách học sinh lớp 12, những người có điểm trên 8, hoặc sản phẩm đang còn hàng. Đó là lúc câu lệnh WHERE phát huy tác dụng.

Trong bài học này, bạn sẽ được làm quen với cách sử dụng mệnh đề WHERE trong SQL – công cụ giúp bạn truy xuất dữ liệu một cách chọn lọc và chính xác hơn.


Câu lệnh SELECT kết hợp WHERE

Cú pháp cơ bản:

SELECT column1, column2, ...
FROM ten_bang
WHERE dieu_kien;

Ví dụ: Lấy thông tin tất cả học sinh có giới tính là ‘Nữ’:

SELECT ho_ten, lop, gioi_tinh
FROM hoc_sinh
WHERE gioi_tinh = 'Nữ';

Lọc dữ liệu theo nhiều điều kiện

Bạn có thể dùng các toán tử so sánh để thiết lập điều kiện:

Toán tửÝ nghĩa
=Bằng
!=, <>Khác
>Lớn hơn
>=Lớn hơn hoặc bằng
<Nhỏ hơn
<=Nhỏ hơn hoặc bằng

Ví dụ: Tìm học sinh lớp 12 có điểm trung bình lớn hơn 8:

SELECT ho_ten, lop, diem_tb
FROM hoc_sinh
WHERE lop = 12 AND diem_tb > 8;

Kết hợp nhiều điều kiện bằng AND / OR

  • 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

Ví dụ: Lấy học sinh có điểm trung bình dưới 5 hoặc thuộc lớp 10:

SELECT ho_ten, lop, diem_tb
FROM hoc_sinh
WHERE diem_tb < 5 OR lop = 10;

Ví dụ: Lấy học sinh nữ ở lớp 11:

SELECT ho_ten, gioi_tinh, lop
FROM hoc_sinh
WHERE gioi_tinh = 'Nữ' AND lop = 11;

Sử dụng NOT để phủ định

Cú pháp:

SELECT ...
FROM ...
WHERE NOT dieu_kien;

Ví dụ: Lấy tất cả học sinh không thuộc lớp 12:

SELECT ho_ten, lop
FROM hoc_sinh
WHERE NOT lop = 12;

Các lưu ý khi dùng WHERE

  • Kiểu dữ liệu phải khớp: nếu cột là số, bạn không đặt giá trị trong dấu nháy đơn.
  • Chuỗi phải đặt trong ' hoặc " tùy hệ quản trị (MySQL chấp nhận 'abc')
  • Trong trường hợp điều kiện phức tạp, bạn nên dùng dấu ngoặc () để phân nhóm.

Ví dụ:

SELECT *
FROM hoc_sinh
WHERE (lop = 12 OR lop = 11) AND diem_tb >= 7;

Tự luyện

  1. Viết câu lệnh lấy tất cả học sinh có điểm dưới 6.
  2. Lấy danh sách học sinh lớp 10 hoặc lớp 11, giới tính là nam.
  3. Lấy tất cả học sinh không học lớp 12 và có điểm trung bình trên 7.

Kết luận

Mệnh đề WHERE là nền tảng quan trọng giúp bạn tìm đúng phần dữ liệu mình cần trong một bảng lớn. Kết hợp cùng các toán tử và điều kiện logic, bạn sẽ có thể tạo ra những truy vấn mạnh mẽ và linh hoạt. Trong bài tiếp theo, chúng ta sẽ học cách sắp xếp kết quả với ORDER BY.


Ghi nhớ: Không phải lúc nào cũng cần SELECT * – hãy chọn cột cần thiết và dùng WHERE để lọc thông minh.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.