Toán tử logic trong SQLite



Bảng dưới liệt kê các toán tử logic có sẵn trong SQLite.

Toán tửMiêu tả
ANDToán tử AND cho phép sự tồn tại của nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL
BETWEENToán tử BETWEEN được sử dụng để tìm các giá trị mà là trong một tập giá trị, được cung cấp giá trị nhỏ nhất và giá trị lớn nhất
EXISTSToán tử EXISTS được sử dụng để tìm sự có mặt của một hàng trong một bảng đã cho mà thỏa mãn điều kiện cụ thể
INToán tử IN được sử dụng để so sánh một giá trị với một danh sách các giá trị hằng mà đã được xác định
NOT INLà phủ định của toán tử IN mà được sử dụng để so sánh một giá trị với một danh sách các giá trị hằng mà đã được xác định
LIKEToán tử LIKE được sử dụng để so sánh một giá trị với các giá trị tương tự bởi sử dụng các toán tử Wildcard
GLOBToán tử GLOB được sử dụng để so sánh một giá trị với các giá trị tương tự bởi sử dụng các toán tử Wildcard. Ngoài ra, GLOB là phân biệt kiểu chữ, không giống như LIKE
NOTToán tử NOT đảo ngược ý nghĩa của toán tử logic khi được sử dụng cùng với toán tử logic đó. Ví dụ: NOT EXISTS, NOT BETWEEN, NOT IN, ... Đây là một toán tử phủ định
ORToán tử OR được sử dụng để kết hợp nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL
IS NULLToán tử IS NULL được sử dụng để so sánh một giá trị với một giá trị NULL
ISToán tử IS làm việc giống như =
IS NOTToán tử IS NOT làm việc giống như !=
||Cộng hai chuỗi khác nhau để tạo chuỗi mới
UNIQUEToán tử UNIQUE tìm kiếm tính đơn nhất trong mỗi row của một bảng đã cho (đơn nhất hay duy nhất hay không có bản sao nào)

Ví dụ

Bạn theo dõi bảng COMPANY có các bản ghi 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

Dưới đây là một số ví dụ minh họa cách sử dụng của toán tử logic trong SQLite. Lệnh SELECT sau liệt kê tất cả bản ghi có AGE lớn hơn hoặc bằng 25 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

Lệnh SELECT sau liệt kê tất cả bản ghi có 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

Lệnh SELECT sau liệt kê tất cả bản ghi có AGE là NOT NULL:

sqlite>  SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
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

Lệnh SELECT sau liệt kê tất cả bản ghi có NAME bắt đầu với 'Ki', không quan tâm đằng sau nó là gì.

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0

Lệnh SELECT sau liệt kê tất cả bản ghi có NAME bắt đầu với 'Ki', không quan tâm đằng sau nó là gì.

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0

Lệnh SELECT sau liệt kê tất cả bản ghi có AGE hoặc là 25 hoặc 27:

sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

Lệnh SELECT sau liệt kê tất cả bản ghi có AGE không phải là 25 và 27:

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Lệnh SELECT sau liệt kê tất cả bản ghi có AGE là BETWEEN 25 AND 27:

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

Lệnh SELECT sau sử dụng truy vấn con trong SQL, trong đó truy vấn con này tìm tất cả bản ghi với trường AGE có SALARY > 65000 và sau đó mệnh đề WHERE được sử dụng cùng với toán tử EXISTS để liệt kê tất cả các bản ghi có AGE từ truy vấn bên ngoài tồn tại trong kết quả được trả về bởi truy vấn con:

sqlite> SELECT AGE FROM COMPANY 
        WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
AGE
----------
32
25
23
25
27
22
24

Lệnh SELECT sau sử dụng truy vấn con trong SQL, trong đó truy vấn con này tìm tất cả bản ghi với trường AGE có SALARY > 65000 và sau đó mệnh đề WHERE được sử dụng cùng với toán tử > để liệt kê tất cả bản ghi có AGE từ truy vấn bên ngoài mà lớn hơn AGE trong kết quả được trả về bởi truy vấn con:

sqlite> SELECT * FROM COMPANY 
        WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0

Các bài học SQLite phổ biến khác tại VietJack:


toan_tu_trong_sqlite.jsp