수강 날짜 20.07.21
09 강의명 : LIMIT절
10 강의명 : FETCH절
특정 집합을 출력 시 출력하는 행의 수를 한정하는 역할을 한다. 부분 범위 처리시 사용.
**실습
-리미트 안 할 시
SELECT film_id, title, release_year FROM film ORDER BY film_id;
-리미트 할 시
SELECT film_id, title, release_year FROM film ORDER BY film_id LIMIT 5;
원하는 값의 개수를 조절 할 수 있다.
상위 값 일부분 혹은 하부 값 일부분을 구할 수 있다.
우리는 첫번째부터 몇개 까지를 구할 수 있게 되었다.
그렇다면 중간 부터 집계는 불가능한가?
중간 부터 해결을 위해서는 'OFFSET'을 사용한다.
특정 집합을 출력 시 출력하는 행의 수를 한정하는 역할을 한다. 부분 범위 처리시 사용.
실습
SELECT film_id, title, release_year FROM film ORDER BY film_id LIMIT 4 OFFSET 3;
보면 4,5,6,7 번째 값이 출력된 것을 확인 할 수 있다.
LIMIT X
OFFSET Y
-> X이후 Y번째 까지 출력한다.
리미트절을 똑같이 구현할 수 있다.
특정 집합을 출력 시 출력하는 행의 수를 한정하는 역할을 한다. 부분 범위 처리시 사용된다.
FETCH 절 문법 :
이렇게 만 보았을 때 잘 이해가 가지 않아 쿼리를 치고 그 결과를 비교하여 무슨 의미인지 확인을 해보았다.
쿼리1
select film_id , title from film order by title fetch first 1 row only --1은 생략 가능
결과
쿼리2
select film_id , title from film order by title fetch first 4 row only
결과
지정한 숫자 만큼 나온다 -> LIMIT과 같다
둘의 차이점이 궁금하여 찾아보니
https://cording-artist.tistory.com/121
이 사이트를 참고하니 DB종류에 따라 LIMIT인지 FETCH인지 정해진다고 한다. PostgreSql은 둘 다 가능하다고 한다.
쿼리3(OFFSET 병행)
select film_id , title from film order by title offset 5 rows fetch first 5 row only
OFFSET LIMIT과 동일하다.