본문 바로가기

허씨의 편람/자기개발

[개발일지] 마케터 실무 활용을 위한 왕초보 SQL 2편 (조건 논리 연산자, 정렬 중복제거)

 

 

 

오늘은 현업 마케터가 입문용으로 알면 좋은 SQL 문법 정리 모음집을 소개드리려고 합니다!

 

 

조건 및 논리 연산자

= 값이 같은 경우 WHERE 나이 = 18
> / < 값이 크거나 작은 경우 WHERE 나이 > 17
>= / <= 값이 크거나 같거나 작은 경우 WHERE 나이 >= 17
<> 또는 != 값이 다른 경우 WHERE 나이 != 17
AND 조건이 모두 참인 경우 WHERE 나이 > 17 AND 학년 = 3
OR 조건 중 하나라도 참인 경우 WHERE 나이 = 17 OR 학년 = 2
BETWEEN 특정 범위에 포함되는 경우 WHERE 나이 BETWEEN 16 AND 18
IN 값 중 하나와 일치하는 경우 WHERE 학년 IN (1, 2, 3)
LIKE 특정 패턴과 일치하는 경우 (문자열 검색) WHERE 이름 LIKE '철%' (철로 시작)
NOT 조건이 거짓인 경우 WHERE NOT 학년 = 3

 


 

정렬 및 중복 제거

오름차순 정렬 ORDER BY 컬럼명 ASC SELECT 이름 FROM 학생 ORDER BY 나이 ASC
내림차순 정렬 ORDER BY 컬럼명 DESC SELECT 이름 FROM 학생 ORDER BY 나이 DESC
중복 제거 SELECT DISTINCT 컬럼명 FROM 테이블명 SELECT DISTINCT 학년 FROM 학생

 


 

JOIN (테이블 결합)

  • INNER JOIN: 두 테이블의 공통 데이터를 가져옴
     
    -활용법 :
    SELECT A.컬럼1, B.컬럼2
    FROM 테이블A  A
    INNER JOIN 테이블B B
    ON A.공통컬럼 = B.공통컬럼
    *여기서 테이블A A의 의미는 A테이블을 앞으로 A로 부르겠다는 의미에요!
     
  • USING: 공통 컬럼명이 같은 경우 간단하게 사용
     
    SELECT A.컬럼1, B.컬럼2
    FROM 테이블A A
    INNER JOIN 테이블B B
    USING (공통컬럼명);
     

 

집계 함수

함수설명예시

COUNT() 데이터 개수 SELECT COUNT(*) FROM 학생;
SUM() 값의 합계 SELECT SUM(나이) FROM 학생;
AVG() 값의 평균 SELECT AVG(나이) FROM 학생;
MAX() 최대값 SELECT MAX(나이) FROM 학생;
MIN() 최소값 SELECT MIN(나이) FROM 학생;

 


 

조건부 SELECT

  • CASE: 특정 조건에 따라 다른 값을 출력
    sql
    코드 복사
    SELECT 이름, CASE WHEN 나이 >= 18 THEN '성인' ELSE '미성년자' END AS 상태 FROM 학생;
     

 

예제 문법

  1. 두 가지 조건 모두 만족
     
    SELECT 이름, 나이
    FROM 학생
    WHERE 나이 > 17 AND 학년 = 3;
     
  2. 하나의 조건만 만족
     
    SELECT 이름, 나이
    FROM 학생
    WHERE 나이 = 17 OR 학년 = 2;
     
  3. 중복 학년 제거
    SELECT DISTINCT 학년
    FROM 학생;
     
  4. 오름차순 정렬
    SELECT 이름, 나이
    FROM 학생
    ORDER BY 나이 ASC;
     
  5. INNER JOIN으로 테이블 결합
    SELECT 학생.이름, 성적.점수
    FROM 학생
    INNER JOIN 성적 USING (ID);
    *여기서 ID는 결합 시킬 Key 값이에요.