PostgreSQL의 행 제한
PostgreSQL에서는 SELECT
문을 활용하여 테이블의 행을 나열할 수 있습니다. 그러나 선택적 행만 나열하려면 그에 따라 다양한 절을 사용해야 합니다.
테이블에서 선택적인 행을 표시하기 위해 SELECT
문과 함께 사용되는 한 절은 LIMIT
절입니다. LIMIT
절은 결과 데이터에 나열되는 행 수를 제한할 수 있습니다.
이 기사에서는 LIMIT
키워드와 PostgreSQL에서의 용도에 대해 설명합니다.
LIMIT
절을 사용하여 PostgreSQL에서 행 제한
LIMIT
절의 구문은 다음과 같습니다.
LIMIT { count }
여기에서 count
필드는 계산되고 표시될 행 수를 나타냅니다. ALL
키워드를 count
대신 사용하여 쿼리에서 반환된 모든 행을 표시할 수 있으며 제한 없음과 동일한 효과가 있습니다.
다음 테이블이 있는 샘플 데이터베이스를 통해 LIMIT
절이 어떻게 사용되는지 알아보겠습니다.
create table dummy
(
num int not null,
constraint PK primary key (num)
);
이제 이 샘플 테이블을 몇 가지 값으로 채웁니다.
insert into dummy values (150), (120), (330), (240), (150), (60), (270), (110), (400), (350);
간단한 SELECT * from dummy
문을 사용하여 이 테이블의 행을 나열하면 다음과 같은 결과를 얻게 됩니다.
처음 5개 행만 표시하려면 어떻게 해야 합니까? 이를 위해 LIMIT
절을 쉽게 사용할 수 있습니다.
다음과 같은 방법으로 사용할 수 있는 SELECT
문의 선택적 기능입니다.
SELECT * from dummy
LIMIT 5;
그러면 테이블의 처음 5개 행만 나열됩니다.
참고:
LIMIT
절에 지정된 행의 값이 테이블에 있는 행보다 크면 모든 테이블 행이 표시됩니다.
그러나 LIMIT
절은 행이 정렬되지 않은 경우 사용하기에 적합하지 않습니다. 즉, 행의 순서를 예측할 수 없으며 LIMIT
쿼리가 다양한 결과를 표시할 수 있습니다. SELECT
쿼리에서 ORDER BY
절과 함께 LIMIT
절을 사용하여 이에 대응할 수 있습니다.
ORDER BY
명령을 사용하면 테이블의 하나 이상의 속성을 기준으로 데이터를 정렬할 수 있습니다. 해당 속성 세트를 사용하여 오름차순 또는 내림차순으로 정렬할 수도 있습니다.
dummy
테이블에서 ORDER BY
와 함께 LIMIT
절을 사용하는 효과를 살펴보겠습니다. 코드는 다음과 같습니다.
SELECT * from dummy
ORDER BY num
LIMIT 5;
그러면 다음과 같은 결과가 나타납니다.
ORDER BY
절이 기본적으로 데이터를 오름차순으로 정렬했기 때문에 쿼리가 num
의 가장 작은 값 5개를 반환한 것을 볼 수 있습니다. 따라서 LIMIT
및 ORDER BY
절을 사용하여 최고 또는 최저 지정된 값 수를 가져올 수 있습니다.
첫 번째 행부터 시작하는 행을 표시하지 않으려면 어떻게 해야 합니까? LIMIT
절은 이를 수행할 수 있는 유연성도 부여합니다.
그러면 구문은 다음과 같이 됩니다.
LIMIT { count }
OFFSET { start }
start
대신 값은 지정된 행 수가 표시되기 전에 건너뛸 행 수를 지정합니다. 즉, 시작
행 수를 건너뛰고 다음 개수
행 수가 출력으로 표시됩니다.
참고:
OFFSET
절에 지정된start
값이 테이블에 있는 행보다 크면 테이블 행이 표시되지 않습니다.
dummy
테이블에서 다음 쿼리를 실행하여 OFFSET
사용을 시연해 보겠습니다.
SELECT * from dummy
ORDER BY num
LIMIT 5
OFFSET 2;
이 코드는 세 번째 행에서 시작하여 지정된 대로 처음 두 개를 건너뛰고 다음과 같이 다음 다섯 개를 표시합니다.
참고:
count
대신 값을NULL
로 설정하면 제한 없음과 동일한 효과를 가지며 결과 행을 모두 표시합니다.start
대신 값을NULL
로 설정하면OFFSET 0
과 동일한 효과를 가지며 첫 번째 행부터 표시를 시작합니다.
PostgreSQL은 테이블에서 필요한 수의 행만 출력하는 데 사용할 수 있는 LIMIT
절과 동등한 기능을 제공합니다. 이것은 아래에 설명되어 있습니다.
FETCH FIRST
절을 사용하여 PostgreSQL에서 행 제한
LIMIT
절의 대안은 FETCH FIRST
절이며 구문은 다음과 같습니다.
FETCH FIRST { count } ROWS ONLY;
여기서도 count
는 표시하려는 행 수로 대체됩니다. 동일한 dummy
테이블을 사용하여 FETCH FIRST
절이 코드에서 어떻게 사용되는지 살펴보겠습니다.
SELECT * from dummy
ORDER BY num
FETCH FIRST 5 ROWS ONLY;
이것은 LIMIT 5
를 쓰는 것과 같은 효과를 가지며 다음과 같은 결과 행을 표시합니다.
그러나 첫 번째 행부터 시작하는 행을 표시하지 않으려면 FETCH FIRST
와 함께 OFFSET
절을 사용할 수 있습니다. 이는 다음과 같은 방식으로 작성됩니다.
OFFSET { start }
FETCH FIRST { count } ROWS ONLY;
다음 쿼리 형식으로 dummy
테이블에서 이를 사용하겠습니다.
SELECT * from dummy
ORDER BY num
OFFSET 2
FETCH FIRST 5 ROWS ONLY;
이렇게 하면 처음 두 개를 건너뛴 후 다음 행을 가져와서 인쇄합니다.
이는 PostgreSQL에서 LIMIT
절을 사용하여 SELECT
쿼리의 결과로 표시되는 행 수를 제한하는 다양한 방법을 요약한 것입니다. LIMIT
및 FETCH FIRST
명령을 서로의 대안으로 사용하는 방법을 배웠기를 바랍니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub