반응형
본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 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 |
반응형
'SQL' 카테고리의 다른 글
[SQL] 논리연산자 사용하기 (AND) (0) | 2022.02.08 |
---|---|
[SQL] NULL값의 처리 (COALESCE) (0) | 2022.02.08 |
[SQL] WHERE 조건절을 이용해 데이터 추출하기 (0) | 2022.02.08 |
[SQL] 열이름 변경해서 출력하기 (AS) (0) | 2022.02.08 |
[SQL] 중복되는 행 제거하기 (DISTINCT) (0) | 2022.02.07 |