Các toán tử trong SQLite
Trong bài này chúng ta sẽ tìm hiểu các toán tử thường gặp trong SQLite.
1. Toán tử trong SQLite là gì?
Toán tử là một từ dành riêng hoặc một ký tự được sử dụng chủ yếu trong mệnh đề WHERE
của câu lệnh SQLite
để thực hiện các thao tác, chẳng hạn như so sánh và các phép toán số học.
Các toán tử được sử dụng để xác định các điều kiện trong một câu lệnh SQLite và để phục vụ như các liên từ cho nhiều điều kiện trong một câu lệnh.
- Toán tử số học
- Toán tử so sánh
- Toán tử logic
- Toán tử bitwise
2. Toán tử số học trong SQLite.
Giả sử biến a giữ giá trị là 10 và biến b giữ giá trị là 20, các toán tử số học trong SQLite
sẽ được sử dụng như sau
Bài viết này được đăng tại [free tuts .net]
Toán tử | Mô tả | Ví dụ |
+ | Phép cộng | a + b = 30 |
- | Phép trừ | a - b = -10 |
* | Phép nhân | c * b = 200 |
/ | Phép chia | b / a = 2 |
% | Phép chia lấy phần dư | b % a = 0 |
3. Toán tử so sánh trong SQLite
Giả sử biến a giữ giá trị là 10 và biến b giữ giá trị là 20, các toán tử so sánh trong SQLite
sẽ được sử dụng như sau:
Toán tử | Mô tả | Ví dụ |
== | Kiểm tra xem các giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành đúng. | (a == b) không đúng. |
= | Kiểm tra xem các giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành đúng. | (a = b) không đúng. |
!= | Kiểm tra xem các giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau, thì điều kiện sẽ trở thành đúng. | (a != b) là đúng. |
<> | Kiểm tra xem các giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau, thì điều kiện sẽ trở thành đúng. | (a <> b) là đúng. |
> | Kiểm tra xem các giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành đúng. | (a > b) không đúng |
< | Kiểm tra nếu các giá trị của toán hạng bên trái nhỏ hơn giá trị của toán hạng bên phải, nếu có thì điều kiện trở thành đúng. | (a < b) là đúng. |
>= | Kiểm tra xem giá trị của toán hạng bên trái lớn hơn hoặc bằng giá trị của toán hạng bên phải, nếu có thì điều kiện trở thành đúng. | (a >= b) không đúng. |
<= | Kiểm tra xem giá trị của toán hạng bên trái nhỏ hơn hoặc bằng giá trị của toán hạng bên phải, nếu có thì điều kiện trở thành đúng. | (a <= b) là đúng. |
!< | Kiểm tra xem giá trị của toán hạng bên trái không nhỏ hơn giá trị của toán hạng bên phải, nếu có thì điều kiện trở thành đúng. | (a !< b) là sai. |
!> | Kiểm tra xem giá trị của toán hạng bên trái không lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành đúng. | (a !> b) là đúng. |
4. Toán tử logic trong SQLite
Dưới đây là danh sách tất cả các toán tử logic có sẵn trong SQLite
.
Toán tử | Mô tả |
AND | Toán tử AND cho phép tồn tại nhiều điều kiện trong mệnh đề WHERE của câu lệnh SQL. |
BETWEEN | Toán tử BETWEEN được sử dụng để tìm kiếm các giá trị nằm trong một tập hợp các 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 kiếm sự có mặt của một hàng trong một bảng đã cho thỏa mãn điều kiện nhất định. |
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 đã được xác định. |
NOT IN | 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ằng các toán tử ký tự đại diện (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ằng các toán tử ký tự đại diện (wildcard). Ngoài ra, GLOB là phân biệt hoa thường, không giống như LIKE. |
NOT | Toán tử NOT đảo ngược ý nghĩa của toán tử logic được sử dụng. Ví dụ. NOT EXISTS, NOT BETWEEN, NOT IN, vv Đây là 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 câu lệnh SQL. |
IS NULL | Toán tử NULL được sử dụng để so sánh một giá trị với giá trị NULL. |
IS | Toán tử IS hoạt động giống như toán tử = |
IS NOT | Toán tử IS NOT hoạt động giống như toán tử != |
|| | Thêm hai chuỗi khác nhau và tạo một chuỗi mới. |
UNIQUE | Toán tử UNIQUE tìm kiếm mọi hàng của một bảng được chỉ định để tìm tính duy nhất (không trùng lặp). |
5. Toán tử Bitwise trong SQLite
Toán tử bitwise
hoạt động trên bit và thực hiện thao tác từng bit. Sau đây là bảng giá trị chân lý cho &
và |
.
p | q | p & q | p | q |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 |
Giả sử nếu A = 60; và B = 13, sau đó ở định dạng nhị phân, chúng sẽ như sau:
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 ~A = 1100 0011
Các toán tử Bitwise
được hỗ trợ bởi ngôn ngữ SQLite
được liệt kê trong bảng sau. Giả sử biến A giữ giá trị là 60 và biến B giữ giá trị là 13. Có ví dụ sau:
sqlite> .mode line sqlite> select 60 | 13; 60 | 13 = 61 sqlite> select 60 & 13; 60 & 13 = 12 sqlite> select 60 ^ 13; 10 * 20 = 200 sqlite> select (~60); (~60) = -61 sqlite> select (60 << 2); (60 << 2) = 240 sqlite> select (60 >> 2); (60 >> 2) = 15
Toán tử | Mô tả | Ví dụ |
& | Toán tử nhị phân AND sao chép một bit vào kết quả, nếu nó tồn tại trong cả hai toán hạng. | (A & B) = 0000 1100 = 12 |
| | Toán tử nhị phân OR sao chép một bit, nếu nó tồn tại trong một toán hạng. | (A | B) = 0011 1101 = 61 |
~ | Toán tử đảo bit là toán tử một ngôi. Đảo bít 1 thành 0 và bit 0 thành 1. | (~ A) = 1100 0011 = -61 |
>> | Toán tử dịch bit trái. Giá trị toán hạng bên trái được di chuyển sang trái theo số bit được chỉ định bởi toán hạng bên phải. | A << 2 = 1111 0000 = 240 |
<< | Toán tử dịch bit phải. Giá trị toán hạng bên trái được di chuyển sang phải theo số bit được chỉ định bởi toán hạng bên phải. | A >> 2 = 0000 1111 = 15 |