• Feed
  • Explore
  • Ranking
/
/
    💾 데이터베이스

    📌SQL 문법 - SELECT 문 기본 구조

    SQL문법의 기본, select문
    졍
    졍
    2025.04.07
    ·
    10 min read

    SQL에서 가장 많이 사용되는 문법, SELECT!
    데이터를 "조회"하는 데 필수적인 SELECT 문을 완벽히 이해하면 데이터베이스의 절반은 끝났다고 할 수 있어요.
    이번 글에서는 SELECT 문 구조, 절별 의미, 자주 쓰는 조건들과 실전 예제까지 깔끔하게 정리해봅니다.

    🧾 SELECT 문 기본 구조

    SELECT [컬럼명 | *]
    FROM 테이블명
    WHERE 조건
    GROUP BY 그룹 기준
    HAVING 그룹 조건
    ORDER BY 정렬 기준 [ASC|DESC];
    • 필수: SELECT, FROM

    • 선택: WHERE, GROUP BY, HAVING, ORDER BY

    각 절의 역할

    절

    설명

    예시

    SELECT

    어떤 열(column)을 가져올지 지정

    SELECT name, price

    FROM

    데이터를 가져올 테이블 지정

    FROM Book

    WHERE

    조건에 맞는 행(row)만 필터링

    WHERE price > 10000

    GROUP BY

    특정 컬럼으로 그룹핑

    GROUP BY publisher

    HAVING

    그룹핑된 결과에 조건 추가

    HAVING COUNT(*) > 2

    ORDER BY

    결과 정렬 (기본: 오름차순, DESC: 내림차순)

    ORDER BY price DESC


    🟢 SELECT - 기본 조회

    * 는 모든 컬럼을 조회

    SELECT * FROM Book;

    필요한 컬럼만 선택

    SELECT bookname, price FROM Book;

    🟡 WHERE - 조건 지정

    WHERE 절은 조건에 맞는 행(row) 만 걸러낼 때 사용합니다.
    SQL에서 데이터를 필터링할 때 가장 기본이 되는 절입니다.

    SELECT * FROM Book
    WHERE price > 10000;

    ✅ 자주 사용되는 WHERE 조건 연산자

    연산자

    의미

    예시 예문

    =

    같다

    publisher = '굿스포츠'

    <> 또는 !=

    같지 않다

    price <> 20000

    >

    초과

    price > 15000

    <

    미만

    price < 15000

    >=

    이상

    price >= 10000

    <=

    이하

    price <= 20000

    BETWEEN A AND B

    A 이상 B 이하의 범위

    price BETWEEN 10000 AND 20000

    IN (...)

    괄호 안 목록에 포함

    publisher IN ('A출판사', 'B출판사')

    NOT IN (...)

    괄호 안 목록에 미포함

    publisher NOT IN ('굿스포츠', '대한미디어')

    LIKE

    문자열 패턴 일치 (부분 검색)

    bookname LIKE '%스포츠%'

    IS NULL

    값이 NULL 인 경우

    discount IS NULL

    IS NOT NULL

    값이 NULL이 아닌 경우

    discount IS NOT NULL

    🧪 WHERE 절 복합 조건 예시

    여러 조건을 조합할 땐 AND, OR, NOT을 활용합니다.

    -- 가격이 10000원 이상이면서 '대한미디어' 출판사의 책
    SELECT * FROM Book
    WHERE price >= 10000 AND publisher = '대한미디어';
    
    -- '스포츠'를 제목에 포함하거나 15000원 이하인 책
    SELECT * FROM Book
    WHERE bookname LIKE '%스포츠%' OR price <= 15000;

    🔵 ORDER BY - 정렬

    ORDER BY 절은 조회 결과를 원하는 기준으로 정렬할 때 사용합니다.
    정렬 기준이 없으면 테이블에 저장된 순서대로 출력될 수 있어요.

    SELECT bookname, price
    FROM Book
    ORDER BY price;
    • 기본 정렬은 오름차순(ASC), 내림차순은 DESC를 사용

    ✅ 자주 사용하는 ORDER BY 구문 예시

    구문

    의미

    예시 결과 설명

    ORDER BY 컬럼명

    해당 컬럼 기준으로 오름차순 정렬 (기본 정렬)

    ORDER BY price → 가격 낮은 순

    ORDER BY 컬럼명 ASC

    오름차순 정렬 명시

    ORDER BY bookname ASC → 도서명 가나다순

    ORDER BY 컬럼명 DESC

    내림차순 정렬

    ORDER BY price DESC → 가격 높은 순

    ORDER BY 컬럼1, 컬럼2

    첫 번째 컬럼 정렬 후, 동일 값은 두 번째 컬럼 기준

    ORDER BY publisher, price → 출판사별 가격순

    ORDER BY 2 DESC

    SELECT 절의 두 번째 컬럼 기준 내림차순 정렬

    SELECT name, price ... ORDER BY 2 DESC

    🧪 예제

    -- 가격이 높은 순으로 도서 목록 조회
    SELECT bookname, price
    FROM Book
    ORDER BY price DESC;
    
    -- 출판사별로 정렬 후, 동일 출판사 내에서 가격 높은 순
    SELECT bookname, publisher, price
    FROM Book
    ORDER BY publisher ASC, price DESC;

    📌 참고:

    • ORDER BY는 SELECT 문의 가장 마지막에 위치
    • GROUP BY 와 함께 쓸 경우, 그룹핑 후 정렬







    - 컬렉션 아티클