MySQL LIMIT 절의 기본 개념
MySQL에서 LIMIT 절은 쿼리 결과 중 원하는 만큼의 행만 가져올 때 사용합니다. 특히 시작 인덱스, 행 개수 형태로 범위를 지정하면, 결과 집합의 특정 구간만 손쉽게 추출할 수 있습니다.
기본 문법
SELECT * FROM 테이블명 LIMIT 시작인덱스, 가져올행수;
여기서 시작 인덱스는 0부터 시작한다는 점에 유의해야 합니다. 즉, 첫 번째 행의 인덱스는 0입니다. 따라서 처음 3개 행을 조회하려면 LIMIT 0, 3과 같이 작성하면 됩니다.
예제 테이블 생성
먼저 실습용 테이블을 생성하겠습니다.
mysql> create table demo67 -> ( -> id int, -> user_name varchar(40), -> user_country_name varchar(20) -> ); Query OK, 0 rows affected (0.72 sec)
샘플 데이터 삽입
INSERT 문을 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into demo67 values(10,'John','US'); Query OK, 1 row affected (0.19 sec) mysql> insert into demo67 values(1001,'David','AUS'); Query OK, 1 row affected (0.14 sec) mysql> insert into demo67 values(101,'Mike','UK'); Query OK, 1 row affected (0.09 sec) mysql> insert into demo67 values(102,'Carol','AUS'); Query OK, 1 row affected (0.11 sec) mysql> insert into demo67 values(110,'Chris','US'); Query OK, 1 row affected (0.36 sec) mysql> insert into demo67 values(105,'David','AUS'); Query OK, 1 row affected (0.08 sec)
전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from demo67;
실행 결과는 다음과 같습니다.
+------+-----------+-------------------+ | id | user_name | user_country_name | +------+-----------+-------------------+ | 10 | John | US | | 1001 | David | AUS | | 101 | Mike | UK | | 102 | Carol | AUS | | 110 | Chris | US | | 105 | David | AUS | +------+-----------+-------------------+ 6 rows in set (0.00 sec)
총 6개의 행이 저장되어 있는 것을 확인할 수 있습니다.
LIMIT로 처음 3개 행만 조회하기
이제 LIMIT 절에 시작 인덱스 0과 행 수 3을 지정하여 처음 세 개의 행만 가져오는 쿼리를 실행해 보겠습니다.
mysql> select *from demo67 limit 0,3;
실행 결과는 다음과 같습니다.
+------+-----------+-------------------+ | id | user_name | user_country_name | +------+-----------+-------------------+ | 10 | John | US | | 1001 | David | AUS | | 101 | Mike | UK | +------+-----------+-------------------+ 3 rows in set (0.00 sec)
정리
LIMIT 시작인덱스, 행수 형식을 활용하면 결과 집합에서 원하는 위치의 데이터만 간편하게 추출할 수 있습니다. 예를 들어 두 번째 행부터 3개를 가져오고 싶다면 LIMIT 1, 3처럼 시작 인덱스만 조정하면 됩니다. 이 방식은 페이지네이션(pagination) 기능을 구현할 때도 널리 활용됩니다.