Toán tử AND và OR trong SQL

2022-11-02 13:51:49

Các từ khóa AND và OR là các toán tử Boolean được sử dụng để chỉ định các điều kiện ghép trong mệnh đề WHERE.

Syntax

Cú pháp sử dụng ANDOR trong điều kiện ghép như sau:

SELECT "column_name"
FROM "table_name"
WHERE "simple condition"
{ [AND|OR] "simple condition"}+;

Dấu {} + có nghĩa là biểu thức bên trong dấu ngoặc sẽ xuất hiện một hoặc nhiều lần. [AND | OR] có nghĩa là AND hoặc OR có thể được sử dụng. Ngoài ra, chúng ta có thể sử dụng dấu ngoặc đơn () để chỉ ra thứ tự của điều kiện. Điều kiện bên trong dấu ngoặc đơn được thực thi đầu tiên.

Example

Chúng tôi sử dụng bảng sau làm ví dụ của chúng tôi:

Table Store_Information

 Store_Name  Sales  Txn_Date 
 Los Angeles  1500  Jan-05-1999 
 San Dieg o 250  Jan-07-1999 
 San Francisco  300  Jan-08-1999 
 Boston  700  Jan-08-1999 

Nếu chúng tôi muốn chọn tất cả các cửa hàng có doanh số bán hàng lớn hơn 1.000 đô la hoặc tất cả các cửa hàng có doanh thu dưới 500 đô la nhưng lớn hơn 275 đô la trong Table Store_Information , chúng tôi nhập,

SELECT Store_Name
FROM Store_Information
WHERE Sales > 1000
OR (Sales < 500 AND Sales > 275);

Kết quả:

Store_Name
Los Angeles
San Francisco

Exercises

Đối với các bài tập này, giả sử chúng ta có một bảng được gọi là Người dùng với dữ liệu sau:

Người dùng bảng

 First_Name  Last_Name  Birth_Date  Gender  Join_Date 
 Sophie  Lee  Jan-05-1960  F  Apr-05-2015 
 Richard  Brown  Jan-07-1975  M  Apr-05-2015 
 Jamal  Santo  Oct-08-1983  M  Apr-09-2015 
 Casey  Healy  Sep-20-1969  M  Apr-09-2015 
 Jill  Wilkes  Nov-20-1979  F  Apr-15-2015 

1. Câu lệnh SQL nào sau đây là hợp lệ? (Có thể có nhiều hơn một câu trả lời)
a) SELECT First_Name AND Last_Name FROM Users;
b) SELECT First_Name, Last_Name FROM Users WHERE Join_Date > 'Apr-01-2015' AND Birth_Date < 'Jan-01-1980';
c) SELECT First_Name OR User_Name FROM Users;
d) SELECT * FROM Users WHERE Last_Name = 'Brown' AND Gender = 'F';

2. How many records will be returned by the following query?
SELECT * FROM Users WHERE Gender = 'M' AND Join_Date = 'Apr-09-2015';

3. Có bao nhiêu bản ghi sẽ được trả về bởi truy vấn sau?
SELECT * FROM Users WHERE Gender = 'M' OR Join_Date = 'Apr-05-2015';



Xem thêm:


Chia sẻ: