프로그래밍/MySQL

📊 [SQL 프로젝트] 제6장 LIMIT - 필요한 만큼만 가져오기

강릉바다의 블로그 2026. 6. 28. 19:14

제6장 LIMIT - 필요한 만큼만 가져오기


오늘의 질문

여러분이 쇼핑몰 관리자가 되었다고 생각해 봅시다.

사장님이 말합니다.

"상품이 너무 많네요."

 

잠시 후 다시 말합니다.

"가격이 가장 비싼 상품 5개만 보여 주세요."

 

또는

"최근 주문 10건만 확인하면 됩니다."

 

우리는 모든 데이터를 볼 필요가 없습니다.

필요한 만큼만 보면 됩니다.

이때 사용하는 명령어가 바로 LIMIT입니다.


학습 목표

이번 장을 학습하면 다음 내용을 할 수 있습니다.

  • LIMIT의 역할을 설명할 수 있다.
  • 원하는 개수만 조회할 수 있다.
  • ORDER BY와 함께 사용할 수 있다.
  • LIMIT를 실무에서 활용할 수 있다.

6-1. 먼저 실행해 봅시다.

다음 SQL을 실행해 보세요.

SELECT ProductName,
       Price
FROM Products
LIMIT 5;

실행 결과

ProductName Price
Chais 18.00
Chang 19.00
Aniseed Syrup 10.00
Chef Anton's Cajun Seasoning 22.00
Chef Anton's Gumbo Mix 21.35

이번에는 77개의 상품이 아니라 처음 5개만 출력되었습니다.


잠깐 생각해 보기

LIMIT를 사용했다고 해서

나머지 72개의 상품이 삭제되었을까요?

그렇지 않습니다.

데이터베이스에는 그대로 저장되어 있습니다.

단지 처음 5개만 화면에 보여 준 것입니다.


6-2. LIMIT를 한 줄씩 읽어 보기

SELECT ProductName,
       Price
FROM Products
LIMIT 5;

영어 문장처럼 읽어 보면

SELECT

→ 가져와라.

ProductName, Price

→ 상품 이름과 가격을.

FROM Products

→ Products 테이블에서.

LIMIT 5

→ 단, 5개만.

즉,

Products 테이블에서 상품 이름과 가격을 가져오되 5개만 보여 주어라.

라는 뜻입니다.


6-3. LIMIT는 왜 사용할까요?

데이터가 수십 개라면 큰 문제가 없습니다.

하지만

  • 고객 50만 명
  • 주문 1천만 건
  • 상품 30만 개

를 모두 출력한다면 어떻게 될까요?

  • 화면이 너무 길어집니다.
  • 검색 속도가 느려질 수 있습니다.
  • 원하는 데이터를 찾기도 어렵습니다.

그래서 대부분의 프로그램은 필요한 개수만 조회합니다.

예를 들어

쇼핑몰에서는

인기 상품 10개

 

뉴스에서는

최신 기사 20개

 

은행에서는

최근 거래 30건

만 보여 주는 경우가 많습니다.


6-4. LIMIT와 ORDER BY를 함께 사용하기

LIMIT는 혼자보다

ORDER BY와 함께 사용할 때 가장 강력합니다.

다음 SQL을 실행해 보세요.

SELECT ProductName,
       Price
FROM Products
ORDER BY Price DESC
LIMIT 5;

실행 결과

ProductName Price
Côte de Blaye 263.50
Thüringer Rostbratwurst 123.79
Mishi Kobe Niku 97.00
Sir Rodney's Marmalade 81.00
Carnarvon Tigers 62.50

이번에는

가격이 가장 비싼 상품 5개만 출력되었습니다.


왜 ORDER BY가 먼저일까요?

많은 학생들이 이렇게 생각합니다.

"LIMIT가 먼저 5개를 가져오고 정렬하면 안 되나요?"

 

그렇게 하면

처음 5개만 가져온 후

그 5개만 정렬하게 됩니다.

우리가 원하는 결과는

전체 상품을 먼저 가격순으로 정렬한 다음

그 가운데 상위 5개만 가져오는 것입니다.

그래서

ORDER BY
↓
LIMIT

순서가 됩니다.


6-5. LIMIT 1은 특별합니다.

가장 비싼 상품 하나만 보고 싶다면

SELECT ProductName,
       Price
FROM Products
ORDER BY Price DESC
LIMIT 1;

결과는

가장 비싼 상품 하나만 출력됩니다.

