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
|
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!
Để lại một câu trả lời
Để làm việc được tốt bạn hãy hiểu về mục đích, luồng hoạt động của nó, sau đó mới là tìm hiểu sử dụng công cụ hỗ trợ nó. Blog của mình sẽ hướng các bạn sinh viên và các bạn trái ngành đi từ đầu hiểu bản chất cơ bản vững chắc sau đó là mở rộng hơn