SQL - Chức năng Số học

Chào mừng các bạn future SQL wizards! Hôm nay, chúng ta sẽ khám phá thế giới kỳ diệu của các hàm số học trong SQL. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - tôi sẽ là người bạn thân thiện dẫn đường cho bạn trong cuộc phiêu lưu này. Cuối cùng của bài hướng dẫn này, bạn sẽ manipulates các con số như một chuyên gia!

SQL - Numeric Functions

What are SQL Numeric Functions? (Những gì là các hàm số học trong SQL?)

Hãy tưởng tượng bạn là một đầu bếp trong nhà bếp. Bạn có nhiều công cụ để thái,切, và xắt nhỏ nguyên liệu của mình. Các hàm số học trong SQL giống như những công cụ nhà bếp đó, nhưng cho các con số. Chúng giúp chúng ta thực hiện các phép toán và chuyển đổi trên dữ liệu số học trong cơ sở dữ liệu của mình.

Common SQL Numeric Functions (Các hàm số học phổ biến trong SQL)

Hãy cùng nhìn vào một số hàm số học hữu ích nhất trong SQL. Tôi đã chuẩn bị một bảng tham khảo cho bạn:

Hàm Mô tả Ví dụ
ABS() Trả về giá trị tuyệt đối ABS(-5) = 5
ROUND() Làm tròn một số đến số thập phân được chỉ định ROUND(3.14159, 2) = 3.14
CEILING() Trả về số nguyên nhỏ nhất lớn hơn hoặc bằng số cho trước CEILING(3.1) = 4
FLOOR() Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng số cho trước FLOOR(3.9) = 3
POWER() Lifting a number to the specified power POWER(2, 3) = 8
SQRT() Trả về căn bậc hai của một số SQRT(16) = 4

Bây giờ, hãy cùng khám phá từng hàm này chi tiết hơn với một số ví dụ thực tế.

The ABS() Function (Hàm ABS())

Hàm ABS() trả về giá trị tuyệt đối của một số. Nói đơn giản hơn, nó loại bỏ dấu âm nếu có.

SELECT ABS(-10) AS absolute_value;

Truy vấn này sẽ trả về:

absolute_value
--------------
10

Hãy tưởng tượng bạn đang tính toán sự khác biệt giữa hai nhiệt độ. Bạn không quan tâm nó là dương hay âm; bạn chỉ muốn biết độ lớn. Đó là khi ABS() phát huy tác dụng!

The ROUND() Function (Hàm ROUND())

ROUND() giống như người bạn luôn làm tròn hóa đơn tại các nhà hàng. Nó làm tròn một số đến số thập phân được chỉ định.

SELECT ROUND(3.14159, 2) AS rounded_pi;

Kết quả:

rounded_pi
----------
3.14

Hàm này rất hữu ích khi làm việc với tiền tệ hoặc khi bạn cần đơn giản hóa các số lớn cho báo cáo.

The CEILING() and FLOOR() Functions (Hàm CEILING() và FLOOR())

Các hàm này giống như những người quá thành công và không thành công trong thế giới số. CEILING() luôn làm tròn lên đến số nguyên gần nhất, trong khi FLOOR() luôn làm tròn xuống.

SELECT CEILING(3.1) AS ceiling_value, FLOOR(3.9) AS floor_value;

Kết quả:

ceiling_value | floor_value
--------------+------------
4             | 3

Tôi thích nghĩ CEILING() như một người optimist (luôn nhìn lên) và FLOOR() như một người pessimist (luôn nhìn xuống). Sử dụng chúng một cách khôn ngoan trong các phép toán của bạn!

The POWER() Function (Hàm POWER())

POWER() giống như cho các số của bạn siêu năng lực! Nó nâng một số lên một幂 được chỉ định.

SELECT POWER(2, 3) AS two_cubed;

Kết quả:

two_cubed
---------
8

Hàm này đặc biệt hữu ích trong các phép toán khoa học hoặc khi bạn cần tính lãi kép (bạn tương lai sẽ cảm ơn bạn vì đã học điều này!).

The SQRT() Function (Hàm SQRT())

SQRT() là hàm căn bậc hai. Nó giống như tìm số mà khi nhân với chính nó sẽ cho bạn số ban đầu.

SELECT SQRT(16) AS square_root;

Kết quả:

square_root
-----------
4

Đ趣事实: Người Babylon cổ đại đã sử dụng một phương pháp để tính căn bậc hai mà khá giống với cách máy tính làm ngày nay!

Putting It All Together (Kết hợp tất cả)

Bây giờ chúng ta đã học về các hàm này từng cái một, hãy cùng xem chúng ta có thể kết hợp chúng trong một tình huống thực tế như thế nào. Hãy tưởng tượng bạn đang phân tích dữ liệu bán hàng cho một doanh nghiệp nhỏ.

CREATE TABLE sales (
id INT PRIMARY KEY,
product_name VARCHAR(50),
sale_amount DECIMAL(10, 2),
discount DECIMAL(5, 2)
);

INSERT INTO sales VALUES
(1, 'Widget A', 100.00, 10.50),
(2, 'Gadget B', 75.25, 5.00),
(3, 'Doohickey C', 50.75, 2.25);

SELECT
product_name,
sale_amount,
discount,
ROUND(sale_amount - discount, 2) AS net_sale,
CEILING(POWER(net_sale, 1.05)) AS loyalty_points
FROM
sales;

Truy vấn này tính toán số tiền bán hàng sau khi giảm giá và phân bổ điểm thành viên dựa trên giá trị bán hàng bị phồng to một chút. Hãy phân tích nó:

  1. Chúng ta tạo một bảng và chèn một số dữ liệu mẫu.
  2. Chúng ta sử dụng ROUND() để tính toán số tiền bán hàng sau khi giảm giá đến hai chữ số thập phân.
  3. Chúng ta sử dụng POWER() để phồng to giá trị bán hàng một chút (nâng nó lên với幂 1.05).
  4. Cuối cùng, chúng ta sử dụng CEILING() để làm tròn điểm thành viên lên đến số nguyên gần nhất.

Kết quả có thể trông như thế này:

product_name | sale_amount | discount | net_sale | loyalty_points
-------------+-------------+----------+----------+----------------
Widget A     | 100.00      | 10.50    | 89.50    | 115
Gadget B     | 75.25       | 5.00     | 70.25    | 89
Doohickey C  | 50.75       | 2.25     | 48.50    | 60

Conclusion (Kết luận)

Chúc mừng! Bạn đã刚刚迈出进入SQL số học thế giới. Nhớ rằng, thực hành làm cho hoàn hảo. Thử chơi với các hàm này bằng dữ liệu của riêng bạn hoặc các ví dụ. Đừng害怕犯错误 - đó là cách chúng ta học!

Trong những năm dạy học của tôi, tôi đã phát hiện ra rằng sinh viên nào thử nghiệm và vui chơi với SQL là những người thực sự thành thạo nó. Vậy hãy tiến lên, tính toán, làm tròn, và nâng cấp dữ liệu của bạn! Ai biết được? Bạn có thể sẽ phát hiện ra rằng làm việc với số liệu trong SQL là thỏa mãn như giải một câu đố khó hoặc tạo ra một tác phẩm nghệ thuật đẹp.

Tiếp tục mã hóa, tiếp tục học hỏi, và quan trọng nhất, tiếp tục vui vẻ với SQL!

Credits: Image by storyset