Toán tử SQL
Toán tử SQL
Giới thiệu
Trong chương này, bạn sẽ tìm hiểu chi tiết về các toán tử SQL bắt đầu với các kiểu Toán tử SQL, cách sử dụng chúng và các ví dụ trong SQL.
Toán tử SQL
- Toán tử số học
- Toán tử gán
- Toán tử Bitwise
- Toán tử so sánh
- Toán tử logic
- Toán tử phân giải phạm vi
- Toán tử nối chuỗi
- Toán tử đơn nguyên
- Đặt toán tử
Toán tử số học SQL
Operator | Meaning | Example |
+ | Addition | 15 + 2 = 17 |
– | Subtraction | 15 – 2 = 13 |
* | Multiplication | 15 * 2 = 30 |
/ | Division | 15 / 2 = 7 |
% | Modulo | 15 % 2 = 1 (Reminder) |
![]()

![]()

![]()

Toán tử gán SQL
Câu lệnh với toán tử gán đơn giản | Tuyên bố với toán tử chuyển nhượng tốc ký |
a = a + b | a+=b |
a = a – b | a-=b |
a = a * b | a*=b |
a = a / b | a/=b |
a = a % b | a%=b |
![]()


Toán tử SQL Bitwise
Nhà điều hành | Nghĩa |
& (Bitwise AND) | Thực hiện thao tác AND theo bit |
| (Bitwise HOẶC) | Thực hiện phép toán OR theo bit |
^ (Bitwise XOR) | Thực hiện hoạt động bitwise Exclusive-OR |
~ (Bitwise KHÔNG) | Thực hiện bitwise Không hoạt động |
Bitwise AND (&)
Ví dụ 3.1
Bitwise OR ( | )
Ví dụ 3.2
Bitwise XOR ( ^ )
Ví dụ 3.3
Bitwise Not ( ~ )
Ví dụ 3.4

Ví dụ 3.5



Toán tử so sánh SQL
Nhà điều hành | Nghĩa |
= | Tương đương với |
< | Ít hơn |
> | Lớn hơn |
<= | Nhỏ hơn bằng |
>= | Lớn hơn bằng |
<> | không bằng |
!= | Không bằng (Không phải tiêu chuẩn ISO) |
!< | Không ít hơn (Không phải tiêu chuẩn ISO) |
!> | Không lớn hơn (Không phải tiêu chuẩn ISO) |
Ví dụ 4.1

Đối với Bằng (=)
![]()

Ít hơn (<)
![]()

Lớn hơn (>)

Nhỏ hơn hoặc bằng (<=)

Lớn hơn bằng (>=)

Không bằng (!=)

Không bằng (<>)
Không nhỏ hơn (!<)
Trong trường hợp val1 sẽ không nhỏ hơn val2, những hàng đó sẽ được chọn.

Không lớn hơn (!>)
Trong trường hợp val1 sẽ không lớn hơn so với val2, những hàng đó sẽ được chọn.

Toán tử logic SQL
Danh sách các toán tử logic của SQL được liệt kê trong bảng dưới đây.
Nhà điều hành | Sự miêu tả |
Tất cả | Kiểm tra tất cả các bộ so sánh. |
VÀ | Kiểm tra xem hai giá trị có đúng không. |
KHÔNG TÍ NÀO | Kiểm tra bộ so sánh của bất kỳ ai. |
GIỮA | Kiểm tra giữa các phạm vi. |
TỒN TẠI | Kiểm tra xem truy vấn phụ có hàng hay không. |
TRONG | Kiểm tra một danh sách các biểu thức. |
GIỐNG | Phù hợp với các mẫu. |
KHÔNG | Đảo ngược giá trị của một giá trị Boolean. |
HOẶC | Kiểm tra giữa hai giá trị và bất kỳ giá trị nào cũng phải đúng. |
MỘT SỐ | Kiểm tra xem một số bộ so sánh có đúng hay không |
ALL
Ví dụ 5.1
Giả sử bạn có hai bảng #tb1, #tb2 và bạn đã chèn Tên và tuổi vào cả hai bảng như,
![]()
Cả hai bảng sẽ có dạng như sau:
#tb1

#tb2

![]()
Vì vậy, đầu ra của truy vấn trước đó sẽ là,

![]()
Sau khi chèn hàng #tb2 sẽ trở thành,

ANY
Ví dụ 5.2
Sau đó, bạn sẽ nhận được đầu ra là:

Bởi vì toán tử ANY so sánh một tập hợp các giá trị không phải cho tất cả.
Ghi chú
ALL hoạt động giống như AND, vì vậy nếu tất cả các phép so sánh là đúng thì trả về true, ngược lại nó trả về false, ANY hoạt động giống như OR nên nếu bất kỳ phép so sánh nào là true thì nó trả về true.
SOME
AND
Ví dụ 5.3
Giả sử chúng ta có cùng một bảng mà chúng ta đã có trong Ví dụ 5.1. Bây giờ để xem cách sử dụng toán tử AND, hãy xem truy vấn sau đây,

