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)을 가져올지 지정 |
|
FROM | 데이터를 가져올 테이블 지정 |
|
WHERE | 조건에 맞는 행(row)만 필터링 |
|
GROUP BY | 특정 컬럼으로 그룹핑 |
|
HAVING | 그룹핑된 결과에 조건 추가 |
|
ORDER BY | 결과 정렬 (기본: 오름차순, DESC: 내림차순) |
|
🟢 SELECT - 기본 조회
* 는 모든 컬럼을 조회
SELECT * FROM Book;
필요한 컬럼만 선택
SELECT bookname, price FROM Book;
🟡 WHERE - 조건 지정
WHERE
절은 조건에 맞는 행(row) 만 걸러낼 때 사용합니다.
SQL에서 데이터를 필터링할 때 가장 기본이 되는 절입니다.
SELECT * FROM Book
WHERE price > 10000;
✅ 자주 사용되는 WHERE 조건 연산자
연산자 | 의미 | 예시 예문 |
= | 같다 |
|
<> 또는 != | 같지 않다 |
|
> | 초과 |
|
< | 미만 |
|
>= | 이상 |
|
<= | 이하 |
|
BETWEEN A AND B | A 이상 B 이하의 범위 |
|
IN (...) | 괄호 안 목록에 포함 |
|
NOT IN (...) | 괄호 안 목록에 미포함 |
|
LIKE | 문자열 패턴 일치 (부분 검색) |
|
IS NULL | 값이 NULL 인 경우 |
|
IS NOT NULL | 값이 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 구문 예시
구문 | 의미 | 예시 결과 설명 |
| 해당 컬럼 기준으로 오름차순 정렬 (기본 정렬) |
|
| 오름차순 정렬 명시 |
|
| 내림차순 정렬 |
|
| 첫 번째 컬럼 정렬 후, 동일 값은 두 번째 컬럼 기준 |
|
| SELECT 절의 두 번째 컬럼 기준 내림차순 정렬 |
|
🧪 예제
-- 가격이 높은 순으로 도서 목록 조회
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 와 함께 쓸 경우, 그룹핑 후 정렬