230323 DB_AUTO_INCREMENT, PAGING(LIMIT, OFFSET)

Myung A Lee·2023년 3월 23일
0

DB

목록 보기
12/15
post-thumbnail

AUTO_INCREMENT

  • 자동으로 증가하는 속성
  • 무조건 들어가고 절대 중복되지 않기 때문에 PK로 활용된다.

Auto_Increment 생성 방법

    1. 테이블 생성시 속성으로 지정하는 방법
      create table auto_inc(
      no int(10) auto_increment primary key
      ,name varchar(10) not null
      );
    1. 이미 생성된 테이블에 추가하는 방법
      - auto_increament 가 설정 되는 컬럼은 가 있어야한다.
      - 그러므로 설정하려는 컬럼의 값 중에 중복과 NULL이 있어서는 안된다.
      create table test(
      no int(10)
      ,name varchar(10) not null
      );
      - there can be only one auto column and it must be defined as a key
      즉, 하나의 auto column만 존재 할 수 있고 무조건 키로 지정되어야 한다.
      alter table test modify no int(10) auto_increment primary key;

Auto_increment의 기본값 수정 방법

  • alter table test auto_increment = 100;

PAGING

데이터를 페이지로 나누어 출력하는 것을 Paging이라고 부른다.

LIMIT & OFFSET

  • Paging을 위해 Mariadb에서 지원하는 기능

limit

  • 특정 갯수를 불러 온다. (무조건 처음부터 적용)
    select * from employees limit 5;

offset

  • 시작할 index를 지정
    - 1 page : 0번 인덱스부터 5개를 보여줌
    select from employees limit 5 offset 0;
    - 2 page : 5번 인덱스부터 5개를 보여줌
    select
    from employees limit 5 offset 5;

limit으로 offset 속성까지 사용하기

  • 간단하고 직관적이라 가장 많이 사용
  • LIMIT O,N : LIMIT OFFSET,NUMBER
    - 1 page : 0번 인덱스부터 5개를 보여줌
    select from employees limit 0,5;
    - 2 page : 5번 인덱스부터 5개를 보여줌
    select
    from employees limit 5,5;

속도 개선

  • offset과 limit은 데이터를 확보해 놓고 수행하는 것이 아니고 하나하나 세는 개념이기 때문에 속도가 느릴 수 있다.
  • 속도를 개선하는 방법
    - 1. 정렬, PK를 이용하여 데이터를 확보한다.
    select i.emp_no,i.first_name,i.family_name
    from (select * from employees order by emp_no) i limit 4,5;
    - 2. Join을 이용하여 데이터를 확보한다.
    select e.emp_no ,e.first_name ,e.family_name
    from (select emp_no from employees limit 4,5) i join employees e on i.emp_no = e.emp_no ;

0개의 댓글