Ví dụ 5.4
Giả sử chúng ta có cùng một bảng mà chúng ta đã có trong Ví dụ 5.1. Bây giờ để xem cách sử dụng toán tử OR, hãy xem truy vấn sau:

Ví dụ 5.5
Giả sử chúng ta có cùng một bảng mà chúng ta đã có trong Ví dụ 5.1. Như tôi vừa nói, toán tử NOT đảo ngược đầu ra nên tôi đang sử dụng ví dụ về toán tử AND ở trên, Ví dụ 5.3, nhưng với toán tử NOT.
![]()

Between
Ví dụ 5.6
Lấy cùng bảng #tb2 của Ví dụ 5.1. Để tìm hiểu cách sử dụng Toán tử giữa, hãy thực hiện truy vấn sau.
![]()
Đầu ra của truy vấn trước đó là:


Exists
Ví dụ 5.7
Giả sử chúng ta có cùng một bảng mà chúng ta đã có trong Ví dụ 5.1. Bây giờ hãy thực hiện truy vấn sau,
Bằng cách sử dụng mã ở trên, đầu ra sẽ là,

IN
Ví dụ 5.8
Giả sử chúng ta có cùng một bảng mà chúng ta đã có trong Ví dụ 5.1, và đối với toán tử IN, chúng ta có thể viết truy vấn như thế này,
![]()

LIKE
Ví dụ 5.9
Giả sử chúng ta có một bảng #TempTable (bảng tạm thời) trong đó bạn có 2 cột có tên là First_Name và Last_Name với một số giá trị được chèn bên trong bảng như sau,
![]()


Toán tử phân giải phạm vi SQL
Ví dụ 6.1

Toán tử nối chuỗi SQL
Nhà điều hành | Sự miêu tả |
+ | Nối chuỗi |
+= | Nối chuỗi |
% | (Các) ký tự đại diện khớp |
[] | (Các) ký tự đại diện khớp |
[^] | (Các) ký tự đại diện, không khớp |
_ | Khớp với chỉ một ký tự |
+ Toán tử nối chuỗi
Ví dụ 7.1
Giả sử chúng ta có một bảng #TempTable (bảng tạm thời) trong đó bạn có 2 cột có tên là First_Name và Last_Name và có một số giá trị được chèn bên trong bảng như sau,


Ví dụ 7.2
Giả sử tôi có cùng một bảng mà tôi đã có trong Ví dụ 7.1 trước đó. Bây giờ tôi sử dụng truy vấn sau để nối chuỗi với +=.

Toán tử so khớp % ký tự đại diện
%Charecter(s) or Charecter(s)% or %Charecter(s)%
Ví dụ 7.3
Giả sử tôi có cùng một bảng mà tôi đã có trong Ví dụ 7.1 và tôi đang tìm kiếm như sau,

[ ] Toán tử so khớp Ký tự đại diện
Ví dụ 7.4
Để hiểu toán tử này, hãy tạo một bảng #TempTable (bảng tạm thời) với 3 cột First_Name, LastName và Mobile_Number rồi chèn dữ liệu vào đó như sau,
Vì vậy, #TempTable sẽ trông giống như,


[^ ] Toán tử ký tự đại diện không khớp
Ví dụ 7.5
Hãy sử dụng cùng một bảng mà chúng ta đã có trong Ví dụ 7.4 và thực hiện truy vấn sau.
![]()

Ví dụ
Hãy sử dụng cùng một bảng mà chúng ta đã có trong Ví dụ 7.4 và thực hiện truy vấn sau.

Toán tử một ngôi trong SQL
Nhà điều hành | Sự miêu tả |
+ (Một cộng) | Giá trị số dương |
– (Dấu trừ một ngôi) | Giá trị số âm |
~ (Bitwise KHÔNG) | Cung cấp phần bù của một số |
Toán tử tập hợp SQL
Nhà điều hành | Sự miêu tả |
NGOẠI TRỪ | Trả về bất kỳ giá trị riêng biệt nào từ truy vấn bên trái không thuộc về truy vấn bên phải. |
GIAO NHAU | Trả về các giá trị riêng biệt phổ biến trong cả hai truy vấn. |
LIÊN HIỆP | Kết hợp kết quả của hai hoặc nhiều truy vấn vào một tập kết quả duy nhất thuộc về tất cả các truy vấn trong liên kết. |
EXCEPT
Ví dụ 9.1
Giả sử có hai bảng Employee1 và Employee2 như sau,
![]()

INTERSECT
Ví dụ 9.2
Trong ví dụ trên nếu chúng ta sử dụng INTERSECT thay vì EXCEPT thì đầu ra sẽ là,
Đầu ra

Ghi chú
UNION
Ví dụ 9.3

Quy tắc cho toán tử SET
- Số cột phải bằng nhau trong cả hai truy vấn.
- Thứ tự của các cột phải giống nhau trong tất cả các truy vấn.
- Kiểu dữ liệu phải tương thích.