반응형
본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.
WHERE 조건절은 전체 테이블에서 특정한 행을 추출하는데 사용된다.
숫자형 데이터 조건 주기
SELECT 열이름 FROM 테이블명 WHERE 비교할 열 이름=숫자;
문자/날짜형 데이터 조건 주기
SELECT 열이름 FROM 테이블명 WHERE 비교할 열 이름='문자';
- 문자에 대한 조건을 줄때는 작은 따옴표(’ ‘)를 사용
예제
보험 테이블: INS_INFO
- Primary Key는 ID 열
- 열 설명 (왼쪽부터) : 고객번호, 계약번호, 계약일, 계약 종류, 상품명, 해지일, 가입금액
ID | CNRT_NO | CNRT_DT | CNRT_CD | PRDT_NM | CNCL_DT | CNRT_AMT |
224 | 2533274 | 2013-07-01 | 1 | 다이렉트자동차보험 | 1000000 | |
225 | 6111075 | 2012-08-07 | 2 | 5년만기저축보험 | 300000 | |
226 | 4447330 | 2014-06-12 | 1 | 다이렉트자동차보험 | 1100000 | |
684 | 4932004 | 2011-11-23 | 1 | 자동차보험 | 1200000 | |
233 | 9633703 | 2013-05-31 | 2 | 10년만기저축보험 | 2013-11-03 | 700000 |
762 | 1378934 | 2013-01-12 | 2 | 3년만기저축보험 | 500000 | |
789 | 3701447 | 2010-05-05 | 1 | 다이렉트자동차보험 | 900000 | |
183 | 6678966 | 2011-12-08 | 2 | 10년만기 저축보험 | 10000000 | |
831 | 8463112 | 2013-04-16 | 1 | 다이렉트자동차보험 | 2013-08-11 | 1000000 |
더보기
CREATE TABLE INS_INFO(
ID CHAR(20) NOT NULL,
CNRT_NO CHAR(20) NOT NULL,
CNRT_DT date NOT NULL,
CNRT_CD CHAR(20) NOT NULL,
PRDT_NM CHAR(20) NOT NULL,
CNCL_DT date NULL,
CNRT_AMT INT NOT NULL,
PRIMARY KEY("ID")
);
INSERT INTO INS_INFO
VALUES
('224', '2533274', '2013-07-01', '1', '다이렉트자동차보험', NULL, 1000000),
('225', '6111075', '2012-08-07', '2', '5년만기저축보험', NULL, 300000),
('226', '4447330', '2014-06-12', '1', '다이렉트자동차보험', NULL, 1100000),
('684', '4932004', '2011-11-23', '1', '자동차보험', NULL, 1200000),
('233', '9633703', '2013-05-31', '2', '10년만기저축보험', '2013-11-03', 700000),
('762', '1378934', '2013-01-12', '2', '3년만기저축보험', NULL, 500000),
('789', '3701447', '2010-05-05', '1', '다이렉트자동차보험', NULL, 900000),
('183', '6678966', '2011-12-08', '2', '10년만기 저축보험', NULL, 10000000),
('831', '8463112', '2013-04-16', '1', '다이렉트자동차보험', '2013-08-11', 1000000);
위 테이블에서 고객들의 고객번호(ID), 계약번호(CNRT_NO), 가입금액(CNRT_AMT)를 추출하는 쿼리문
SELECT ID, CNRT_NO, CNRT_AMT
FROM INS_INFO;
ID | CNRT_NO | CNRT_AMT |
224 | 2533274 | 1000000 |
225 | 6111075 | 300000 |
226 | 4447330 | 1100000 |
684 | 4932004 | 1200000 |
233 | 9633703 | 700000 |
762 | 1378934 | 500000 |
789 | 3701447 | 900000 |
183 | 6678966 | 10000000 |
831 | 8463112 | 1000000 |
Q1. 가입금액이 1백만원 이상인 고객들의 고객번호, 계약번호, 가입금액을 추출하면?
더보기
SELECT ID, CNRT_NO, CNRT_AMT
FROM INS_INFO
WHERE CNRT_AMT >=1000000;
ID | CNRT_NO | CNRT_AMT |
224 | 2533274 | 1000000 |
226 | 4447330 | 1100000 |
684 | 4932004 | 1200000 |
183 | 6678966 | 10000000 |
831 | 8463112 | 1000000 |
Q2. 상품명이 '다이렉트 자동차 보험'인 고객들의 고객번호(ID), 계약일(CNRT_DT), 상품명(PRDT_NM)을 추출 후 고객번호는 오름차순으로 정렬
더보기
SELECT ID, CNRT_DT, PRDT_NM
FROM INS_INFO
WHERE PRDT_NM='다이렉트자동차보험'
ORDER BY ID ASC;
ID | CNRT_DT | PRDT_NM |
224 | 2013-07-01 | 다이렉트자동차보험 |
226 | 2014-06-12 | 다이렉트자동차보험 |
789 | 2010-05-05 | 다이렉트자동차보험 |
831 | 2013-04-16 | 다이렉트자동차보험 |
Q3. 상품 계약일이 2013년 04월 16일 이후인 고객들의 고객번호(ID), 계약일(CNRT_DT), 상품명(PRDT_NM)을 추출하고 고객번호는 오름차순으로 정렬
더보기
SELECT ID, CNRT_DT, PRDT_NM
FROM INS_INFO
WHERE CNRT_DT >='2013-04-16'
ORDER BY ID ASC;
ID | CNRT_DT | PRDT_NM |
224 | 2013-07-01 | 다이렉트자동차보험 |
226 | 2014-06-12 | 다이렉트자동차보험 |
233 | 2013-05-31 | 10년만기저축보험 |
831 | 2013-04-16 | 다이렉트자동차보험 |
반응형
'SQL' 카테고리의 다른 글
[SQL] NULL값의 처리 (COALESCE) (0) | 2022.02.08 |
---|---|
[SQL] 비교/산술 연산자 (=, <>, !=, ^=, <, > ...) (0) | 2022.02.08 |
[SQL] 열이름 변경해서 출력하기 (AS) (0) | 2022.02.08 |
[SQL] 중복되는 행 제거하기 (DISTINCT) (0) | 2022.02.07 |
[SQL] 데이터 정렬하기 (ORDER BY) (0) | 2022.01.20 |