Toán tử Logic SQL
Với các toán tử Logic SQL bạn có thể kết hợp hai giá trị Boolean để trả về giá trị false
, true
, null
AND |
Toán tử VÀ. TRUE nếu cả hai là true. Ví dụ: Price <=40 AND Price >=35 |
OR |
Toán tử HOẶC. TRUE nếu 1 trong 2 là TRUE. Ví dụ Price <=5 OR Price >=100 |
IN |
Trả về TRUE nếu giá trị số hạng có trong một danh sách biểu thức. Ví dụ Price IN (21.35,9.2,100) |
NOT |
Toán tử PHỦ ĐỊNH. TRUE nếu biểu thức là FALSE. Ví dụ (NOT Price > 8) |
Ví dụ toán tử AND
Chọn ra các bản ghi của bảng Products là các sản phẩm có giá nhỏ hơn 40 và lớn hơn 35.
SELECT * FROM Sanpham WHERE Gia <=60000 AND Gia >=50000
Kết quả:
SanphamID | TenSanpham | CungcapID | DanhmucID | Donvi | Gia |
---|---|---|---|---|---|
13 | Cá viên đông lạnh Home Food gói 500g | 6 | 8 | túi | 60000 |
24 | Lốc 6 Chai Olong Không Đường Tea+ | 10 | 1 | lốc | 50000 |
57 | Bột ngũ cốc Calsome hương Vani | 26 | 5 | túi | 51000 |
62 | Bánh Goute Hộp 8 Cái | 29 | 3 | hộp | 50000 |
68 | Bánh Yến Mạch + mè đen Fine | 8 | 3 | hộp | 50000 |
Có một file CSDL mẫu dạng SQLite, bạn có thể tải về thực hành: CSDL SQLite mẫu. Hoặc Chạy SQL Online
Hoặc ví dụ:
SELECT * FROM Khachhang WHERE Quocgia = 'Việt Nam' AND Thanhpho = 'Sơn La'
Toán tử OR
Chọn ra các bản ghi từ bảng Customers mà có City bằng Berlin hoặc Madrid
SELECT * FROM khachhang WHERE Thanhpho = 'Bình Dương' OR Thanhpho = 'Hưng Yên'
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
6 | Trần Thị Minh Châu | Trần Thị Minh Châu | sizxey Hưng Yên | Hưng Yên | 100 | Việt Nam |
19 | Nguyễn Ngọc Anh | Nguyễn Ngọc Anh | zsb Bình Dương | Bình Dương | 777 | Đức |
41 | Đinh Ngọc Khánh | Đinh Ngọc Khánh | cctzlelo Bình Dương | Bình Dương | 999 | Ý |
42 | Hồ Nguyễn Minh Khuê | Hồ Nguyễn Minh Khuê | eca Hưng Yên | Hưng Yên | 999 | Anh |
Kết hợp AND/OR
Các điều kiện Logic có thể kết hợp nhiều toán tử Logic: AND OR NOT ...
Ví dụ: Lấy các bản ghi là các khách hàng đến từ Đức, ở thành phố Berlin hoặc Stuttgart.
SELECT * FROM Khachhang WHERE Quocgia = 'Việt Nam' AND (Thanhpho = 'Cao Bằng' OR Thanhpho = 'Đồng Nai')Chạy thử
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
11 | Mạc Trung Đức | Mạc Trung Đức | ivwfcu Đồng Nai | Đồng Nai | 500 | Việt Nam |
39 | Nguyễn Hữu Ngọc Khánh | Nguyễn Hữu Ngọc Khánh | nwsh Cao Bằng | Cao Bằng | 100 | Việt Nam |
Ví dụ Toán tử IN
Ví dụ: Lấy các khách hàng có địa chỉ ở Berlin hoặc London hoặc Madrid
SELECT * FROM Khachhang WHERE Thanhpho IN ('Bình Dương', 'Bạc Liêu', 'Hải Dương')
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
7 | Tăng Phương Chi | Tăng Phương Chi | g Hải Dương | Hải Dương | 888 | Mỹ |
9 | Nguyễn Thái Dương | Nguyễn Thái Dương | mnn Bạc Liêu | Bạc Liêu | 222 | Mỹ |
19 | Nguyễn Ngọc Anh | Nguyễn Ngọc Anh | zsb Bình Dương | Bình Dương | 777 | Đức |
41 | Đinh Ngọc Khánh | Đinh Ngọc Khánh | cctzlelo Bình Dương | Bình Dương | 999 | Ý |
50 | Lê Quỳnh Nhi | Lê Quỳnh Nhi | eqauglc Hải Dương | Hải Dương | 666 | Đức |
53 | Đào Duy Thái | Đào Duy Thái | rxbhgrh Bạc Liêu | Bạc Liêu | 455 | Anh |
Toán tử NOT
Toán tử phủ định là NOT, ví dụ lấy các khách hàng không phải ở Germany, Mexico, Spain
SELECT * FROM Khachhang WHERE Quocgia NOT IN('Mỹ', 'Đức', 'Việt Nam')