연산자
1. 연산자 종류
SQL의 연산자는 크게 다섯 가지로 분류된다.
| 비교 연산자 | =, >, <, >=, <=, <> | 두 값의 크기 또는 동일 여부 비교 |
| 논리 연산자 | AND, OR, NOT | 조건식을 결합하거나 반전 |
| 특수 연산자 | BETWEEN, IN, LIKE, IS NULL | 범위, 집합, 패턴, NULL 여부 판별 |
| 산술 연산자 | +, -, *, / | 수치형 연산 수행 |
| 집합 연산자 | UNION, UNION ALL | SELECT 결과를 결합 (중복 여부 선택 가능) |
예시
- WHERE PRICE BETWEEN 10000 AND 20000
- WHERE NAME LIKE '%deluxe%'
- WHERE HOTEL IS NULL
- SELECT * FROM A UNION SELECT * FROM B
2. 실무에서 자주 사용하는 연산자
- 기간 필터링:
BETWEEN 또는 NOT BETWEEN을 활용해 특정 기간의 데이터를 조회
WHERE MONTH(BIRTH_DATE) BETWEEN 1 AND 3
- 비회원 조회:
LEFT JOIN + IS NULL 조건으로 구매 이력이 없는 회원 식별 - 패턴 검색:
LIKE '%seoul%' → seoul을 포함한 호텔명 검색 - 산술 연산:
QTY * PRICE → 매출액 계산
3. 연산자를 활용한 데이터 분석
실무 예제로, 특정 조건에 맞는 회원의 구매 패턴을 분석하고 캐시 지급 금액을 산출하는 쿼리를 작성했다
.
- 조건 요약:
- 2024년 주문 데이터
- 구매월 = 탄생월, 구매월 ≠ 가입월
- 호텔별 구매금액의 10%를 캐시로 지급
- 핵심 SQL 구문
SELECT HOTEL,
SUM(QTY * PRICE) AS SALES_AMT_SUM,
SUM(QTY * PRICE) / 10 AS SALES_AMT_SUM_DISCOUNT
FROM SALE AS A
INNER JOIN CUSTOMER AS B ON A.MEM_NO = B.MEM_NO
...
WHERE YEAR(ORDER_DATE) = 2024
AND MONTH(ORDER_DATE) = MONTH(BIRTH_DATE)
AND MONTH(ORDER_DATE) <> MONTH(JOIN_DATE)
GROUP BY HOTEL;
4. 코딩 테스트 예제
마지막 실습에서는 연산자 조합을 활용해 실무형 코드를 작성했다
.
주요 포인트는 다음과 같다.
- JOIN + 조건 필터링:
호텔, 서비스, 주문 정보를 조합하여 매출액 및 평균 주문량 계산 - 조건 제어:
- SERVICE_NAME NOT LIKE '%hill%'
- PRICE > 500000
- 집계 및 HAVING 사용:
HAVING COUNT(ORDER_DETAIL_NO) >= 100
ORDER BY COUNT(ORDER_DETAIL_NO) DESC;
- 실무형 분석 목표:
- 호텔·서비스별 매출 집계
- 생일 주문 고객 식별
- 평균 주문 수량 및 재구매 패턴 파악
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 SQL 연산자를 단순한 조건문으로만 보지 않고, 데이터 분석의 논리적 도구로 이해할 수 있게 되었다.
특히 비교·논리·특수 연산자들은 WHERE 절을 구성하는 기본 단위이지만, 실제로는 데이터를 정제하고 맥락화하는 핵심 로직이라는 점이 인상 깊었다.
예를 들어, LIKE와 IS NULL을 적절히 조합하면 결측 데이터나 비정형 패턴을 식별할 수 있고, BETWEEN과 IN은 단순 범위 조회를 넘어 데이터 세분화와 필터링의 기준이 된다.
또한 산술 연산자(QTY * PRICE)를 활용하면 SQL만으로도 간단한 계산과 비즈니스 로직 구현이 가능하다는 점에서, Python이나 Excel에 의존하지 않고 데이터베이스 내에서 바로 통계나 KPI를 산출할 수 있다는 가능성을 보았다.
집합 연산자(UNION, UNION ALL)는 여러 SELECT 결과를 통합할 수 있어, 데이터 소스가 여러 테이블로 분리된 상황에서 매우 실용적이었다.
결국 이번 강의는 SQL의 “연산자”가 단순한 문법이 아니라,
데이터 분석의 논리적 사고를 코드로 표현하는 언어적 도구라는 점을 깨닫게 해주었다.
🚀 적용점
- 비교·논리·특수·산술·집합 연산자를 각각 사용해 조건문을 다양하게 조합하는 연습을 반복한다.
- IS NULL, NOT IN, LIKE 조건을 이용해 결측 데이터, 비회원 데이터, 특정 키워드 포함 데이터를 구분해본다.
- QTY * PRICE와 같이 산술 연산자 기반의 계산 필드를 자주 활용해 데이터베이스 내에서 직접 통계값을 생성한다.
- UNION과 UNION ALL의 차이를 실습을 통해 체감하고, 중복 데이터 처리 방법을 이해한다.
- 실무 데이터 분석 과제에서, 연산자만으로도 로직·필터링·계산을 완성할 수 있는 SQL 코드 설계를 목표로 한다.
👉 이번 강의는 SQL의 논리적 사고력을 한 단계 끌어올리는 내용이었다.
연산자의 개념을 완전히 이해하면, 이후 함수, 서브쿼리, 윈도우 함수에서도 훨씬 정교한 데이터 분석을 수행할 수 있다.
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-7 (0) | 2025.10.06 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-6 (0) | 2025.10.05 |
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-4 (0) | 2025.10.04 |
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-3 (0) | 2025.10.03 |
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-2 (0) | 2025.10.02 |