11강 결과 행 제한하기 - LIMIT
행수 제한
LIMIT 구는 표준 SQL은 아니고 MySQL과 PostgreSQL에서만 사용할 수 있다. LIMIT 구로 결과로 출력되는 행 수를 지정할 수 있다.
SELECT 열 FROM 테이블 WHERE 조건식 ORDER BY 열 LIMIT 행 수;
no |
---|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
만약 이 테이블에서 위에서부터 3개 행만 보고싶다면,
SELECT * FROM numbers_table LIMIT 3;
no |
---|
1 |
2 |
3 |
3개 행만 반환됐다. LIMIT 3
은 최대 3개 행만 반환하므로 만약 원 테이블이 1행짜리 테이블이었다면 한 개 행만 반환한다.
정렬해서 리턴하기
SELECT * FROM numbers_table ORDER BY no DESC LIMIT 3;
no |
---|
7 |
6 |
5 |
테이블을 내림차순으로 정렬한 후 LIMIT 3
을 걸어줬으므로 7부터 5까지 반환했다.
오프셋(시작점) 지정
SELECT 열 FROM 테이블 LIMIT 행 수 OFFSET 위치;
오프셋을 따로 지정해주지 않으면 기본은 0이다. 배열에서 인덱스를 셀 때처럼 0부터 시작하므로 헷갈리지 않도록 주의한다.
SELECT * FROM numbers_table LIMIT 3 OFFSET 2;
no |
---|
3 |
4 |
5 |
위 명령어에서는 OFFSET 2
이므로 2번 행(세 번째 행, 값 3)부터 3개 행을 반환한다.
LIMIT을 사용할 수 없는 데이터베이스에서의 행 제한
SQL Server에서는 TOP
을 사용한다.
SELECT TOP 행수 열 FROM 테이블;
Oracle에서는 LIMIT도 TOP도 없다. 대신 ROWNUM
을 사용한다.
SELECT 열 FROM 테이블 WHERE ROWNUM <= 행 수;