Điều khoản WHERE là gì?


Chúng tôi đã xem xét cách truy vấn dữ liệu từ cơ sở dữ liệu bằng cách sử dụng câu lệnh SELECT trong hướng dẫn trước. Câu lệnh SELECT trả về tất cả các kết quả từ bảng cơ sở dữ liệu được truy vấn.
Tuy nhiên, đó là những lúc chúng tôi muốn hạn chế kết quả truy vấn trong một điều kiện cụ thể. Mệnh đề WHERE của SQL có ích trong các tình huống như vậy. 

Mệnh đề của WHERE với các ví dụ - VÀ, HOẶC, VÀO, KHÔNG VÀO

Mệnh đề WHERE Cú pháp

Cú pháp cơ bản cho mệnh đề WHERE khi được sử dụng trong câu lệnh SELECT như sau.
SELECT * FROM tableName WHERE condition;
ĐÂY
  • "SELECT * FROM tableName" là câu lệnh CHỌN tiêu chuẩn
  • "WHERE" là từ khóa giới hạn tập kết quả truy vấn đã chọn của chúng tôi và "condition" là bộ lọc được áp dụng cho kết quả. Bộ lọc có thể là một phạm vi, giá trị đơn hoặc truy vấn phụ.
Bây giờ chúng ta hãy nhìn vào một ví dụ thực tế .
Giả sử chúng tôi muốn nhận thông tin cá nhân của thành viên từ bảng thành viên với số thành viên số 1, chúng tôi sẽ sử dụng tập lệnh sau để đạt được điều đó.
SELECT * FROM `members` WHERE `membership_number` = 1;
Thực thi đoạn script trên trong bàn làm việc của MySQL trên "myflixdb" sẽ tạo ra các kết quả sau.

Mệnh đề WHERE kết hợp với - Toán tử AND logic

Mệnh đề WHERE khi được sử dụng cùng với toán tử logic AND, chỉ được thực thi nếu TẤT CẢ các tiêu chí lọc được chỉ định được đáp ứng. 
Bây giờ chúng ta hãy xem một ví dụ thực tế - Giả sử chúng ta muốn có một danh sách tất cả các bộ phim trong thể loại 2 được phát hành năm 2008, chúng ta sẽ sử dụng kịch bản hiển thị dưới đây để đạt được điều đó.

SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau


movie_idtitledirectoryear_releasedcategory_id
2Forgetting Sarah MarshalNicholas Stoller20082

Mệnh đề WHERE kết hợp với - OR Toán tử logic

Mệnh đề WHERE khi được sử dụng cùng với toán tử OR, chỉ được thực thi nếu bất kỳ hoặc toàn bộ tiêu chí bộ lọc được chỉ định được đáp ứng. 
Kịch bản sau đây có được tất cả các phim ở thể loại 1 hoặc loại 2

SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau.

movie_idtitledirectoryear_releasedcategory_id
1Pirates of the Caribean 4Rob Marshall20111
2Forgetting Sarah MarshalNicholas Stoller20082

Mệnh đề WHERE kết hợp với - IN Keyword

Mệnh đề WHERE khi được sử dụng cùng với từ khóa IN chỉ ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa IN. IN giúp giảm số mệnh đề HOẶC bạn có thể phải sử dụng 
Truy vấn sau đây cung cấp các hàng trong đó Member_number là 1, 2 hoặc 3

SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau


membership_numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontct_numberemail
1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm
2Janet Smith JonesFemale23-06-1980Melrose 123NULLNULLjj@fstreet.com
3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com

Mệnh đề WHERE kết hợp với - NOT IN trong từ khóa

Mệnh đề WHERE khi được sử dụng cùng với từ khóa NOT IN KHÔNG ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa NOT IN.
Truy vấn sau đây cung cấp các hàng trong đó Member_number KHÔNG phải là 1, 2 hoặc 3

SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau


membership_numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontct_numberemail
4Gloria WilliamsFemale14-02-19842nd Street 23NULLNULLNULL

Mệnh đề WHERE kết hợp với - HOẠT ĐỘNG SO SÁNH

Có thể sử dụng các toán tử so sánh nhỏ hơn (), bằng (=), không bằng () với mệnh đề Where

= Bằng với

Kịch bản sau đây nhận được tất cả các thành viên nữ từ bảng thành viên bằng cách sử dụng toán tử so sánh.

SELECT * FROM `members` WHERE `gender` = 'Female';
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau.


membership_numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontct_numberemail
1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm
2Janet Smith JonesFemale23-06-1980Melrose 123NULLNULLjj@fstreet.com
4Gloria WilliamsFemale14-02-19842nd Street 23NULLNULLNULL

> Lớn hơn

Tập lệnh sau nhận được tất cả các khoản thanh toán lớn hơn 2.000 từ bảng thanh toán.
SELECT * FROM `payments` WHERE `amount_paid` > 2000;
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau.

<> Không bằng 

Kịch bản sau đây nhận được tất cả các phim có id thể loại không phải là 1.

SELECT * FROM `movies` WHERE `category_id`<> 1;
Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với "myflixdb" tạo ra các kết quả sau.

movie_idtitledirectoryear_releasedcategory_id
2Forgetting Sarah MarshalNicholas Stoller20082
5Daddy's Little GirlsNULL20078
6Angels and DemonsNULL20076
7Davinci CodeNULL20076
9Honey moonersJohn Schultz20058

Tóm lược

  • Mệnh đề WHERE của SQL được sử dụng để hạn chế số lượng hàng bị ảnh hưởng bởi truy vấn CHỌN, CẬP NHẬT hoặc XÓA.
  • Mệnh đề WHERE có thể được sử dụng cùng với các toán tử logic như AND và OR, các toán tử so sánh như, = v.v.
  • Khi được sử dụng với toán tử logic AND, tất cả các tiêu chí phải được đáp ứng.
  • Khi được sử dụng với toán tử logic OR, bất kỳ tiêu chí nào cũng phải được đáp ứng.
  • Từ khóa IN được sử dụng để chọn các hàng khớp với danh sách các giá trị.

Teaser não
Giả sử rằng chúng tôi muốn có một danh sách các phim đã thuê mà chưa được trả lại đúng hạn vào ngày 25/06/2012. Chúng ta có thể sử dụng mệnh đề WHERE cùng với toán tử so sánh và toán tử logic logic để đạt được điều đó.


SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Thực thi đoạn script trên trong bàn làm việc của MySQL cho kết quả như sau.

reference_numbertransaction_datereturn_datemembership_numbermovie_idmovie_returned
1421-06-201224-06-2012220

Post a Comment

Mới hơn Cũ hơn