반응형

본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 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 다이렉트자동차보험
반응형

+ Recent posts