본문 바로가기
프로그래머스 SQL 고득점 Kit/SELECT

[SQL] SELECT 기본 구조

by miiinn 2026. 2. 27.

▮ SELECT 문 기본 구조

SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건
ORDER BY 기준1 ASC, 기준2 ASC;


✅ SELECT: 가져오고 싶은 데이터의 열 이름. 모든 열을 다 보고 싶다면 별표(*) 사용

✅ FROM: 데이터가 들어있는 테이블의 이름

✅ AS: Alias, 별칭 지정 / AS는 생략 가능(공백으로 구분)

 

✅ WHERE: 필터링, 원하는 행만 골라내기

   

   # 주요 연산자:

  • = (같음), != (다름)
  • > , < (크거나 작음)
  • LIKE (특정 문자가 포함된 데이터 찾기)

✅ DISTINCT: 중복제거

-- 예시: 우리 회사에 어떤 부서들이 있는지 종류만 알고 싶을 때
SELECT DISTINCT dept
FROM employees;

 

✅ GROUP BY: 그룹으로 묶기

  • COUNT(개수), SUM(합계), AVG(평균) 같은 통계 함수와 함께 사용 

✅ HAVING: 그룹 전용 필터, 이미 GROUP BY로 묶인 결과에 대해 조건을 걸 때

 

EX) "10만 원 이상 상품들만 대상으로(WHERE), 판매 건수가 5번 이상(HAVING)인 상품군(GROUP BY)을 찾아라!"

SELECT product_category, COUNT(*) AS 판매건수
FROM orders
WHERE price >= 100000        -- [1단계] 개별 상품 가격이 10만 원 넘는 것만 골라내기
GROUP BY product_category    -- [2단계] 카테고리별로 묶기
HAVING COUNT(*) >= 5         -- [3단계] 묶고 난 뒤, 판매건수가 5건 이상인 팀만 남기기
ORDER BY 판매건수 DESC;        -- [4단계] 정렬

 

✅ ORDER BY: 정렬, 기본값은 오름차순

  • ASC: 오름차순 (기본값, 생략 가능)
  • DESC: 내림차순 (큰 것부터, 역순)

*기준 여러개 가능

ORDER BY 기준1 ASC, 기준2 ASC;

 

 


⭐ SQL 작성 순서

SQL은 작성하는 순서가 정해져 있다. 이 순서를 어기면 에러!!

  1. SELECT (어떤 컬럼을?)
  2. FROM (어느 테이블에서?)
  3. WHERE (어떤 조건으로?)
  4. GROUP BY (무엇으로 묶어서?)
  5. ORDER BY (어떻게 정렬해서?)