SQL - Biểu thức

Xin chào các bạn, những pháp sư SQL tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của các biểu thức SQL. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - tôi sẽ là người bạn thân thiện hướng dẫn bạn, và chúng ta sẽ cùng nhau bước qua từng bước. Cuối cùng, bạn sẽ có khả năng tạo ra các biểu thức SQL như một chuyên gia!

SQL - Expressions

Biểu thức SQL là gì?

Hãy bắt đầu từ những điều cơ bản. Một biểu thức SQL giống như một công thức hoặc một phép toán mà bạn có thể sử dụng trong các truy vấn SQL của mình. Nó là sự kết hợp của một hoặc nhiều giá trị, các toán tử và các hàm SQL mà có thể tính toán ra một giá trị. Hãy nghĩ về nó như một gia vị bí mật giúp làm cho các truy vấn cơ sở dữ liệu của bạn trở nên hấp dẫn hơn!

Ví dụ, giả sử bạn có một bảng sản phẩm, và bạn muốn áp dụng giảm giá 10% cho tất cả các giá. Bạn có thể sử dụng biểu thức như sau:

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

Trong truy vấn này, price * 0.9 là biểu thức SQL của chúng ta. Nó lấy giá và nhân nó với 0.9 (điều này tương đương với việc bớt đi 10%).

Biểu thức Boolean

Bây giờ, hãy cùng tìm hiểu về các biểu thức Boolean. Đây giống như những câu hỏi đúng/sai trong thế giới SQL. Chúng luôn kết quả trong TRUE, FALSE hoặc NULL (nghĩa là "không biết").

Các biểu thức Boolean rất hữu ích khi bạn muốn lọc dữ liệu hoặc ra quyết định trong các truy vấn của mình. Dưới đây là một số toán tử phổ biến được sử dụng trong các biểu thức Boolean:

Toán tử Mô tả
= Bằng nhau
<> Không bằng nhau
> Lớn hơn
< Nhỏ hơn
>= Lớn hơn hoặc bằng
<= Nhỏ hơn hoặc bằng
AND Logic AND
OR Logic OR
NOT Logic NOT

Hãy xem chúng trong hành động với một số ví dụ:

-- Tìm tất cả các sản phẩm có giá trên $100
SELECT * FROM products WHERE price > 100;

-- Tìm tất cả các đơn hàng trong 30 ngày qua
SELECT * FROM orders WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';

-- Tìm tất cả các khách hàng hoạt động ở New York hoặc California
SELECT * FROM customers
WHERE (state = 'NY' OR state = 'CA') AND is_active = TRUE;

Trong mỗi ví dụ này, phần sau từ khóa WHERE là một biểu thức Boolean. Nó giống như việc hỏi cơ sở dữ liệu một câu hỏi có/không cho mỗi hàng dữ liệu.

Biểu thức số học

Tiếp theo, chúng ta có các biểu thức số học. Đây giống như những bài toán toán học của SQL - chúng liên quan đến các số và các phép toán số học.

Dưới đây là các toán tử số học cơ bản mà bạn có thể sử dụng:

Toán tử Mô tả
+ Cộng
- Trừ
* Nhân
/ Chia
% Modulo (dư số)

Hãy xem một số ví dụ:

-- Tính tổng giá trị của tồn kho
SELECT product_name, quantity, price, quantity * price AS total_value
FROM inventory;

-- Tính tuổi của nhân viên
SELECT first_name, last_name, EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM birth_date) AS age
FROM employees;

-- Tính phần trăm ngân sách đã chi tiêu
SELECT project_name, budget, spent, (spent / budget) * 100 AS percent_spent
FROM projects;

Trong các ví dụ này, chúng ta đang sử dụng các biểu thức số học để thực hiện các phép toán trên dữ liệu của mình. Điều này rất hữu ích để rút ra những thông tin mới từ dữ liệu hiện có của bạn.

Biểu thức ngày

Cuối cùng, hãy nói về các biểu thức ngày. Xử lý ngày trong SQL có thể phức tạp, nhưng nó cũng rất mạnh mẽ. Các biểu thức ngày cho phép bạn manipulatie và so sánh các ngày trong các truy vấn của mình.

Dưới đây là một số hàm ngày phổ biến:

Hàm Mô tả
CURRENT_DATE Trả về ngày hiện tại
CURRENT_TIMESTAMP Trả về ngày và giờ hiện tại
DATE_ADD Thêm một khoảng thời gian xác định vào một ngày
DATE_SUB Bớt đi một khoảng thời gian xác định từ một ngày
DATEDIFF Tính toán sự khác biệt giữa hai ngày

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

-- Tìm các đơn hàng đặt hôm nay
SELECT * FROM orders WHERE order_date = CURRENT_DATE;

-- Tìm các khách hàng không đặt hàng trong 90 ngày qua
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days'
);

-- Tính toán mỗi đơn hàng được đặt cách đây bao nhiêu ngày
SELECT order_id, order_date,
DATEDIFF(CURRENT_DATE, order_date) AS days_ago
FROM orders;

Các biểu thức ngày này cho phép bạn thực hiện các thao tác phức tạp với ngày, điều này rất quan trọng cho việc phân tích dữ liệu theo thời gian.

Và đó là tất cả, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của các biểu thức SQL, từ logic Boolean đến toán số học và du lịch thời gian (ít nhất là một chút!). Nhớ rằng, thực hành là chìa khóa để thành công, vì vậy đừng ngần ngại thử nghiệm các biểu thức này trong các truy vấn của riêng bạn.

Trước khi chúng ta kết thúc, đây là một câu đùa về SQL cho bạn: Tại sao quản trị viên cơ sở dữ liệu bỏ妻子 của mình? Bà ấy có mối quan hệ một-nhiều! (Ba dum tss!)

Chúc các bạn vui vẻ trong việc truy vấn, và hy vọng rằng các liên kết của bạn luôn nhanh chóng và các truy vấn của bạn không bao giờ hết hạn!

Credits: Image by storyset