LIMIT 1은 실무에서도 매우 자주 사용합니다.


6-6. LIMIT는 숫자만 사용합니다.

다음은 올바른 예입니다.

LIMIT 10

잘못된 예

LIMIT '10'

숫자는 따옴표를 사용하지 않습니다.


6-7. 자주 하는 실수

① ORDER BY 없이 LIMIT만 사용한다.

가능은 합니다.

하지만 어떤 순서의 5개가 나올지 의도를 명확히 하기 어렵습니다.

대부분은 ORDER BY와 함께 사용합니다.


② LIMIT를 WHERE 앞에 작성한다.

잘못된 예

SELECT *
FROM Products
LIMIT 5
WHERE Price > 20;

SQL의 순서를 기억하세요.

SELECT
FROM
WHERE
ORDER BY
LIMIT

③ LIMIT에 문자를 넣는다.

LIMIT '다섯'

오류 발생


④ LIMIT와 데이터를 삭제하는 명령을 혼동한다.

LIMIT는 데이터를 삭제하지 않습니다.

보여 주는 개수만 제한합니다.


실무에서는 어떻게 사용할까요?

  • 쇼핑몰 메인 화면의 인기 상품 10개
  • 최신 공지사항 5개
  • 최근 주문 20건
  • 최근 로그인 기록
  • 가장 많이 팔린 상품 Top 10

웹사이트를 이용할 때 거의 모든 첫 화면에는 LIMIT가 사용됩니다.


실습

실습 1

상품 10개만 조회해 보세요.

SELECT *
FROM Products
LIMIT 10;

실습 2

가장 비싼 상품 3개를 조회하세요.

SELECT ProductName,
       Price
FROM Products
ORDER BY Price DESC
LIMIT 3;

실습 3

고객 이름을 알파벳순으로 정렬한 후 처음 10명을 조회하세요.

SELECT CustomerName
FROM Customers
ORDER BY CustomerName
LIMIT 10;

핵심 정리

✔ LIMIT는 조회할 개수를 제한한다.

✔ LIMIT는 데이터를 삭제하지 않는다.

✔ ORDER BY와 함께 사용하는 경우가 많다.

✔ LIMIT 1은 가장 많이 사용하는 형태 중 하나이다.

✔ SQL의 실행 흐름은 정렬한 후 필요한 개수만 가져오는 것이다.


실무 미션

당신은 온라인 쇼핑몰의 관리자입니다.

사장님이 다음과 같이 요청했습니다.

"가격이 가장 비싼 상품 5개를 확인하고 싶습니다. 상품 이름과 가격만 보여 주세요."

 

다음 조건을 만족하는 SQL을 작성해 보세요.

  • Products 테이블 사용
  • ProductName, Price만 조회
  • 가격이 높은 순으로 정렬
  • 상위 5개만 출력

연습 문제

기본 문제

  1. LIMIT의 역할을 설명해 보세요.
  2. LIMIT는 데이터를 삭제하나요?
  3. LIMIT와 ORDER BY를 함께 사용하는 이유를 설명해 보세요.

응용 문제

  1. Products 테이블에서 상품 이름만 조회하고 처음 8개만 출력하는 SQL을 작성하세요.
  2. Customers 테이블에서 고객 이름을 오름차순으로 정렬한 후 처음 5명을 조회하는 SQL을 작성하세요.
  3. Products 테이블에서 가장 저렴한 상품 10개를 조회하는 SQL을 작성하세요.

도전 문제

사장님이 다음과 같이 요청했습니다.

"가장 저렴한 상품 7개를 보고 싶습니다."

 

상품 이름과 가격만 출력하도록 SQL을 작성해 보세요.


다음 장 예고

지금까지 우리는 원하는 데이터를 조회하고(SELECT), 조건을 지정하고(WHERE), 정렬하고(ORDER BY), 필요한 개수만 가져오는(LIMIT) 방법을 배웠습니다.

그런데 데이터를 조회하다 보면 이상한 값을 만날 때가 있습니다.

예를 들어 고객의 전화번호나 주소가 비어 있는 경우처럼 값이 없는 데이터입니다.

이 값은 0도 아니고, 빈 문자열('')도 아닙니다. 데이터베이스에서는 특별한 의미를 가진 NULL이라고 부릅니다.

다음 장에서는 NULL - 값이 없는 데이터를 다루는 방법을 배우며, IS NULL과 IS NOT NULL을 사용해 누락된 데이터를 찾는 방법을 익혀 보겠습니다.