[DML] SELECT - ORDER BY와 LIMIT
ORDER BY
SELECT * | { [ ALL | DISTINCT ] collumn | expression [ alias ], ... }
FROM table_name
WHERE conditions
ORDER BY col_name1 [ ASC | DESC ] [col_name1, ...];
ORDER BY: 정렬, default: 오름차순(ASC)
SELECT employee_id, first_name, salary
FROM employees
ORDER BY salary DESC;
- 모든 사원의 사번, 이름, 급여 검색. 단, 급여 순 정렬(내림차순)
SELECT employee_id, first_name, department_id, salary
FROM employees
WHERE department_id IN (50, 60, 70)
ORDER BY department_id, salary DESC;
- 50, 60, 70에 근무하는 사원의 사번, 이름, 부서번호, 급여 검색. 단, 부서별 정렬(오름차순) 후 급여 순(내림차순) 검색
LIMIT
SELECT * | { [ ALL | DISTINCT ] collumn | expression [ alias ], ... }
FROM table_name
WHERE conditions
ORDER BY col_name1 [ ASC | DESC ] [col_name1, ...]
LIMIT 개수 [ OFFSET 시작 인덱스 ];
- 검색할 데이터의 수(행) 제한
SELECT문의 가장 마지막에 추가- offset은 0부터 시작 (인덱스)
SELECT employee_id, first_name, salary
FROM employees
ORDER BY salary DESC
LIMIT 1 offset 4;
- 급여 순 정렬 후 5번째로 높은 급여를 받는 사원의 사번, 이름, 급여

SELECT employee_id, first_name, salary
FROM employees
ORDER BY salary DESC
LIMIT 0, 5;
- 급여 순 정렬 후 1~ 5번째로 급여를 많이 받는 사원의 사번, 이름, 급여
- offset 생략가능
(LIMIT 시작인덱스, 개수) - 생략하지 않았을 떄와 순서 반대인 것에 유의!