All Articles

SQL 첫걸음 - 11강 결과 행 제한하기 - LIMIT

11강 결과 행 제한하기 - LIMIT

행수 제한

LIMIT 구는 표준 SQL은 아니고 MySQL과 PostgreSQL에서만 사용할 수 있다. LIMIT 구로 결과로 출력되는 행 수를 지정할 수 있다.

SELECTFROM 테이블 WHERE 조건식 ORDER BYLIMIT 행 수;

numbers_table

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까지 반환했다.

오프셋(시작점) 지정

SELECTFROM 테이블 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을 사용한다.

SELECTFROM 테이블 WHERE ROWNUM <= 행 수;