🧚 잠깐! Beekeeper Studio는 빠르고 현대적인 오픈 소스 MySQL GUI예요 다운로드
2024년 4월 29일 작성자: Matthew Rathbone

소개

오늘은 관계형 데이터베이스 관리에 널리 쓰이는 MySQL에서 뺄셈을 하는 방법을 알아볼게요. 이 튜토리얼에서는 기본 산술 연산부터 행이나 날짜 간 차이를 계산하는 복잡한 사례까지 MySQL의 다양한 뺄셈 시나리오를 다뤄요.

참고: 많은 SQL 개념이 여러 데이터베이스 관리 시스템에서 공통으로 쓰이지만, 이 글의 예제는 MySQL을 기준으로 작성되었어요.

계속 읽기 전에 저희가 만든 모던 MySQL 클라이언트 Beekeeper Studio를 소개할게요. 자동 완성 SQL 에디터로 이런 계산을 빠르게 직접 해볼 수 있고, MySQL용은 무료로 사용할 수 있어요. 여기서 다운로드하세요.

사전 준비

이 튜토리얼은 MySQL에 익숙하다는 전제로 진행해요. MySQL이 설치되어 있고 쿼리를 실행할 수 있는 데이터베이스에 접근할 수 있는지 확인하세요.

섹션 1: MySQL의 기본 산술 연산

숫자 빼기

MySQL은 SELECT 문에서 기본 산술 연산자를 바로 지원해요. 간단한 뺄셈은 이렇게 해요:

SELECT 15 - 7 AS difference;

예상 결과

+------------+
| difference |
+------------+
|          8 |
+------------+

이 쿼리는 15에서 7을 빼고 결과에 difference라는 이름을 붙여요.

MySQL에서 뺄셈을 하는 가장 간단한 방법이에요. ‘-‘ 연산자로 숫자를 직접 빼거나, 테이블의 서로 다른 컬럼에 저장된 숫자 값을 뺄 수 있어요.

컬럼 빼기

MySQL 테이블에서 두 컬럼을 빼는 예로, revenue와 expenses 컬럼이 있는 financials라는 테이블을 생각해 볼게요.

SELECT revenue, expenses, (revenue - expenses) AS net_income FROM financials;

예상 결과:

+---------+----------+------------+
| revenue | expenses | net_income |
+---------+----------+------------+
| 10000   | 7000     | 3000       |
| 15000   | 12000    | 3000       |
+---------+----------+------------+

이 쿼리는 revenue에서 expenses를 빼서 순이익을 계산해요.

섹션 2: 날짜 다루기

날짜 빼기

MySQL에서는 날짜를 빼서 두 날짜 사이의 일수 같은 간격을 계산할 수 있어요. 이를 위해 MySQL은 DATEDIFF() 함수를 제공해요.

SELECT DATEDIFF('2023-12-31', '2023-01-01') AS days_difference;

예상 결과:

+-----------------+
| days_difference |
+-----------------+
|             364 |
+-----------------+

DATEDIFF()는 두 날짜 사이의 일수를 반환하며, 재무나 인사 관련 계산에 특히 유용해요.

시간 간격 빼기

MySQL에서는 DATE_SUB() 함수로 날짜에서 특정 시간 간격을 뺄 수 있어요. 특정 날짜에서 30일을 빼는 방법은 다음과 같아요:

SELECT DATE_SUB('2023-12-31', INTERVAL 30 DAY) AS new_date;

예상 결과:

+------------+
| new_date   |
+------------+
| 2023-12-01 |
+------------+

섹션 3: 고급 뺄셈 기법

누적 합계 계산하기

뺄셈이 포함된 누적 합계 계산을 보여드리기 위해 id, date, amount 컬럼이 있는 transactions라는 원장 테이블이 있다고 가정해 볼게요.

SET @running_total := 0;

SELECT 
  id,
  date,
  amount,
  (@running_total := @running_total - amount) AS running_total
FROM transactions
ORDER BY date;

예상 결과:

+----+------------+--------+---------------+
| id | date       | amount | running_total |
+----+------------+--------+---------------+
|  1 | 2023-01-01 | 500    | -500          |
|  2 | 2023-01-02 | 150    | -650          |
+----+------------+--------+---------------+

이 쿼리는 세션 변수로 누적 합계를 추적하면서 각 거래 금액을 순서대로 빼요.

NULL 값이 있을 때의 MySQL 뺄셈

MySQL은 NULL을 알 수 없는 값으로 취급한다는 점을 기억하세요. 뺄셈 연산에 NULL이 포함되면 결과도 NULL이 돼요. 이 문제는 COALESCE 함수로 해결할 수 있어요.

SELECT COALESCE(column1, 0) - COALESCE(column2, 0) AS 'result' FROM table_name;

column1이나 column2에 NULL이 있으면 COALESCE 함수가 이를 ‘0’으로 처리하므로, 뺄셈 연산이 여전히 정확한 결과를 반환해요.

마무리

SQL에서는 모든 연산이 보이는 것만큼 단순하지 않고, 뺄셈도 그중 하나예요. 숫자, 컬럼, 날짜 값을 빼는지 아니면 더 고급 계산을 하는지에 따라 가장 좋은 방법이 달라져요.

이 시나리오들을 직접 연습해 보고 다른 테이블과 컬럼 이름으로도 실험해 보세요.

계속 탐구하고, 계속 배워 보세요!

더 복잡한 쿼리와 실무 활용법은 MySQL의 방대한 문서와 기능을 계속 살펴보세요.

Beekeeper Studio는 무료 & 오픈 소스 MySQL GUI예요

요즘 MySQL 작업에 Beekeeper Studio를 쓰고 있는데, 금세 제가 가장 좋아하는 데이터베이스 도구 중 하나가 됐어요. 인터페이스가 깔끔하고 현대적이며 방해 요소가 없어서, 다른 도구들처럼 복잡하지 않고 쿼리에만 집중하기 좋아요. - Surendra Singh

Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 MySQL 클라이언트예요. 그 밖에도 다양한 데이터베이스를 지원하고 Windows, Mac, Linux에서 모두 잘 작동해요.

Beekeeper의 Linux 버전은 100% 모든 기능을 갖추고 있어요. 대충 만든 부분도, 빠진 기능도 없어요.

MySQL 사용자들의 Beekeeper Studio 후기

Beekeeper Beekeeper Still a Newbie

phpMyAdmin을 수년간 쓰다가 이 프로그램을 선택했는데, 한 차원 높은 품질의 세계로 들어온 느낌이에요. 여기서는 사용자를 진심으로 배려한다는 게 느껴졌어요. 콘셉트, 구현, 실제 사용 경험까지 모든 면에서 Matthew에게 진심으로 감사해요.

Alex M

정말 멋진 도구예요. 지금까지 써본 Postgres와 MySql DB 관리용 IDE 중 가장 실용적이에요. 번거로움 없이 그냥 잘 돌아가요 :-)

MySQL 작업 방식을 개선할 준비가 되셨나요?

download 무료 다운로드