📌SQL 문법 - SELECT 문 기본 구조

SQL문법의 기본, select문
avatar
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 BYSELECT 문의 가장 마지막에 위치
GROUP BY 와 함께 쓸 경우, 그룹핑 후 정렬







- 컬렉션 아티클