SQLite - Operators

Xin chào, những pháp sư cơ sở dữ liệu tương lai! Hôm nay, chúng ta sẽ khám phá thế giới kỳ diệu của các toán tử SQLite. Là người giáo viên máy tính hàng xóm thân thiện của bạn, tôi ở đây để hướng dẫn bạn trong hành trình này, ngay cả khi bạn chưa bao giờ viết một dòng mã trước đây. Vậy, hãy lấy những枝 c魔法 ảo (bàn phím) của bạn và cùng nhau thực hiện những chú thuật SQLite!

SQLite - Operators

什么是 SQLite 中的运算符?

Trước khi chúng ta nhảy vào phần sâu, hãy bắt đầu từ những điều cơ bản. Trong SQLite (và lập trình nói chung), một toán tử là như một ký hiệu đặc biệt hoặc từ khóa đặc biệt mà máy tính thực hiện các thao tác hoặc so sánh cụ thể. Hãy nghĩ về các toán tử như là các động từ trong ngôn ngữ của cơ sở dữ liệu - chúng làm cho mọi thứ xảy ra!

Ví dụ, khi bạn thấy dấu "+" trong SQLite, nó không chỉ là một dấu nhỏ xinh. Nó đang nói với cơ sở dữ liệu, "Hey, thêm这些东西在一起!" Tương tự, khi bạn thấy "=", nó không chỉ là hai đường thẳng treo lơ lửng - nó đang hỏi, "Những thứ này có bằng nhau không?"

Bây giờ chúng ta đã hiểu rõ điều đó, hãy cùng khám phá các loại toán tử khác nhau trong SQLite. tin tôi đi, nó thú vị hơn bạn nghĩ!

Toán tử số học trong SQLite

Toán tử số học trong SQLite giống như các thao tác toán học cơ bản bạn đã học ở trường,但现在它们在your data. Hãy nhìn chúng trong hành động:

Toán tử Mô tả Ví dụ
+ Cộng SELECT 5 + 3; -- Trả về 8
- Trừ SELECT 10 - 4; -- Trả về 6
* Nhân SELECT 6 * 2; -- Trả về 12
/ Chia SELECT 15 / 3; -- Trả về 5
% Modulo (dư) SELECT 17 % 5; -- Trả về 2

Hãy phân tích chúng với một số ví dụ thực tế:

-- Giả sử chúng ta có một bảng叫做 'products' với các cột 'price' và 'quantity'
SELECT name, price * quantity AS total_value
FROM products;

Trong ví dụ này, chúng ta đang sử dụng toán tử nhân (*) để tính giá trị tổng cộng của mỗi sản phẩm. SQLite sẽ nhân giá cả với số lượng cho mỗi hàng, cho chúng ta biết giá trị tổng cộng.

-- Tính giá trung bình
SELECT AVG(price) AS average_price
FROM products;

-- Bây giờ hãy làm tròn đến 2 chữ số thập phân
SELECT ROUND(AVG(price), 2) AS rounded_average_price
FROM products;

Ở đây, chúng ta sử dụng toán tử chia ẩn (hàm AVG chia tổng cho số lượng), sau đó làm tròn kết quả. Đó là như yêu cầu SQLite làm bài toán toán của bạn!

Toán tử so sánh trong SQLite

Toán tử so sánh là như những người bạn so sánh của SQLite - họ luôn so sánh mọi thứ. Dưới đây là bảng của các toán tử khó tính này:

Toán tử Mô tả Ví dụ
= Bằng SELECT * FROM products WHERE price = 10;
!= hoặc <> Không bằng SELECT * FROM products WHERE category != 'Electronics';
< Nhỏ hơn SELECT * FROM products WHERE price < 50;
> Lớn hơn SELECT * FROM employees WHERE salary > 50000;
<= Nhỏ hơn hoặc bằng SELECT * FROM inventory WHERE quantity <= 5;
>= Lớn hơn hoặc bằng SELECT * FROM orders WHERE order_date >= '2023-01-01';

