[강의명]
패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반
[수강목록]
09. 데이터 조회와 필터링 - 05. LIMIT 절
10. 데이터 조회와 필터링 - 06. FETCH 절
[강의내용]
09. 데이터 조회와 필터링 - 05. LIMIT 절
특정 집합을 출력시 출력하는 행의 수를 한정하는 역할을 한다. 부분 범위 처리시 사용된다. postgreSQL, MySQL, 구글 빅쿼리 등에서 지원한다. (오라클은 지원 X)
문법
-- (기본)
SELECT *
FROM TABLE_NAME
LIMIT N;
-- (OFFSET)
SELECT *
FROM TABLE_NAME
LIMIT N OFFSET M;
출력하는 행의 수를 지정하면서 시작위치를 지정한다. OFFSET M값의 시작위치는 0이다.
예를 들어 LIMIT 4 OFFSET 5이면 6,7,8,9가 출력된다.
실습
SELECT film_id, title, release_year
FROM film
ORDER BY film_id
LIMIT 5;
5개 로우만 출력된 것을 볼 수 있다.
SELECT film_id, title, release_year
FROM film
ORDER BY film_id
LIMIT 5
OFFSET 3;
LIMIT 5 OFFSET 3 은 4,5,6,7,8 번호의 행을 출력하는 것을 볼 수 있다.
SELECT rental_rate, film_id, title, release_year
FROM film
ORDER BY rental_rate DESC
LIMIT 10;
10. 데이터 조회와 필터링 - 06. FETCH 절
LIMIT와 비슷함. 특정 집합을 출력시 출력하는 행의 수를 한정하는 역할을 한다. 부분범위 처리시 사용된다.
fetch는 oracle에서도 지원함.
문법
SELECT *
FROM TABLE_NAME
FETCH FIRST N ROW ONLY
출력하는 행의 수를 지정한다. N을 입력하지 않고 ROW ONLY만 입력하면 1건만 출력한다.
SELECT *
FROM TABLE_NAME
OFFSET N ROWS
FETCH FIRST N ROW_ONLY
출력하는 행의 수를 지정하면서 시작 위치를 지정한다. OFFSET N값의 시작위치는 0이다.
실습
SELECT film_id, title
FROM film
ORDER BY title
FETCH FIRST ROW ONLY;
N ROW ONLY에서 N값에 숫자를 생략하면 1건만 출력하는 것을 볼 수 있다.
SELECT film_id, title
FROM film
ORDER BY title
OFFSET 5 ROWS
FETCH FIRST 5 ROW ONLY;
LIMIT절은 항상 마지막에 써주기 (ORDER BY보다도 아래)
FETCH절도 마찬가지, 하지만 다른점이 있다면 OFFSET을 붙일때
LIMIT에서는 OFFSET을 맨 밑에 쓰고, FETCH에서는 FETCH보다 OFFSET을 위에 쓴다