Toán tử AND và OR trong SQLite

Ở bài học trước mình đã cùng tìm hiểu về toán tử trong SQLite. Trong bài này mình sẽ cùng tìm hiểu 2 toán tử đặc biệt đó là toán tử AND và toán tử OR.

Toán tử AND và toán tử OR trong SQLite được sử dụng để kết hợp nhiều điều kiện để thu hẹp phạm vi dữ liệu đã chọn trong câu lệnh SQLite. Hai toán tử này được gọi là toán tử liên hợp (conjunctive operators).

Hai toán tử này cung cấp một phương tiện để thực hiện nhiều sự so sánh với các toán tử khác nhau trong cùng một câu lệnh SQLite.

1. Toán tử AND trong SQLite.

Toán tử AND cho phép tồn tại nhiều điều kiện trong mệnh đề WHERE của một câu lệnh SQLite. Trong khi sử dụng toán tử AND, điều kiện đầy đủ sẽ được giả sử là đúng khi tất cả các điều kiện là đúng. Ví dụ: [condition1] AND [condition2] sẽ chỉ đúng khi cả hai condition1condition2 đều đúng.

1.1 Cú pháp toán tử AND với mệnh đề WHERE

Cú pháp cơ bản của toán tử AND với mệnh đề WHERE như sau:

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition1] AND [condition2]...AND [conditionN];

Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND. Đối với một hành động được thực hiện bởi câu lệnh SQLite, cho dù đó là một giao dịch (transaction) hoặc truy vấn (query), thì tất cả các điều kiện riêng lẻ được phân tách bằng toán tử AND phải là TRUE.

1.2. Ví dụ toán tử AND

Giả sử chúng ta có bảng COMPANY có các bản ghi như sau:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Câu lệnh SELECT sau đây sẽ liệt kê tất cả các bản ghi trong đó age lớn hơn hoặc bằng 25 và salary lớn hơn hoặc bằng 65000,00.

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

2. Toán tử OR trong SQLite

Toán tử OR cũng được sử dụng để kết hợp nhiều điều kiện trong mệnh đề WHERE của câu lệnh SQLite. Trong khi sử dụng toán tử OR, điều kiện hoàn chỉnh sẽ được giả sử là đúng khi có ít nhất một điều kiện bất kỳ nào là đúng. Ví dụ: [condition1] OR [condition2] sẽ đúng nếu một trong hai điều kiện condition1 hoặc condition2 là đúng.

2.1 Cú pháp toán tử OR

Cú pháp cơ bản của toán tử OR với mệnh đề WHERE như sau:

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition1] OR [condition2]...OR [conditionN]

Bạn có thể kết hợp N số điều kiện bằng toán tử OR. Đối với một hành động được thực hiện bởi câu lệnh SQLite, cho dù đó là một giao dịch (transaction) hoặc truy vấn (query), chỉ một trong số các điều kiện bất kỳ được phân tách riêng lẻ bằng toán tử OR phải là TRUE.

2.2 Ví dụ toán tử OR

Giả sử chúng ta có bảng COMPANY có các bản ghi như sau:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Câu lệnh SELECT sau đây sẽ liệt kê tất cả các bản ghi trong đó age lớn hơn hoặc bằng 25 hoặc salary lớn hơn hoặc bằng 65000,00.

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

 

-------------------#####-------------------

Loạt bài SQLite được biên dịch từ TutorialsPoint.

Khóa học nên xem

Nguồn: freetuts.net