Hãy nhìn chúng trong hành động:

-- Tìm tất cả các sản phẩm không có sẵn
SELECT name, quantity
FROM products
WHERE quantity = 0;

-- Tìm tất cả các nhân viên không làm việc trong bộ phận IT
SELECT name, department
FROM employees
WHERE department <> 'IT';

-- Tìm tất cả các đơn đặt hàng trong tuần trước
SELECT order_id, order_date
FROM orders
WHERE order_date >= DATE('now', '-7 days');

Trong các ví dụ này, chúng ta đang sử dụng các toán tử so sánh để lọc dữ liệu. Đó là như nói với SQLite, "Tôi chỉ muốn xem phần cụ thể này, cảm ơn bạn rất nhiều!"

Toán tử logic trong SQLite

Toán tử logic là những người quyết định của SQLite. Họ giúp chúng ta kết hợp các điều kiện và tạo ra các truy vấn phức tạp hơn. Dưới đây là bạn logic của chúng ta:

Toán tử Mô tả Ví dụ
AND Đúng nếu tất cả các điều kiện là đúng SELECT * FROM products WHERE price > 100 AND category = 'Electronics';
OR Đúng nếu bất kỳ điều kiện nào cũng đúng SELECT * FROM customers WHERE country = 'USA' OR country = 'Canada';
NOT Negates a condition SELECT * FROM employees WHERE NOT department = 'Sales';

Hãy đưa chúng vào sử dụng:

-- Tìm tất cả các sản phẩm đắt đỏ
SELECT name, price, category
FROM products
WHERE price > 500 AND category = 'Electronics';

-- Tìm tất cả các khách hàng từ Bắc Mỹ
SELECT name, country
FROM customers
WHERE country = 'USA' OR country = 'Canada' OR country = 'Mexico';

-- Tìm tất cả các nhân viên không làm việc trong bộ phận Sales hoặc Marketing
SELECT name, department
FROM employees
WHERE NOT (department = 'Sales' OR department = 'Marketing');

Trong các ví dụ này, chúng ta đang kết hợp các điều kiện để có chính xác dữ liệu chúng ta muốn. Đó là như một thám tử, ghép nối các manh mối để giải quyết một vụ án!

Toán tử bit trong SQLite

Bây giờ, chúng ta đang bước vào thế giới binary magic với các toán tử bit. Các toán tử này hoạt động trên các biểu diễn nhị phân của số. Chúng không được sử dụng thường xuyên trong các truy vấn SQLite hàng ngày, nhưng chúng là công cụ mạnh mẽ cho một số thao tác.

Toán tử Mô tả Ví dụ
& AND bit SELECT 5 & 3; -- Trả về 1
| OR bit SELECT 5 | 3; -- Trả về 7
~ NOT bit SELECT ~5; -- Trả về -6
<< Shift trái SELECT 5 << 1; -- Trả về 10
>> Shift phải SELECT 5 >> 1; -- Trả về 2

Hãy phân tích một thao tác bit:

-- Sử dụng AND bit để kiểm tra một số là chẵn hay lẻ
SELECT
number,
CASE
WHEN number & 1 = 1 THEN 'Odd'
ELSE 'Even'
END AS parity
FROM (
SELECT 1 AS number
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
);

Trong ví dụ này, chúng ta đang sử dụng toán tử AND bit để kiểm tra một số là chẵn hay lẻ. Nếu một số AND 1 bằng 1, nó là lẻ; ngược lại, nó là chẵn. Đó là như dạy SQLite đếm trên ngón tay!

Và thế là bạn đã có nó, các bạn! Chúng ta đã cùng nhau hành trình qua vùng đất của các toán tử SQLite, từ vùng đất quen thuộc của số học đến vùng đất kỳ diệu của các thao tác bit. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngần ngại thử nghiệm với các toán tử này trong các truy vấn của bạn. Trước khi bạn biết, bạn sẽ sử dụng các quyền lực SQLite này như một pháp sư cơ sở dữ liệu thực thụ!

Credits: Image by storyset