본문 바로가기
DB

DML - INSERT문

by 쬑께께 2022. 4. 7.

INSERT문의 기분

INSERT INTO 테이블(열1, 열2 ...) VALUES (값1, 값2...);

*테이블열의 순서와 삽입하려는 값의 순서가 같아야 함

실행시켜보면

 

testtbl1 테이블이 생성된 모습을 살펴볼 수 있다.

테이블을 열어 INSERT시킨 값이 제대로 들어갔는지 확인해보면

다음과 같이 값들이 제대로 입력되어있음을 확인할 수 있다.

 

AUTO_INCREMENT

자동으로 1부터 증가하는 값을 입력해준다.

'AUTO_INCREMENT = 값' 형식으로 

시작입력값도 지정할 수 있다.

SELECT * FROM testTbl2; 을 실행시켜보면

다음과 같이 id값이 자동으로 1씩 증가함과

시작값을 100으로 지정해준 찬미의 id값이 

100으로 뜨는 모습을 확인할 수 있다.

 

여러 데이터 삽입할 경우 
INSERT INTO 테이블 이름 (열 이름 1, 열 이름 2 ...)
SELECT문  ;

실행시켜보면

다음과 같이 값이 한꺼번에 삽입된 모습을 확인할 수 있다.

 

 

 

++++++

가끔 중복된 값을 넣는 경우가 있다.

그럴때 그냥 INSERT문을 사용할 경우

다음과 같은 에러가 뜰 것이다.

이럴 때 사용하는 것이

IGNORE이다.

INSERT IGNORE INTO 테이블 이름 VALUES (값1, 값2, 값3,...);

 

예를 위해

다음 코드를 이용하여 새 테이블을 만들어주었다.

 

그리고 INSERT문을 통해 값을 집어넣어주었다.

 

가장 윗줄의 BBK 값은 이미 있는 값이기에

테이블에 들어가지 않을 것이다. (에러가 날 것이다.)

 

이때 위의 IGNORE를 사용해주도록 하겠다.

다음 코드들을 실행시켜보면

다음과 같이 경고는 뜰지언정

값은 들어가는 것을 확인할 수 있다.

이는 IGNORE를 붙이면

값이 중복된 것을 무시하고 삽입시키기 때문이다.

 

이번에는 기본키가 중복될 경우 데이터가 수정되도록 만들어보겠다.

ON DUPLICATE KEY는

PK가 중복되지 않으면 그냥 INSERT문이 되고,

PK가 중복되면 뒤의 UPDATE문이 수행된다.

 

위의 코드에서는

첫번째 INSERT문의 경우

BBK가 중복된 값이기에 UPDATE가 수행되고,

두번째 INSERT문의 경우

DJM이 중복되지 않은 값이기에

UPDATE가 수행된다.

 

SELECT * FROM memberTBL;

을 통해 수행시켜보면

 다음과 같이 BBK의 경우는 값이 바뀌어있고,

DJM의 경우 새로 값이 추가된 것을 확인할 수 있다.

 

 

'DB' 카테고리의 다른 글

DML - DELETE문  (0) 2022.04.08
DML - UPDATE문  (0) 2022.04.08
DML - SELECT문  (0) 2022.04.07
SQL종류  (0) 2022.04.01
테이블 생성 및 SQL사용해보기  (0) 2022.03.25