AUTO_INCREMENT
- 자동으로 증가하는 속성
- 무조건 들어가고 절대 중복되지 않기 때문에 PK로 활용된다.
Auto_Increment 생성 방법
- 테이블 생성시 속성으로 지정하는 방법
create table auto_inc(
no int(10) auto_increment primary key
,name varchar(10) not null
);
- 이미 생성된 테이블에 추가하는 방법
- 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 ;