[SQL] 11. 결과 행 제한하기 - LIMIT

uuuu.jini·2023년 1월 24일
0

SQL 첫걸음

목록 보기
11/36
post-thumbnail

SELECT 명령에서는 결괏값으로 반환되는 행을 제한할 수 있다. LIMIT 구로 결과 행을 제한한다.

SELECT 열명 FROM 테이블명 LIMIT 행수 [OFFSET 시작행]

1. 행수 제한


LIMIT구는 표준 SQL이 아닌 MySQL과 PostgreSQL에서 사용할 수 있는 문법이다. LIMIT 구는 SELECT 명령의 마지막에 지정하는 것으로 WHERE 구나 ORDER BY구의 뒤에 지정한다.

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수

  • 예) LIMIT 10 -> 10개이 행이 클라이언트로 반환

- 정렬한 후 제한하기

열을 내림차순으로 정렬한 뒤 상위 3건 취득
SELECT * FROM sample33 ORDER BY no DESC LIMIT 3;

- LIMIT를 사용할 수 없는 데이터베이스에서의 행 제한

  • SQL server에서는 LIMIT와 비슷한 기능을 하는 TOP을 사용할 수 있다.
    - SELECT TOP 3 * FROM sample33;
  • Oracle에는 ROWNUM이라는 열을 사용해 WHERE 구로 조건을 지정하여 행을 제한
    • SELECT * FROM sample33 WHERE ROWNUM <= 3;
    • ROWNUM은 클라이언트에게 결과과 반환될 때 각 행에 할당되는 행 번호이다. 단, ROWNUM으로 행을 제한할 때는 WHERE 구로 지정하므로 정렬하기전에 처리되어 LIMIT로 행을 제한한 경우와 결과값이 다르다.

2. 오프셋 지정


대량의 데이터를 하나의 페이지에 표시 X -> 페이지 나누기 기능 사용

  • LIMIT를 사용하여 구현
  • OFFSET: 결괏값으로부터 데이터를 취득할 위치를 가리키는 것 (해당 값 다음 값부터 취득)
  • 시작할 행 -1

    SELECT 열명 FROM 테이블명 LIMIT 행수 OFFSET 위치

profile
멋쟁이 토마토

0개의 댓글