본문 바로가기
programming/DataManage

mysql SELECT LIMIT 정해진 수만큼 조회하기 using mysql SELECT LIMIT Statement

by 개코 - 개발과 코딩 2022. 6. 11.

mysql의 SELECT 구문 중 LIMIT 구문을 사용하면 수많은 조회 결과 중 일부만 가져올 수 있다. LIMIT 를 사용하는 방법은 2가지가 있는데, 갯수만을 지정하는 방법과 인덱스와 갯수를 같이 지정하는 방법이 있다. 테이블의 인덱스는 행을 기준으로 0부터 시작한다.

mysql SELECT LIMIT 정해진 수만큼 조회하기
using mysql SELECT Top Statement

테이블의 데이터를 조회하고 검색할 때 사용하는 것이 SELECT 지만, 많은 데이터가 한꺼번에 결과로 나온다.

일반적인 데이터베이스 툴을 사용하면 자동으로 전체에서 일부 내용만 받아오긴 하지만 한꺼번에 많은 결과를 받아오는 것은 전송량이나 데이터양이나 부하가 걸리고 처리속도는 느려진다.

mysql 의 SELECT 는 LIMIT 키워드를 이용하여 조회 결과 또는 검색 결과를 특정 갯수만큼 나누어 화면에 표시할 수 있다.

게시판과 같은 업무적 로직에도 자주 사용되는데 페이징이 여기에 속한다.

SELECT LIMIT 조회 수 지정

mysql 에서 데이터 조회시 갯수를 지정하기 위해 LIMIT 절을 사용하는데 LIMIT 는 사용법이 2가지이다.

조회되는 결과의 갯수를 지정하는 방법과 테이블의 인덱스와 함께 갯수를 지정하는 방법이 있다.

갯수는 말 그대로 검색된 자료의 처음부터 지정된 갯수만큼 표현한다.

인덱스는 테이블의 각각의 데이터를 말하며 0부터 시작하는데 검색된 자료중 특정위치에서 지정된 갯수만큼 데이터를 결과로 보고 싶을 때 사용한다.

SELECT * FROM 테이블명
 LIMIT 갯수
;

SELECT * FROM 테이블명
 LIMIT 인덱스, 갯수
;

SELECT * FROM 테이블명
 WHERE 조건절
 LIMIT 인덱스, 갯수
;

샘플코드

위의 내용으로 mysql 예제를 만들어 본다.

테이블을 생성하고 삭제하는 과정까지 있으며, 중간에 있는 LIMIT 구문이 있는 부분만 확인해 보면 된다.

LIMIT 는 조회 결과 중 가장 처음부터 지정된 갯수만큼 보여주는 역할을 한다.

만약, 특정 부분부터 지정된 갯수를 보고 싶다면 인덱스를 지정해 주면 된다.

/** tb_sample 테이블을 생성 */
CREATE TABLE tb_sample (
	idx INT,
	company VARCHAR(250),
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

/** tb_sample 테이블에 데이터 추가  */
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '1', '현대자동차', NULL, '내용1', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '2', '기아자동차', '제목2', NULL, NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '3', '현대자동차', NULL, '내용3', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '4', '기아자동차', '제목4', NULL, NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '5', '쌍용자동차', NULL, '내용5', NOW(), NOW() )
;

/** tb_sample 테이블 조회  */
SELECT * FROM tb_sample
 LIMIT 3
;

SELECT * FROM tb_sample
 LIMIT 3, 3
;

/** tb_sample 테이블 데이터 삭제  */
DELETE FROM tb_sample
;

/** tb_sample 테이블 데이터 완전 삭제  */
TRUNCATE tabLE tb_sample
;

/** tb_sample 테이블 삭제  */
DROP TABLE tb_sample
;

/*-----*/

위의 구문에는 LIMIT 를 사용하는 2가지 형태가 있다.

첫번째는 갯수만 지정하였으며, 두번째는 인덱스와 갯수를 지정하였다.

LIMIT 3 의 의미는 조회된 결과에서 3개의 결과만을 보여준다.

LIMIT 3,3 의 의미는 조회된 결과 중 인덱스 3부터 3개의 결과를 보여주도록 한다.

테이블의 인덱스는 행을 중심으로 0부터 시작된다.

결과를 보자.

반응형

댓글