Thứ Ba, 25 tháng 7, 2023

Mệnh đề Where trong SQL Server

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:

products png

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ả:

SQL Server WHERE simple equality test png

Đâ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:

SQL Server WHERE match two conditions png

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;

SQL Server WHERE comparison operators png

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;

SQL Server WHERE match one of two conditions png

Đ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;

SQL Server WHERE between operator png

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

ĐỌC NHIỀU

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