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ả |
---|---|
AND | Toá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 |
BETWEEN | Toá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 |
EXISTS | Toá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ể |
IN | Toá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 IN | Là 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 |
LIKE | Toá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 |
GLOB | Toá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 |
NOT | Toá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 |
OR | Toá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 NULL | Toán tử IS NULL được sử dụng để so sánh một giá trị với một giá trị NULL |
IS | Toán tử IS làm việc giống như = |
IS NOT | Toá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 |
UNIQUE | Toá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 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
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:
- SQLite - Xóa bảng
- SQLite - Truy vấn Insert
- SQLite - Truy vấn Select
- SQLite - Toán tử
- SQLite - Biểu thức
- SQLite - Mệnh đề Where