예를 들어 1000행의 데이터가 있다 해도 우리는 그것을 클라이언트에 한번에 다 보내지 않는다.
일반적으로 20~25개 정도의 데이터를 제한적으로 보낸다 .
이 작업을 도와주는 것이 limit 이다.
limit는 데이터를 제한적으로 나눌 수 있도록 한다.
books 테이블을 먼저 보면,
19개의 데이터로 이루어져 있다. 이것을 5개를 제한하여 나눠보겠다.
1
2
|
select *
from books limit 5;
|
cs |
위는, books테이블에서 첫 행부터 다섯개의 행까지 모든 컬럼 데이터를 가져오겠다는 뜻이다.
실행시 화면으로, 첫 행부터 다섯개의 행까지 가져왔다.
이 데이터를 클라이언트에게 넘겼다고 가정할때 , 중복되지 않게 그 이후 데이터는 어떻게 넘길까.
1
2
|
select * -- 그 다음부터 5개
from books limit 5, 5;
|
cs |
위와 같이 코드를 작성하는데 , books테이블에서 여섯번째 행부터 5개를 가져오라는 뜻이다.
여기서 행을 셀때는 0번부터 세기 때문에, 첫째행이 0부터가 된다.
그래서 limit 5,5 가 여섯번째 행부터 5개의 행이다.
limit 5, 5에서 첫번째 5는 offset이라 부른다.
그리고 또 다시 중복되지 않게 데이터 5개를 보낸다고 하면
1
2
|
select * -- 그 다음부터 또 5개
from books limit 10, 5;
|
cs |
이런식으로 offset을 10으로 쓰고, 5개의 데이터를 가져온다.
offset 10은 11번째 데이터이다.
대부분의 데이터는 정렬이 된 상태에서 작업이 이루어진다.
정렬하고 limit 을 이용하자면 코드는
1
2
3
|
select *
from books
order by released_year desc limit 5;
|
cs |
이렇게 쓴다.
먼저 released_year 컬럼을 내림차순으로 정렬한 뒤 그 데이터를 처음부터 5개만 제한적으로 한다.
실행 시를 보면
released_year가 정렬되고 데이터가 5개만 제한적으로 조회되는 것을 확인 할 수 있다.
이 후의 데이터를 5개씩 보낸다고 가정하면, 앞서 위에서 했던 것과 마찬가지로 offset을 조정하면 된다.
select *
from books
order by released_year desc limit 5,5 ; offset 5부터, 5개의 데이터
select *
from books
order by released_year desc limit10,5; offset 10부터, 5개의 데이터
'IT 프로그래밍 관련 > MySQL' 카테고리의 다른 글
MySQL 시간관련데이터 처리 (0) | 2021.03.16 |
---|---|
MySQL 문자열에 포함된 단어 검색 like (0) | 2021.03.16 |
MySQL 테이블 데이터 정렬하기 (0) | 2021.03.16 |
MySQL 문자열 함수들 (0) | 2021.03.16 |
MySQL data처리( select , update, delete ) (0) | 2021.03.15 |
댓글