Trong bài này chúng ta sẽ học lệnh Where trong SQL Server, đây là lệnh dùng để thêm điều kiện lọc dữ liệu, thường được dùng kết hợp trong lệnh Select và Update.
Ở bài trước bạn đã được học lệnh Select, và mình cũng có nói qua về cách thiết lập điều kiện Where. Để giúp bạn hiểu rõ hơn thì bài này mình sẽ nói một cách chi tiết và cụ thể nhất.
Mục lục
- 1. Giới thiệu lệnh Where trong SQL Server
- 2. Ví dụ thực hành Where trong SQL Server
- Tìm kiếm một điều kiện
- Tìm kiếm vơi hai điều kiện
- Sử dụng toán tử so sánh lớn hơn
- Sử dụng toán tử OR
- Điều kiện nằm trong khoảng
1. Giới thiệu lệnh Where trong SQL Server
Khi bạn sử dụng lệnh Select để lấy dữ liệu thì nó sẽ trả về tất cả dữ liệu hiện có trong bảng, điều này rõ ràng không tối ưu trong một số trường hợp.
Giả sử bạn muốn khen thưởng nhân viên A, và bạn dùng lệnh select để tìm, nhưng với hàng ngàn kết quả trả về thì với mắt thường không thể kiểm soát được
Giải pháp là ta sử dụng lệnh Where để bổ sung điều kiện lọc cho lệnh select.
Cú pháp của nó như sau:
1 2 3 4 5 6 | SELECT select_list FROM table_name WHERE search_condition; |
Phía sau mệnh đề where là những toán tử logic trả về TRUE hoặc FALSE như:
- a = b (toán tử bằng)
- a <> b (toán tử khác)
- a in b (toán tử in)
- Và nhiều toán tử khác nữa, mình sẽ nói đến ở một bài khác.
2. Ví dụ thực hành Where trong SQL Server
Chúng ta hãy làm một vài ví dụ thực tế nhé, điều này sẽ giúp bạn dễ hiểu bài hơn.
Giả sử mình có một bảng Products có cấu trúc như sau:
Bây giờ hãy làm một vài bài tập liên quan đến table này.
Tìm kiếm một điều kiện
Đề bài: Tìm kiếm tất cả sản phẩm thuộc chuyên mục có category_id = 1.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT product_id, product_name, category_id, model_year, list_price FROM production.products WHERE category_id = 1 ORDER BY list_price DESC ; |
Kết quả:
Đây là trường hợp so sánh với toán tử bằng (=) khá đơn giản. Lệnh Where sẽ lọc và chọn tất cả những sản phẩm nào có category_id = 1, những sản phẩm không hợp lệ sẽ bị loại bỏ khỏi kết quả trả về.
Tìm kiếm vơi hai điều kiện
Đề bài: Tìm tất cả sản phẩm thuộc chuyên mục có category_id = 1 và năm sản xuất là 2018.
Như vậy chúng ta có hai điều kiện lọc, vì vậy ta sử dụng toán tử AND để nối giữa hai điều kiện.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT product_id, product_name, category_id, model_year, list_price FROM production.products WHERE category_id = 1 AND model_year = 2018 ORDER BY list_price DESC ; |
Kết quả như sau:
Sử dụng toán tử so sánh lớn hơn
Đề bài: Hãy tìm sản phẩm có giá lớn hơn 300 và năm sản xuất là 2018.
Để giải bài này ta dùng toán tử so sánh lớn hơn >
.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT product_id, product_name, category_id, model_year, list_price FROM production.products WHERE list_price > 300 AND model_year = 2018 ORDER BY list_price DESC ; |
Sử dụng toán tử OR
Đề bài: Tìm sản phẩm có năm sản xuất là 2018 hoặc giá bán lớn hơn 3000.
Với bài này ta phải dùng toán tử OR để thiết lập điều kiện 1 trong 2.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT product_id, product_name, category_id, model_year, list_price FROM production.products WHERE list_price > 3000 OR model_year = 2018 ORDER BY list_price DESC ; |
Điều kiện nằm trong khoảng
Đề bài: Tìm sản phẩm có giá nằm trong khoảng 1899.00 và 1999.99.
Nằm trong khoảng thì ta dùng toán tử BETWEEN.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT product_id, product_name, category_id, model_year, list_price FROM production.products WHERE list_price BETWEEN 1899.00 AND 1999.99 ORDER BY list_price DESC ; |
Vẫn còn nhiều toán tử thường sử dụng trong WHERE nữa như: IS NULL, IS NOT NULL, ... nhưng mình sẽ dành nó để viết ở một bài khác.
Như vậy là chúng ta đã học xong cách sử dụng mệnh đề WHERE trong SQL Server. Phần này mình nghĩ không quá khó, chủ yếu là bạn hiểu cách dùng các toán tử.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* 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
=============================
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