✏️ STUDY/📍 data

[SQL 기초] SELECT / WHERE

나무울 2023. 6. 1. 21:03

 

 

https://youtu.be/7MfXUvobZPc

위 강의를 보고 실습하면서 정리한 내용입니다.

 


 

SELECT

  • 데이터를 조회하는 쿼리 - 원하는 테이블에서 필요한 데이터들을 얼마나 빠르게 골라내느냐
  • SELECT 뒤에 반드시 하나 이상의 컬럼명을 기재해야 한다
  • 전체 컬럼 조회
    SELECT * FROM NETFLIX n ;
  • 특정 컬럼 조회
    SELECT VIDEO_NAME, CATEGORY, VIEW_CNT FROM NETFLIX n ;
  • 조건 조회
    (1) VIDEO_NAME이 나의 아저씨인 경우
         SELECT * FROM NETFLIX n WHERE VIDEO_NAME = '나의 아저씨';
    (2) VIDEO_NAME이 나의 아저씨가 아닌 경우
         SELECT * FROM NETFLIX n WHERE VIDEO_NAME <> '나의 아저씨';
    (3) VIEW_CNT가 70인 경우 (숫자라서 작은따옴표를 사용하지 않아도 된다)
         SELECT * FROM NETFLIX n WHERE VIEW_CNT = 70;
    (4) 최근 한 달동안 등록된 데이터
         SELECT * FROM NETFLIX n WHERE REG_DATE > SYSDATE-30;
    (5) 최근 한달 전에 등록된 데이터
         SELECT * FROM NETFLIX n WHERE REG_DATE < SYSDATE-30;
  • 중복되는 데이터가 존재하는 컬럼이 있을 경우, 중복을 제거하고 싶다면 'DISTINCT'를 컬럼 앞에 적어준다
    SELECT DISTINCT CATEGORY FROM NETFLIX n ;

 


 

WHERE

  • 쿼리문에 조건을 부여한다 (내가 원하는 데이터를 골라내기!)
  • OR 조건의 경우, IN과 유사하다

 

[실습 - 조건절이 1개인 경우]

#카테고리가 애니메이션인 경우
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션';

#카테고리가 애니메이션 또는 영화인 경우
SELECT * FROM NETFLIX WHERE CATEGORY IN ('애니메이션', '영화');

#카테고리가 애니메이션 또는 영화가 아닌 경우
SELECT * FROM NETFLIX WHERE CATEGORY NOT IN ('애니메이션', '영화');

#조회수가 70보다 작은 경우
SELECT * FROM NETFLIX WHERE VIEW_CNT < 70;

#조회수가 70보다 같거나 작은 경우
SELECT * FROM NETFLIX WHERE VIEW_CNT <= 70;

#등록일자가 2021년 이전인 경우
SELECT * FORM NETFLIX WHERE REG_DATE < '2021-01-01'

 

[실습 - 조건절이 1개 이상인 경우]

#카테고리가 '애니메이션'이고 조회수가 70미만인 경우
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' AND VIEW_CNT < 70;

#카테고리가 '애니메이션'이고 등록 일자가 2021년 이전인 경우
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' AND REG_DATE < '2021-01-01';

#카테고리가 '애니메이션'이거나 조회수가 70미만인 경우
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' OR VIEW_CNT < 70;

#카테고리가 '애니메이션'이거나 '영화'인 경우
SELECT * FROM NETFLIX WHERE CATEGORY = '애니메이션' OR CATEGORY = '영화';

#작품명이 '미'로 시작하는 경우
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '미%';

#작품명이 '인'으로 끝나는 경우
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '%인';

#작품명에 '의'가 들어가는 경우
SELECT * FROM NETFLIX WHERE VIDEO_NAME LIKE '%의%';

#조회수가 60과 70 사이인 경우
SELECT * FROM NETFLIX WHERE VIEW_CNT >= 60 AND VIEW_CNT <=70;
SELECT * FROM NETFLIX WHERE VIEW_CNT BETWEEN 60 AND 70;