STUDY/DATABASE

My SQL 테이블의 데이터 조작(auto_incremenet, insert)

3unB 2022. 4. 11. 16:18
반응형

AUTO_INCREMENT?

 테이블 생성(수정) 시 auto_increment 속성을 부여하면 insert 시 자동으로 1부터 시작해서 1씩 증가하는 값을 반환

 primary key 또는 unique 제약조건이 지정된 컬럼만 활용 가능

 숫자형색의 데이터 타입에만 활용 가능

 insert 작업 시 null 값을 지정하면 자동으로 값이 입력됨

creat table 테이블명
( 컬럼1 int auto_increament primary key,
  컬럼2 데이터 타입,
  컬럼3 데이터 타입);
-------------------------------------------------
alter table 테이블명 auto_increment=입력값; > 시작값 변경(default =1)

set @@auto_increment_increment=증가값; > 증가값 변경(default =1)
-------------------------------------------------
select last_insert_id(); > 현재 사용 번호 확인

 

1. 테이블 생성 시 AUTO_INCREMENT 속성 활용

create table stu20
(stu_id int auto_increment primary key,
 stu_name varchar(5) not null,
 age int check(age>19) );
 
 desc stu20;
alter table stu20 auto_increment=100;
//다음 입력값이 100으로 변경

insert into stu20
values(null, '김00', 29);
//김00의 stu_id가 100 부터 시작함

insert into stu20
values(null, '최00' 3);
//증가값은 그대로이므로 최00의 stu_id는 101

set @@auto_increment_increment=5;
//증가값이 5로 변경

insert into stu20
values(null, '박00',22);
//증가값이 5로 변경 됬으므로 박00의 stu_id는 106

데이터 조작어(DML)

  1. insert : 삽입
  2. update : 수정
  3. delete : 삭제

2. 데이터 삽입 : INSERT

   * 데이터 삽입 시 제약조건 유의

   * 문자 및 날짜는 작은 따옴표로 묶어서 표현

   * 날짜 : 년도-월-일 순서로 작성

insert into members
values(100, '홍길동', '1991-12-30', '학생', '010-1111-1111', '부산 부산진구 00동');

    생략된 컬럼에는 null 값이 자동 삽입

 

3. Error Code : 1364. Field 'birth' doesn't have a default value

 -> not null 제약조건이 선언된 컬럼에 값을 생략한 경우

 

4. Error Code : 1062. Duplicate entry '010-0000-0000' for key 'phone'

 -> unique 제약조건이 선언된 컬럼에 중복 값이 삽입된 경우

 

5. Error Code : 1062. Duplicate entry '101' for key 'PRIMARY'

 -> primary key 제약조건이 선언된 컬럼에 중복 값이 삽입된 경우

 

6. Error Code : 1364. Field 'member_id' doesn't have a default value

 -> primary key 제약조건이 선언된 컬럼에 값을 생략한 경우

 

 

반응형