5분 SQL

[MYSQL 02] ORDER BY, LIMIT 개념과 실습

nightquery 2025. 4. 21. 22:28

결과를 어떻게 정렬할지, 몇 개만 가져올지 정하는 것도 실무에서 정말 자주 등장한다.

오늘은 그 핵심인 ORDER BYLIMIT을 익힌다.

 

 

| ORDER BY, LIMIT 기본 문법

ORDER BY로 먼저 정렬하고, LIMIT으로 필요한 개수만 추출하는 방식으로 자주 함께 사용된다.

문법 설명
ORDER BY 컬럼명 ASC 해당 컬럼 기준으로 오름차순 정렬
(낮은 값 → 높은 값)
ORDER BY 컬럼명 DESC 해당 컬럼 기준으로 내림차순 정렬
(높은 값 → 낮은 값)
LIMIT 숫자 결과에서 앞에서부터 해당 개수만큼만 출력

 

 

 

| 실습용 테이블

SQL은 직접 쿼리를 실행하고 수정해보는 게 핵심!
아직 실습 환경이 없다면, 아래 글을 참고해 DBeaver와 MySQL부터 먼저 세팅해 보자
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL

 

[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL

IT 직장에서의 N년차, SQL은 선택이 아니라 필수라는 것을 느겼다.24년에 자격증 취득하고 실무에서 조금씩 써먹는 중인데 처음에 겁먹었던 것이 무색하게 할 만하다. 앞으로의 포스팅들은 SQL을

happynestledays.tistory.com

 

CREATE DATABASE IF NOT EXISTS sql_blog;
USE sql_blog;

DROP TABLE IF EXISTS user_activity_log;

CREATE TABLE user_activity_log (
  log_id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT,
  action VARCHAR(50),
  device VARCHAR(50),
  created_at DATETIME
);

INSERT INTO user_activity_log (user_id, action, device, created_at) VALUES
(101, 'login', 'mobile', '2024-04-18 08:12:00'),
(102, 'search', 'web', '2024-04-18 09:05:00'),
(101, 'purchase', 'mobile', '2024-04-18 09:40:00'),
(103, 'logout', 'web', '2024-04-18 10:15:00'),
(102, 'purchase', 'mobile', '2024-04-18 11:00:00'),
(101, 'search', 'web', '2024-04-18 11:30:00');



 

 


1. 기본 예제

● 조건 : 전체 로그를 시간 기준으로 최신 순 정렬

SELECT *
FROM user_activity_log
ORDER BY created_at DESC;

 

 

2. 실무 응용 : 최신순 정렬 후 상위 2건 보기

  조건 : action이 'login'인 기록 중 최신순으로 2건만 조회

SELECT *
FROM user_activity_log
WHERE action = 'login'
ORDER BY created_at DESC
LIMIT 2;

 

 

 

3. 실무 응용 : 최신 구매순 정렬 후 상위 1건 보기

  조건 : 가장 최근에 'purchase'한 유저를 1명만 조회

SELECT *
FROM user_activity_log
WHERE action = 'purchase'
ORDER BY created_at DESC
LIMIT 2;

 

 

 

 

 

오늘도 고생했다.