이전 포스트에 이어서 작성하는 내용입니다.
2022.01.25 - [공부/mysql] - Mysql 기본명령어 6 (ORDER BY)
Mysql 기본명령어 6 (ORDER BY)
이전 포스트에 이어서 작성하는 내용입니다. 2022.01.25 - [공부/mysql] - Mysql 기본명령어 5 (LIKE) Mysql 기본명령어 5 (LIKE) 지난 포스트에 이어서 작성하는 내용입니다. 2022.01.24 - [공부/mysql] - Mysql..
signature95.tistory.com
이번에는 SELECT 명령어로 나오는 출력물의 행을 제한할 수 있는 LIMIT에 대해서 알아보고자 합니다.
명령어의 형식은 다음과 같습니다
SELECT row_name FROM table_name LIMIT row_num [OFFSET start_row] ;
또한, WHERE, ORDER BY로 조건문을 넣는 경우,
SELECT row_name FROM table_name WHERE 조건식 ORDER BY row_name LIMIT row_num [OFFSET start_row] ;
하지만, LIMIT 명령어는 표준 SQL 명령이 아니라 mysql, postgreSQL에서만 사용가능한 문법입니다.
그렇다면 바로 실습을 하기 전에 테이블을 살펴보겠습니다.

만일 LIMIT 3으로 걸어 놓고 시작하는 행을 2번째로 설정한다면 다음과 같이 시행할 수 있습니다.

LIMIT 기능을 사용하는 경우는 보통 웹을 구현할 때, 한 페이지에 5개, 10개 등을 표시하고 다음 페이지에 다음 내용을 표시하는 경우 사용할 수 있을 것입니다.

보통 커뮤티티, 홈페이지 등 해당 클라이언트의 브라우저에서 모든 정보를 한번에 불러오게 된다면 속도, 기능, 효율성 측면에서 다소 떨어지기 때문에 pagination (페이지 나누기) 기능을 사용하게 됩니다.
이를 구현하게 된다면, LIMIT에는 한번에 몇개의 데이터를 볼 것인지 설정할 수 있을 것이고, 그에 맞춰 OFFSET도 설정하면 되는 것입니다.
LIMIT (20,40,50,100개씩 출력하도록 입력하는 변수) OFFSET (0 + 20,40,50,100개씩 출력하도록 입력하는 변수 * 페이지 개수) 이런 형태로 구현할 수 있는 것이죠.
그렇다면 이번에는 인터넷 쇼핑에서 제공하는 데이터를 예시로 봅시다. 보통 판매 TOP, 리뷰평점 TOP 등 상위 몇개를 표시하는 부분을 사이트에서 확인할 수 있을 것입니다.
다시 돌아와서 table에 있는 데이터에서 상위 3개를 뽑아보도록 해봅시다. 이는 ORDER BY를 응용해서 내림차순으로 정렬하게 된다면, 상위 3개만 뽑을 수 있을 것입니다.
따라서 이번에는 상위 3개의 no를 뽑아보도록 하겠습니다.
명령문은 다음과 같습니다.
SELECT * FROM sample33 ORDER BY no DESC LIMIT 3;

'공부 > mysql' 카테고리의 다른 글
Mysql 기본명령어 9 (문자열 연산) (0) | 2022.02.07 |
---|---|
Mysql 기본명령어 8 (수치 연산) (0) | 2022.01.27 |
Mysql 기본명령어 6 (ORDER BY) (0) | 2022.01.25 |
Mysql 기본명령어 5 (LIKE) (0) | 2022.01.25 |
Mysql 기본 명령어 4 (AND, OR, NOT 논리연산자) (1) | 2022.01.24 |
댓글