SQL - 수학 함수

안녕하세요, 미래의 SQL 마법사 여러분! 오늘 우리는 SQL 수학 함수의 마법의 세계로 접어들어 볼까요. 코드를 한 줄도 작성해 본 적이 없다면 걱정 마세요 - 이 모험을 안내해 드릴 친절한 가이드가 바로 저입니다. 이 튜토리얼의 끝을 맺을 때쯤에는 전문가처럼 숫자를 다루게 될 것입니다!

SQL - Numeric Functions

SQL 수학 함수는 무엇인가요?

가상의 요리사로서 주방에서 일하고 있다고 상상해 보세요. 다양한 도구를 사용하여 재료를 자를고, 써고, 다지는 등의 작업을 수행합니다. SQL 수학 함수는 그 주방 도구와 같은 것입니다. 그들은 데이터베이스의 수학 데이터에 대한 계산과 변환을 도와줍니다.

일반적인 SQL 수학 함수

SQL에서 가장 유용한 수학 함수 중 일부를 살펴보겠습니다. 참고용으로 편리한 표를 준비해 두었습니다:

함수 설명 예제
ABS() 절대값을 반환합니다 ABS(-5) = 5
ROUND() 지정된 소수점 자리수로 숫자를 둥글게 합니다 ROUND(3.14159, 2) = 3.14
CEILING() 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다 CEILING(3.1) = 4
FLOOR() 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환합니다 FLOOR(3.9) = 3
POWER() 숫자를 지정된幂으로 높입니다 POWER(2, 3) = 8
SQRT() 숫자의 제곱근을 반환합니다 SQRT(16) = 4

이제 이 함수들을 각각 더 자세히 살펴보겠습니다.

ABS() 함수

ABS() 함수는 숫자의 절대값을 반환합니다. 다시 말해, 음수 부호가 있다면 제거합니다.

SELECT ABS(-10) AS absolute_value;

이 쿼리는 다음과 같은 결과를 반환합니다:

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

두 온도 간의 차이를 계산할 때, 양수인지 음수인지 신경 쓰지 않고 크기만을 알고 싶다면 ABS() 함수가 유용합니다!

ROUND() 함수

ROUND() 함수는 친구가 식당에서 계산을 둥글게 할 때와 같습니다. 숫자를 지정된 소수점 자리수로 둥글게 합니다.

SELECT ROUND(3.14159, 2) AS rounded_pi;

결과:

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

이 함수는 화폐나 대량의 숫자를 보고할 때 매우 유용합니다.

CEILING()과 FLOOR() 함수

이 함수들은 숫자 세계의 과업자와 부진자 같은 존재입니다. 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() 함수는 숫자에게 초능력을 줍니다! 숫자를 지정된幂으로 높입니다.

SELECT POWER(2, 3) AS two_cubed;

결과:

two_cubed
---------
8

이 함수는 과학 계산이나 이자 계산에 매우 유용합니다.

SQRT() 함수

SQRT()는 제곱근 함수입니다. 숫자를 자신이 곱해도 원래 숫자를 나타내는 수를 찾습니다.

SELECT SQRT(16) AS square_root;

결과:

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

재미있는 사실: 고대 바빌론인들은 제곱근을 계산하는 방법을 사용했는데, 이는 오늘날 컴퓨터가 사용하는 방법과 놀라운 유사성을 가지고 있습니다!

모든 것을 하나로 모음

이제 각각의 함수를 배웠으니, 실제 사례에서 이를 어떻게 조합할 수 있는지 살펴보겠습니다. 소기업의 판매 데이터를 분석하는 상황을 상상해 보세요.

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;

이 쿼리는 할인 후 판매 금액을 계산하고, 약간 부풀린 판매 금액을 기준으로 마일리지 포인트를 할당합니다. 이를 하나씩 설명해 보겠습니다:

  1. 테이블을 생성하고 샘플 데이터를 삽입합니다.
  2. ROUND()를 사용하여 할인 후 순 판매 금액을 두 자리 소수점으로 계산합니다.
  3. POWER()를 사용하여 순 판매 금액을 약간 부풀립니다 (1.05의幂으로 높입니다).
  4. CEILING()을 사용하여 마일리지 포인트를 가장 가까운 정수로 올립니다.

결과는 다음과 같을 수 있습니다:

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을 실험하고 즐기는 학생들이 진정으로 승리하는 것을 알게 되었습니다. 그러므로 앞으로 나아가, 데이터를 계산하고, 둥글게 하고, 부풀리고 마일리지를 얻으세요! 누구도 몰라요, SQL에서 숫자를 다루는 것은 난이도 높은 퍼즐을 풀거나 아름다운 예술 작품을 만드는 것과 같이 만족스러울 수 있습니다.

계속 코딩하고, 배우고, SQL을 즐기세요!

Credits: Image by storyset