Chủ Nhật, 30 tháng 7, 2023

Mệnh đề WHERE trong SQL

Ở bài trước chúng ta đã học cách sử dụng lệnh SELECT để lấy dữ liệu từ bảng, nhưng lệnh đó sẽ lấy tất cả dữ liệu hiện có, vì vậy trong bài này mình giới thiệu thêm một lệnh khác đó là lệnh WHERE dùng để lọc dữ liệu từ kết quả trả về đó.

Mục lục

  • 1. Tìm hiểu Lệnh Where trong T-SQL
  • 2. Ví dụ với WHERE trong T-SQL
  • 3. Where với hơn một điều kiện

1. Tìm hiểu Lệnh Where trong T-SQL

Lệnh WHERE được dùng để kết hợp trong lệnh SELECT và vị trí được đặt sau lệnh FROM để lọc dữ liệu, cú pháp như sau:

Cú pháp
1
2
3
SELECT columns_list
FROM table_name
WHERE conditions

Ví dụ
1
2
3
SELECT *
FROM customers
WHERE age = 32

Trong ví dụ này thì age = 32 chính là condition, ý nghĩa của nó là lọc qua tất cả dữ liệu trong bảng và chọn dòng nào có age = 32.

Bạn có thể sử dụng các toán tử so sánh như: 

Bài viết này được đăng tại tranvanbinh.vn

  • > lớn hơn
  • < bé hơn
  • = bằng
  • >= lớn hơn hoặc bằng
  • <= bé hơn hoặc bằng
  • LIKE so sánh chuỗi trùng khớp
  • NOT so sánh không giống, thường kết hơp với LIKE, IN, ..

Trong danh sách này có thể có một số toán tử bạn chưa biết đến, tuy nhiên đừng lo lắng quá nhé, mình sẽ giới thiệu ở các bài tiếp theo.

2. Ví dụ với WHERE trong T-SQL

Giả sử ta có bảng dữ liệu như sau (bảng này được dùng cho toàn bộ các phần phía dưới đây):

1
2
3
4
5
6
7
8
ID  NAME       AGE       ADDRESS            SALARY
1   Ramesh     32        Ahmedabad          2000.00
2   Khilan     25        Delhi              1500.00
3   kaushik    23        Kota               2000.00
4   Chaitali   25        Mumbai             6500.00
5   Hardik     27        Bhopal             8500.00
6   Komal      22        MP                 4500.00
7   Muffy      24        Indore             10000.00

Bây giờ mình cần truy vấn lấy các columns IDName and Salary của những khách hàng nào có mức lương lớn hơn 3000.

1
2
3
SELECT ID, NAME, SALARY 
FROM CUSTOMERS
WHERE SALARY > 3000;

Kết quả sẽ trả về như sau:

1
2
3
4
5
ID  NAME       SALARY
4   Chaitali   6500.00
5   Hardik     8500.00
6   Komal      4500.00
7   Muffy      10000.00

Một yêu cầu khác như sau, lấy khách hàng có tên là "Hardik".

1
2
3
SELECT ID, NAME, SALARY 
FROM CUSTOMERS
WHERE NAME = 'Hardik';

Kết quả trả về như sau:

1
2
ID  NAME     SALARY
5   Hardik   8500.00

3. Where với hơn một điều kiện

Nếu bạn muốn truy vấn với nhiều hơn một điều kiện thì sao? Lúc này bạn phải sử dụng đến hai toán tử thông dụng nhất là OR hoặc AND.

  • AND sẽ trả về TRUE nếu cả hai vế phải và vế trái đều đúng, ngược lại một trong hai vế sai thì sẽ trả về FALSE
  • OR  sẽ trả về TRUE nếu ít nhất một trong hai vế phải và trái đúng, và trả về FALSE nếu cả hai vế đều sai.

Cú pháp
1
2
3
SELECT columns_name
FROM table_name
WHERE condition1 [AND][OR] condition2

Ví dụ: Lấy danh sách khách hàng có salary > 4500 và ID > 4.

1
2
3
SELECT ID, NAME, SALARY 
FROM CUSTOMERS
WHERE SALARY > 4500 AND ID > 4;

Kết quả như sau:

1
2
3
ID  NAME       AGE       ADDRESS            SALARY
5   Hardik     27        Bhopal             8500.00
7   Muffy      24        Indore             10000.00

Ví dụ: Lấy danh sách khách hàng có salary > 6000 hoặc age >= 25.

1
2
3
SELECT ID, NAME, SALARY 
FROM CUSTOMERS
WHERE SALARY < 6000 AND AGE >= 25;

Kết quả như sau:

1
2
3
4
5
ID  NAME       AGE       ADDRESS            SALARY
2   Khilan     25        Delhi              1500.00
4   Chaitali   25        Mumbai             6500.00
5   Hardik     27        Bhopal             8500.00
7   Muffy      24        Indore             10000.00

Trên là ví dụ về cách sử dụng lệnh WhERE trong SQL, bạn có thể áp dụng nó với hầu hết các hệ quản trị CSDL hiện nay.

=============================
Nếu bạn muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin1_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master