페이지 나누기 기능에 주로 사용한다.
커뮤니티 사이트 등에서 게시판 하단 부분 [ 1 2 3 4 5 다음 ] 과 같이 표시된 것이 그 예이다.
페이지 나누기 기능은 LIMIT를 사용해 간단히 구현할 수 있다.
한 페이지당 5건의 데이터를 표시하도록 한다면
첫번째 페이지의 경우 LIMIT 5로 결과값을 표시하면 된다.
그 다음 페이지에서는 6번째 행부터 5건의 데이터를 표시하도록 한다.
이때 6번째 행부터 라는 표현은 결과값으로부터 데이터를 취득할 위치를 가리키는 것으로
LIMIT구에 OFFSET으로 지정할 수 있다.
예시

하나의 테이블이 위와 같고, 한 페이지에 5개씩 표시한다고 가정하자.
OFFSET에 의한 시작 위치 지정은 LIMIT 뒤에 기술한다. 위치 지정은 0부터 시작하는 컴퓨터 자료구조의 배열 인덱스를 떠올리면 이해가 쉽다.
간단하게 정리하면 시작할행 빼기(-) 1로 기억하면 좋다.
예를들어 첫번째 행부터 5건을 취득한다면, 1-1로 위치는 0이 되어 OFFSET 0으로 지정하면 되는 것이고,
여섯번째 행부터 5건을 취득한다면, 6-1로 위치는 5가 되어 OFFSET 5로 지정하면 되는 것이다.
첫번째 페이지에 표시할 데이터를 구하기 위해서는
SELECT * FROM EXAMPLE LIMIT 5 OFFSET 0; (OFFSET은 생략가능하며 기본값은 0이다.)
결과 : 1 2 3 4 5
두번째 페이지에 표시할 데이터를 구하기 위해서는
SELECT * FROM EXAMPLE LIMIT 5 OFFSET 5;
결과 : 6 7
* SQL 첫걸음 도서 공부 중 기록
'개인 공부 (23.07~' 카테고리의 다른 글
[SQL] concat, substring, trim, char_length 함수 (0) | 2023.10.31 |
---|---|
[SQL] ROUND 함수 (반올림) (0) | 2023.10.31 |
스프링 컨테이너의 관리 대상은? (0) | 2023.10.30 |
더티체킹, @Transcational (0) | 2023.10.30 |
영속성 컨텍스트 (0) | 2023.10.30 |