저자 : 아사이 아츠시
출판 : 한빛미디어
발매 : 2015.11.01
- LIMIT 구로 결과 행을 제한하는 방법 :
SELECT 열명 FROM 테이블명 LIMIT 행수 [OFFSET 시작행]
1. 행 수 제한
- LIMIT 구는 표준 SQL은 아님. MySQL과 PostgreSQL에서 사용할 수 있는 문법임.
- LIMIT 구는 SELECT 명령의 마지막에 지정하는 것으로 WHERE구나 ORDER BY구의 뒤에 지정.
: SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수 (최대행수)
* 정렬한 후 제한하기
- LIMIT는 반환할 행수를 제한하는 기능으로, WHERE구로 검색한 후 ORDER BY로 정렬된 뒤 최종적으로 처리.
no열을 내림차순으로 정렬한 뒤에 상위 3개 행 조회
* LIMIT를 사용할 수 없는 디비에서의 행 제한.
- LIMIT는 표준 SQL이 아니기 때문에 MySQL과 PostgreSQL 이외의 데이터베이스에서는 사용 불가.
- SQL Server에서는 비슷한 'TOP'를 사용. 아래와 같이 TOP 뒤에 최대 행수를 지정.
: SELECT TOP 3 * FROM sample33;
- Oracle에서는 ROWNUM이라는 열을 사용해 WHERE 구로 조건을 지정하여 행을 제한.
: SELECT * FROM sample33 WHERE ROWNUM <=3;
ROWNUM은 클라이언트에게 결과가 반환될 때 각 행에 할당되는 행 번호.
(단,ROWNUM으로 행을 제한할 때는 WHERE 구로 지정하므로 정렬하기 전에 처리되어 LIMIT로 행을 제한한 경우와 결과값이 다름.)
2. 오프셋 지정
- 대량의 데이터를 나타낼 때, 일반적으로 페이지 나누기(pagination)기능을 사용. 이 페이지 나누기 기능을 LIMIT를 사용해 간단히 구현 가능.
만약 한 페이지당 5건의 데이터를 표시하도록 한다면 첫번째 페이지의 경우 LIMIT 5로 결괏값을 표시. 그 다음 페이지에서는 6번째 행부터 5건의 데이터를 표시하도록 해야하는데 이때 '6번째 행부터'라는 표현은 결괏값으로부터 데이터를 취득할 위치를 가리키는 것으로 LIMIT구에 OFFSET으로 지정 가능.
출처 : SQL 첫걸음
: SELECT 열명 FROM 테이블명 LIMIT 행수 OFFSET 위치(인덱스 0부터)
- LIMIT구의 OFFSET은 생략 가능하며 생략 시 기본값은 0.
'Study > DB' 카테고리의 다른 글
[SQL 첫걸음] 3장.정렬과 연산 - 13.문자열 연산 (0) | 2018.08.30 |
---|---|
[SQL 첫걸음] 3장.정렬과 연산 - 12.수치 연산 (0) | 2018.08.29 |
[SQL 첫걸음] 3장.정렬과 연산 - 10.복수의 열을 지정해 정렬 (0) | 2018.08.28 |
[SQL 첫걸음] 3장.정렬과 연산 - 09.정렬(ORDER BY) (0) | 2018.08.28 |
[SQL 첫걸음] 2장.테이블에서 데이터 검색 - 08.패턴 매칭에 의한 검색(LIKE) (0) | 2018.08.28 |