반갑습니다
저번 포스트에서는 ORDER BY 키워드를 이용해서
데이터를 조회할 때 오름차순 또는 내림차순으로 정렬했었습니다 ^^
이번에는 LIMIT키워드에 대해 알아보겠습니다
이번에도 books 테이블을 사용하여 예시 구문을 작성해보겠습니다
지금 books 테이블에는 총 22개의 레코드가 존재하는데요
예시에서야 데이터의 수가 얼마 안 되지만, 실무에서는 테이블에 존재하는 레코드의 수가
몇 만, 몇 십만 정도는 우습게 훌쩍 넘어버리죠 ^^
특정 조건으로 데이터를 조회한다고 했을 때
몇 만 개, 몇 십만 개를 꼭 한 번에 다 조회하여 출력할 필요가 있을까요?
일정 갯수만큼 규칙적으로 끊어서
페이징 처리를 하여 데이터를 조회하는게 더 효율적일 겁니다 ^^
그럼 LIMIT 구를 어떻게 이용하면 될지 예시를 들어보겠습니다 ^^!
SELECT 조회대상컬럼 FROM 테이블이름 LIMIT 조회갯수
구조가 되겠습니다 ^^
22개의 데이터 중에서 id값이 1번인 데이터부터 10번인 데이터까지
LIMIT 값만큼 데이터를 조회하여 화면에 출력하였습니다
근데 LIMIT 키워드만 이용하면 항상 첫 데이터부터 해당 갯수만큼 끊어서 조회를 하는데요
중간부터 시작해서 일정 갯수만큼 조회를 하려면 어떻게 해야할까요?
그럴땐 이와 같이 OFFSET 값을 지정해주시면 되겠습니다 ^^
OFFSET 값이 10이라는건 10 이후부터 일정 갯수만큼 조회하라는 의미이죠!
LIMIT ~ OFFSET ~ 구문을 조금 축약해서 사용할 수도 있는데요
OFFSET 키워드를 생략하고 두 값 사이를 콤마(,)로
분리를 해주셔도 동일한 결과를 조회할 수 있습니다 ^^
LIMIT 키워드 뒤에 숫자를 콤마로 구분할 경우에는
첫 번째 값이 OFFSET 값,
두 번째 값이 LIMIT 값이 됩니다 ^^!
이 구문 역시 키워드의 기재 순서가 관여가 되는데요
혹시 OFFSET 값을 먼저 쓰거나 또는 OFFSET 값만 기재하면 어떻게 될까요?
SQL문의 올바른 형태는 LIMIT ~ OFFSET ~ 입니다
근데 순서를 바꿔서 기재를 하니 문법 오류를 뜻하는 표시가 출력됩니다 ^^
OFFSET 값만 기재를 했을 때에도 마찬가지로 문법에 오류가 있음을 나타내줍니다 ^^
참고로 LIMIT 구는 표준 SQL문은 아닙니다
MySQL과 PostgreSQL과 같은 특정 제품에서만 사용할 수 있는 키워드입니다!
SQL Server 또는 Oracle에서는 다른 방법으로 해당 기능을 적용해야죠 ^^
그럼 마지막으로 WHERE 조건문과 ORDER BY 정렬, LIMIT구를 적용해서
조금 더 복잡한 조건으로 조회를 해볼까요? ^^
일단 LIMIT ~ OFFSET ~ 구를 이용하지 않은,
해당 조건을 만족하는 전체 데이터에 대한 조회 결과입니다
이 데이터를 5개씩 페이징 처리를 해볼까요?
예시 샘플로, 해당 조건으로 조회한 전체 데이터를 처음 순서부터
5개씩 끊어서 세 번 보여드렸습니다 ^^
조건에 대한 전체 데이터와 비교해서 확인해보면
5개씩 페이징 처리가 된 것을 알 수가 있죠 ^^?
다음 포스트에서는 레코드의 특정 필드 값을 이용해서
수치를 연산하여 가공하는 작업을 한 번 해보겠습니다 ^^!
'MySQL > MySQL 기본 CRUD' 카테고리의 다른 글
[기본 CRUD] 8. CASE문으로 데이터 변환하기 (0) | 2024.08.07 |
---|---|
[기본 CRUD] 7. 기본적인 수치 연산하기(덧셈, 뺄셈, 곱셈, 나눗셈, 모듈연산) (0) | 2024.08.07 |
[기본 CRUD] 5-2. ORDER BY 키워드로 복수 컬럼에 대해 데이터 정렬하기 (0) | 2024.08.07 |
[기본 CRUD] 5-1. ORDER BY 키워드로 단일 컬럼에 대해 데이터 정렬하기 (0) | 2024.08.07 |
[기본 CRUD] 4. LIKE 키워드로 패턴 매칭에 의한 검색하기 (0) | 2024.08.07 |