Giới thiệu về SQL phần 3

Tester hiểu bản chất mệnh đề WHERE để viết lệnh tối ưu hơn


 

Mệnh đề WHERE

 

Nếu bạn đang cần blog bắt đầu từ đầu với SQL hãy quay lại đọc blog Giới thiệu về SQL phần 1 , Giới thiệu về SQL phần 2 trước rồi đọc tiếp blog này cho có logic bạn nhaaaa

Link bài tập có đáp án mình đã làm đề trên mạng và tự giải đáp nè: Bài Tập SQL Có Lời Giải

 

Sau SELECT, FROM thì chúng ta cần quan tâm đặc biệt đến mệnh đề WHERE

 

Mệnh đề WHERE là gì?

WHERE xuất hiện để xác định/lọc dữ liệu theo điều kiện/tiêu chí mà yêu cầu người dùng mong muốn một cách sát nhất. ĐiỀu kiện được lấy ra từ một hoặc nhiều bảng. 

Trả về giá trị khi điều kiện đúng có trong database - ứng với các cột có trong SELECT

Không trả về bất kỳ kết quả nào khi điều kiện where bị sai

Ngoài làm điều kiện cho SELECT, còn được sử dụng trong câu lệnh UPDATE, DELETE,..

 

Ví dụ đơn giản:

SELECT * FROM products WHERE name = “den chum”

Hoạt động của SQL với câu lệnh trên: Từ bảng products lọc dữ liệu theo điều kiện tên là den chum, hiển thị kết quả với tất cả các cột

 

1. Toán tử dùng trong mệnh đề WHERE:

Có rất nhiều điều kiện giúp chúng ta lọc được dễ dàng theo đúng tiêu chí mong muốn, hiện tại chúng ta quan tâm đến là các toán tử logic

 

Toán tử

Mô tả

=

Bằng

<>

Không bằng

!=

Khác

>=

Lớn hơn hoặc bằng

>

Lớn hơn

<=

Bé hơn hoặc bằng

<

Bé hơn

!>

Không lớn hơn

!<

Không bé hơn

IN()

Tìm giá trị trong danh sách có sẵn

NOT

Không đáp ứng điều kiện

BETWEEN AND

Tìm giá trị trong khoảng

IS NULL

Giá trị NULL

IS NOT NULL

Giá trị không NULL

LIKE

Tìm chuỗi ký tự, thường đi với dấu % và _

EXISTS

Điều kiện được đáp ứng nếu truy vấn nội bộ (subquery) trả lại ít nhất 1 hàng

 

 

Vidu để hiểu hơn về các toán tử

1. Toán tử >: lớn hơn

Toán tử  > được sử dụng với các cột dữ liệu là trường number

Đề bài: Lấy những sản phẩm có giá > 300000 VNĐ trong bản sản phẩm ( ứng với trên website dentrangtridaithanh.com – khi mua hàng, người mua muốn tìm kiếm theo khoảng giá mà họ có thể mua được)

SELECT * FROM products WHERE price > 300000;

2. Toán tử AND

Sử dụng ở giữa 2 điều kiện – mang ý nghĩa là cả 2 điều kiện đó phải đúng mới được hiển thị, dù điều kiện bên trái hay bên phải đúng – bên còn lại sai thì kết quả cũng không trả ra

Đề bài: Lấy sản phẩm có điều kiện price > 300000 và sản phẩm đó có tên là đèn chùm

( ứng với trên website dentrangtridaithanh.com – khi mua hàng, người mua tích chọn khoảng giá mà họ có thể mua được và tích vào mục đèn chùm=> kết quả phải trả ra là sản phẩm thuộc đèn chùm có giá > 300000, không thể ra sản phẩm > 300000 mà có cả các loại đèn khác được)

 

SELECT * FROM products WHERE price > 300000 AND name = “đèn chùm”

3. Toán tử OR

Sử dụng khi chỉ cần 1 điều kiện bên trái hoặc bên phải đúng có trong DB có thể hiển thị kết quả 

Đề bài: Lấy những sản phẩm có giá từ 500.000 đến 1.000.000 mà không cần biết sản phẩm đó là gì

( ứng với trên website dentrangtridaithanh.com – khi mua hàng, người mua tích chọn khoảng giá mà họ có thể mua được, không tích chọn tên mục sản phẩm nào ------- ngược lại chỉ cần tích chọn tên danh mục sản phẩm mà không cần tích chọn giá => kết quả hiển thị tất cả sản phẩm của tất cả các loại sản phẩm, chỉ cần có giá từ 500.000 đến 1.000.000/ hiển thị các sản phẩm thuộc đèn chùm với các khoảng giá có trong DB)

SELECT * FROM products WHERE price BETWEEN 500000 AND 1000000 OR name = “đèn chùm”

4. Toán tử LIKE

Toán tử này thường sử dụng với ô box tìm kiếm với trường dữ liệu là varchar hoặc number

Đề bài: tìm tên sản phẩm gần đúng với từ “den chum”/”đèn chùm” hoặc giá “50”

(ứng với trên website dentrangtridaithanh.com – khi nhập text tìm kiếm “den chum” hoặc số “50” => kết quả ra các tên như: đèn chùm pha lê 4 tầng, đèn chùm pha lê khung tròn,.. hoặc sản phẩm có giá 5.000.000, 505.000,…

 

SELECT * FROM products WHERE name LIKE “den chum%”

SELECT * FROM products WHERE price LIKE “50%”

- Có 2 ký tự đại diện cho LIKE  là: phần trăm (%) và dấu gạch dưới (_)

- Lưu ý với Tester:

Lệnh SELECT * FROM a WHERE điều kiện nào đó

Câu lệnh này Tester sẽ sử dụng khá là nhiều với case test Data của trường BoxSearch và nhiều hợp khác như lọc theo tiêu chí cần tìm kiếm( như ví dụ ở trên),…

Khi đề bài(case testdata) của tester dựa vào tài liệu hoặc tiêu chí của chính tester đưa ra càng sát thì điều kiện càng rõ ràng -> câu lệnh SQL càng chi tiết -> dữ liệu trả ra càng chính xác

Tester càng hiểu rõ ý nghĩa từng thành phần của các loại điều kiện trên sẽ càng rõ ràng hơn trong việc viết lệnh. Các bạn nên hiểu từ lệnh ngắn đến các lệnh lồng lệnh tiếp theo nhé.

 

Nếu có thắc mắc gì hãy để lại cmt mình giải đáp. Nếu bạn là người mới bắt đầu với nghề Tester ( sinh viên, người trái ngành) hay liên hệ mình để được coaching 1-1 nha, email mình: donghanhcungtester@gmail.com, SQL có Database thật của website: https://dentrangtridaithanh.com/ thực hành bài tập và xem demo với dư liệu của web này

Hoặc mời mình 1 cốc trà sữa nếu bài viết hay giúp ích cho bạn nhaaaa!

Cảm ơn các bạn đã ghé qua Blog của mình!




 

Share this:
/storage/treconyl
treconyl
Hello, I’m a content writer who is fascinated by content fashion, celebrity and lifestyle. She helps clients bring the right content to the right people.
Tool hữu ích đồng hành cùng Tester
Bài trước
Tool hữu ích đồng hành cùng Tester
Tester phân biệt chức năng và tính năng
Bài tiếp theo
Tester phân biệt chức năng và tính năng

Để lại một câu trả lời

Bạn cần đăng nhập để tham gia bình luận về bài viết này! Đăng nhập ngay