SQL - Числовые функции

Добро пожаловать, будущие маги SQL! Сегодня мы окунемся в神奇 мир числовых функций SQL. Не волнуйтесь, если вы никогда раньше не писали ни строчки кода – я буду вашим дружественным проводником в этом приключении. К концу этого урока вы будете манипулировать числами, как профи!

SQL - Numeric Functions

Что такое числовые функции SQL?

Представьте, что вы шеф-повар на кухне. У вас есть различные инструменты для нарезки, резки и измельчения ингредиентов. Числовые функции SQL resemble these kitchen tools, но для чисел. Они помогают нам выполнять вычисления и преобразования с числовыми данными в нашей базе данных.

Общие числовые функции SQL

Давайте рассмотрим некоторые из самых полезных числовых функций в SQL. Я подготовил удобную таблицу для вашего 참조:

Функция Описание Пример
ABS() Возвращает абсолютное значение ABS(-5) = 5
ROUND() Округляет число до specified number of decimal places ROUND(3.14159, 2) = 3.14
CEILING() Возвращает smallest integer greater than or equal to the given number CEILING(3.1) = 4
FLOOR() Возвращает largest integer less than or equal to the given number FLOOR(3.9) = 3
POWER() Raises a number to the specified power POWER(2, 3) = 8
SQRT() Возвращает square root of a number SQRT(16) = 4

Теперь давайте рассмотрим каждую из этих функций более подробно с практическими примерами.

Функция ABS()

Функция ABS() возвращает абсолютное значение числа. На более простом языке, она удаляет отрицательный знак, если он есть.

SELECT ABS(-10) AS absolute_value;

Этот запрос вернет:

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

Представьте, что вы calculates the difference между двумя температурами. Вам все равно, положительное это или отрицательное; вы просто хотите знать величину. Вот где ABS() comes in handy!

Функция ROUND()

ROUND() resembles that friend who always rounds up the bill at restaurants. Она округляет число до specified number of decimal places.

SELECT ROUND(3.14159, 2) AS rounded_pi;

Результат:

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

Эта функция super useful при работе с валютой или когда вам нужно упростить большие числа для отчетности.

Функции CEILING() и FLOOR()

Эти функции resemble the overachievers и underachievers мира чисел. CEILING() всегда округляет до ближайшего целого числа, а FLOOR() всегда округляет вниз.

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

Результат:

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

Мне нравится думать о CEILING() как об оптимисте (всегда смотрит вверх) и FLOOR() как о пессимисте (всегда смотрит вниз). Используйте их мудро в своих вычислениях!

Функция POWER()

POWER() resembles giving your numbers superpowers! Она elevates a number to the specified power.

SELECT POWER(2, 3) AS two_cubed;

Результат:

two_cubed
---------
8

Эта функция особенно полезна в научных вычислениях или когда вам нужно calculate compound interest (ваши будущие вы будете благодарить вас за изучение этого!).

Функция SQRT()

SQRT() resembles the square root function. Это finding the number that, when multiplied by itself, gives you the original number.

SELECT SQRT(16) AS square_root;

Результат:

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

Интересный факт: Древние вавилоняне использовали метод для вычисления квадратных корней, который удивительно相似 тому, что компьютеры делают сегодня!

Использование всех вместе

Теперь, когда мы learned about these functions individually, давайте посмотрим, как мы можем combine их в реальном сценарии. Представьте, что вы анализируете данные продаж для малого бизнеса.

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;

Этот запрос calculates the net sale amount после скидки и assigns loyalty points на основе слегка inflates net sale value. Давайте разберем это:

  1. Мы создаем таблицу и вставляем некоторые примерные данные.
  2. Мы используем ROUND() для вычисления net sale amount до двух десятичных знаков.
  3. Мы используем POWER() для slight inflation net sale (raise it to the power of 1.05).
  4. Наконец, мы используем CEILING() для округления loyalty points до ближайшего целого числа.

Результат может выглядеть так:

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

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир числовых функций SQL. Помните, что практика делает мастера. Попробуйте поиграть с этими функциями, используя свои данные или примеры. Не бойтесь犯 ошибок – это как мы учимся!

За годы преподавания я обнаружил, что студенты, которые экспериментируют и получают удовольствие от работы с SQL,真正 master it. Так что идите вперед, calculate, round, и power up ваши данные! Кто знает? Вы можете обнаружить, что работа с числами в SQL так же удовлетворительна, как решение сложной головоломки или создание красивого произведения искусства.

Продолжайте программировать, продолжайте учиться и, что самое главное, продолжайте получать удовольствие от SQL!

Credits: Image by storyset