반응형

본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.

비교연산자


비교연산자  설명
A = B A와 B가 같다
A <> B A와 B가 같지 않다
A != B A와 B가 같지 않다
A ^=B A와 B가 같지 않다
A < B A가 B보다 작다
A <=B A가 B보다 작거나 같다
A > B A가 B보다 크다
A >= B A가 B보다 크거나 같다
BETWEEN A AND B 지정된 두 값 사이에 있는지 확인하는 경우 사용
IS NULL NULL값을 가진 열을 검색하는 경우 사용
IS NOT NULL NULL값이 아닌 열을 검색하는 경우 사용

위와 같은 종류의 비교연산자들이 있고 크게 SELECT문과 WHERE 조건절에서 사용될 수 있다.

SELECT문에서 사용되는 경우


SELECT 열이름1 산술연산자 열이름2 AS 새로운이름
FROM 테이블명;
  • 2개의 열들을 비교/산술 연산자를 이용해 계산한 결과를 새로운 열에 추가하는 경우에 사용
  • SELECT 문에서 산술연산자는 AS 와 같이 사용되는 경우가 많음

 

WHERE 조건절에서 사용되는 경우


SELECT 열이름 
FROM 테이블명 
WHERE (열이름1 산술연산자 열이름2) 비교연산자 비교할 대상;

 

예제


테이블 : PURCHASE_TRAN

  • Primary Key는 ID 열 
  • 열 설명 (왼쪽부터) : 고객번호, 올해 구입금액, 올해 구입건수, 작년 구입금액, 작년 구입건수

 

더보기
CREATE TABLE PURCHASE_TRAN
(
ID INTEGER NOT NULL,
PURCHASE_AMT INTEGER NOT NULL,
PURCHASE_CNT INTEGER NOT NULL,
LAST_AMT INTEGER NOT NULL,
LAST_CNT INTEGER NOT NULL,
PRIMARY KEY("ID")
);

INSERT INTO PURCHASE_TRAN
VALUES
( 145, 20000000, 12, 1231000, 21),
( 455, 1273100, 1, 2237230, 22),
( 463, 111463, 3, 214047, 1),
( 324, 154769, 3, 7474663, 13),
( 568, 25784652, 47, 1000047, 3),
( 662, 106868, 1, 277763, 1),
( 871, 9696470, 123, 798874, 2),
( 460, 65650000, 1200, 6557741, 320),
( 277, 57663000, 470, 57663000, 444),
( 309, 5579800, 415, 2333000, 135);

 

Q1. PURCHASE_TRAN 테이블에서 올해 구입금액(PURCHASE_AMT)이 1백만원 이상인 고객의 고객번호와 올해 구입금액을 나타내보자(비교연산자).

더보기
SELECT ID, PURCHASE_AMT 
FROM PURCHASE_TRAN
WHERE PURCHASE_AMT>=1000000;
ID PURCHASE_AMT
145 20000000
277  57663000
309  5579800
455  1273100
460  65650000
568  25784652
871  9696470

 

Q2. 테이블에서 작년 구입금액(LAST_AMT)이 1백만원 이상 5천만원 이하인 고객의 고객번호와 작년 구입금액을 나타내보자.

더보기

아래 1), 2), 3)은 각각 같은 역할로 한가지 선택 가능

SELECT ID, LAST_AMT
FROM PURCHASE_TRAN
1) WHERE LAST_AMT BETWEEN 1000000 AND 50000000;

2) WHERE 1000000 <= LAST_AMT <= 50000000;

3) WHERE LAST_AMT >= 1000000 AND LAST_AMT <= 500000000;
ID LAST_AMT
145 1231000
309 2333000
324 7474663
455 2237230
460 6557741
568 1000047

 

Q3. 테이블에서 올해 구입건수(PURCHASE_CNT)가 작년도 구입건수(LAST_CNT)보다 많은 고객들의 고객번호, 올해 구입건수, 작년도 구입건수를 나타내고 고객번호를 기준으로 오름차순 정렬해보자.

더보기
SELECT ID, PURCHASE_CNT, LAST_CNT
FROM PURCHASE_TRAN
WHERE PURCHASE_CNT > LAST_CNT
ORDER BY ID;
ID PURCHASE_CNT LAST_CNT
277 470 444
309 415 135
460 1200 320
463 3 1
568 47 3
871 123 2

 

 

Q4. 올해 판매가격(PURCHASE_AMT)의 순 매출마진이 10%라고 가정하자. 테이블에서 순이익의 별칭을 INCOME_AMT라고 사용하여 올해 고객별 순이익을 구해보자.

더보기
SELECT ID, PURCHASE_AMT*0.1 AS INCOME_AMT
FROM PURCHASE_TRAN;
ID INCOME_AMT
145 2000000
277 5766300
309 557980
324 15476.9
455 127310
460 6565000
463 11146.3
568 2578465.2
662 10686.8
871 969647

 

 

반응형

+ Recent posts