[MariaDB Tutorial 번역] 8. Limit
[MariaDB Tutorial 번역 글]
- Select : https://rural-mouse.tistory.com/43
- Order By : https://rural-mouse.tistory.com/44
- Where : https://rural-mouse.tistory.com/45
- Distinct : https://rural-mouse.tistory.com/46
- Between : https://rural-mouse.tistory.com/48
- Like : https://rural-mouse.tistory.com/49
- In : https://rural-mouse.tistory.com/50
- Limit ←←
- Is Null : https://rural-mouse.tistory.com/52
- Joins : https://rural-mouse.tistory.com/53
- Inner Join : https://rural-mouse.tistory.com/54
- Left Join : https://rural-mouse.tistory.com/55
- Group By : https://rural-mouse.tistory.com/56
- Having : https://rural-mouse.tistory.com/59
- Subqueries : https://rural-mouse.tistory.com/60
- Insert : https://rural-mouse.tistory.com/61
- Insert Multiple Rows : https://rural-mouse.tistory.com/62
- Insert Into Select : https://rural-mouse.tistory.com/63
- Update : https://rural-mouse.tistory.com/64
원문 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-limit/
여기에 있는 모든 예제는 MariaDB sample database인 nation을 가지고 진행됩니다.
만약 읽고 따라 해 보시는 게 목적이라면 다운로드를 받고 읽어보시길 추천합니다.
원본 링크 : https://www.mariadbtutorial.com/getting-started/mariadb-sample-database/
MariaDB의 limit 구문에 대한 소개
limit 구문은 Select 명령문에서 반환되는 row의 개수를 지정할 수 있습니다.
다음은 limit 구문의 문법 예시입니다.
select select_list
from tale_name
order by sort_expression
limit n [offset m];
- n 은 반환되는(return) 되는 row의 개수입니다.
- m은 n개의 row를 반환하기 전에 건너뛸 row의 개수 입니다.
Select 명령문은 row를 반환할 때 순서가 지정되지 않은 채로 반환하므로 limit 구문도 마찬가지로 Order By 절 없이 사용된다면 지정하지 않은 row들이 반환됩니다.
limit 구문은 항상 order by 구문과 함께 사용되어야 반환되는 row를 예측할 수 있게 만들어 줍니다.
MariaDB는 limit의 대체 문법도 다음과 같이 제공합니다.
LIMIT m, n;
m만큼 row를 건너뛰고 n개의 row를 반환하는 문법입니다.
MariaDB의 limit 구문 예제
샘플 데이터베이스의 countries Table을 사용하도록 하겠습니다.
A) MariaDB의 limit 구문 예제
다음 명령은 name으로 정렬된 모든 countries의 name을 반환해줍니다.
select
name
from
countries
order by
name;
첫 5개의 나라만 가져오고 싶다면 위의 쿼리문에 limit 절을 붙여주면 됩니다.
select
name
from
countries
order by
name
limit 5;
첫 5개의 나라는 건너뛰고 다음의 10개의 국가만 가져오고 싶다면 offset 절을 사용하면 됩니다.
select
name
from
countries
order by
name
limit 10 offset 5;
다음 쿼리문은 limit의 대체 문법을 사용한 것입니다.
select
name
from
countries
order by
name
limit 5, 10;
B) MariaDB의 상위 N개의 row를 가져오는 limit 절의 예제
limit 절은 가장 큰 10개의 국가 같은 상위 N개를 가져오는데 매우 유용합니다.
select
name,
area
from
countries
order by
area desc
limit 10;
- 첫 번째로 area가 큰 나라부터 작은 나라 순으로 countries를 정렬합니다.
- 두 번째로 select문을 사용하여 첫 10개의 countries만 가져옵니다.
C) MariaDB의 N번째 row를 가져오는 구문 예제
limit 절을 사용하여 n번째 row를 가져올 수도 있습니다. 예를 들면 2번째로 큰 나라를 가져오려면 다음의 명령문과 같습니다.
select
name,
area
from
countries
order by
area,
name
limit 1,1;
첫 번째로 area 순으로 countries를 정렬한 뒤 첫번째 row를 건너뛰고 다음 row를 가져오면 됩니다. 이렇게 하면 그 row는 두 번째로 큰 나라가 됩니다.
만약 2개 이상의 동일한 면적을 가진 2번째로 큰 나라가 있다면 이 쿼리는 오직 1개의 row만을 반환해줍니다.
이번 튜토리얼에서는 반환되는 row의 개수를 조절할 수 있는 limit에 대해 배워봤습니다.
다음은 값이 null 값인지 확인할 수 있는 is null 구문에 대해 배워보겠습니다