🔃 SQL ORDER BY — 정렬하기
조회한 데이터를 원하는 순서로 보고 싶을 때 사용합니다.
생각보다 간단한데 은근히 자주 쓰이더라고요 😊
🗒️ 예시 테이블 — orders
| id | customer | product | price | quantity |
|---|---|---|---|---|
| 1 | kim | 아메리카노 | 4500 | 2 |
| 2 | lee | 라떼 | 5000 | 1 |
| 3 | kim | 라떼 | 5000 | 3 |
| 4 | park | 아메리카노 | 4500 | 1 |
| 5 | lee | 아메리카노 | 4500 | 2 |
CREATE DATABASE IF NOT EXISTS practice;
USE practice;
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
id INT,
customer VARCHAR(10),
product VARCHAR(20),
price INT,
quantity INT
);
INSERT INTO orders VALUES (1, 'kim', '아메리카노', 4500, 2);
INSERT INTO orders VALUES (2, 'lee', '라떼', 5000, 1);
INSERT INTO orders VALUES (3, 'kim', '라떼', 5000, 3);
INSERT INTO orders VALUES (4, 'park', '아메리카노', 4500, 1);
INSERT INTO orders VALUES (5, 'lee', '아메리카노', 4500, 2);
‼️ 위 테이블을 기준으로 아래 문법 사용법을 설명할게요.
🧠 ORDER BY란?
ORDER BY는 조회한 결과를 특정 컬럼 기준으로 정렬하는 절입니다.
기본값은 오름차순(ASC)이며, 내림차순으로 정렬하려면 DESC를 붙입니다.
🎀 기본 문법
SELECT 컬럼명 FROM 테이블명
ORDER BY 컬럼명 ASC|DESC;
ASC— 오름차순 정렬 (기본값, 생략 가능)DESC— 내림차순 정렬
🔹 가격 오름차순 정렬
SELECT * FROM orders
ORDER BY price ASC;
-- ASC는 기본값이라 생략해도 동일합니다
SELECT * FROM orders
ORDER BY price;
📥 결과
| id | customer | product | price | quantity |
|---|---|---|---|---|
| 1 | kim | 아메리카노 | 4500 | 2 |
| 4 | park | 아메리카노 | 4500 | 1 |
| 5 | lee | 아메리카노 | 4500 | 2 |
| 2 | lee | 라떼 | 5000 | 1 |
| 3 | kim | 라떼 | 5000 | 3 |
🔹 가격 내림차순 정렬
SELECT * FROM orders
ORDER BY price DESC;
📥 결과
| id | customer | product | price | quantity |
|---|---|---|---|---|
| 2 | lee | 라떼 | 5000 | 1 |
| 3 | kim | 라떼 | 5000 | 3 |
| 1 | kim | 아메리카노 | 4500 | 2 |
| 4 | park | 아메리카노 | 4500 | 1 |
| 5 | lee | 아메리카노 | 4500 | 2 |
🔹 여러 컬럼으로 정렬
SELECT * FROM orders
ORDER BY price DESC, quantity ASC;
📥 결과
| id | customer | product | price | quantity |
|---|---|---|---|---|
| 2 | lee | 라떼 | 5000 | 1 |
| 3 | kim | 라떼 | 5000 | 3 |
| 4 | park | 아메리카노 | 4500 | 1 |
| 1 | kim | 아메리카노 | 4500 | 2 |
| 5 | lee | 아메리카노 | 4500 | 2 |
price내림차순으로 먼저 정렬하고,
같은 가격이면quantity오름차순으로 정렬합니다.
🔹 컬럼 번호로 정렬
SELECT customer, price FROM orders
ORDER BY 2 DESC;
SELECT에 나열된 컬럼 순서를 숫자로 지정할 수 있습니다.ORDER BY 2는 SELECT의 두 번째 컬럼인 price 기준으로 정렬합니다.
📥 결과
| customer | price |
|---|---|
| lee | 5000 |
| kim | 5000 |
| kim | 4500 |
| park | 4500 |
| lee | 4500 |
⚠️ 컬럼 이름 대신 번호를 쓰면 간결하지만,
컬럼 순서가 바뀌면 결과도 달라지므로 주의가 필요합니다.
☕ 마무리
| 문법 | 설명 |
|---|---|
ORDER BY 컬럼명 |
해당 컬럼 기준으로 정렬 |
ASC |
오름차순 (기본값, 생략 가능) |
DESC |
내림차순 |
ORDER BY 컬럼1, 컬럼2 |
여러 컬럼 기준으로 순서대로 정렬 |
📚 참고자료
'Database > SQL 기초' 카테고리의 다른 글
| SQL 기초 - WHERE (0) | 2026.03.20 |
|---|---|
| SQL 기초 - 집계 함수(COUNT, AVG, SUM, MAX, MIN) (0) | 2026.03.20 |
| SQL 기초 - GROUP BY - HAVING (0) | 2026.03.19 |
| SQL 기초 - NULL 다루기 (0) | 2026.03.18 |
| SQL기초 - SELECT (0) | 2026.03.17 |