반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

디케이

[MySQL] INSERT 데이터 삽입 본문

SQL

[MySQL] INSERT 데이터 삽입

디케이형 2021. 1. 30. 12:38
반응형

테이블에 데이터를 입력하는 방법은 두 가지 유형이 있으며 한 번에 한 건만 입력된다.

INSERT INTO 테이블명 (COLUMN_LIST)
VALUES (COLUMN_LIST에 넣을 VALUE_LIST);

INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO)
VALUES ('2002007', ' 박지성', 'K07', 'MF' ,178, 73, 7);


INSERT INTO 테이블명
VALUES (전체 COLUMN에 넣을 VALUE_LIST);

INSERT INTO PLAYER
VALUES ('2002007', ' 박지성', 'K07', 'MF' ,178, 73, 7);

- PLAYER 테이블에 위와 같은 값들을 데이터로 입력한다.

 

해당 컬럼의 데이터 유형이 CHAR 이거나 VARCHAR2 등 문자 유형일 경우  ' '  로 입력할 값을 입력한다. 숫자일 경우 숫자만 입력한다.

 

첫번째 방식은 입력할 데이터의 컬럼명과 입력되어야 하는 값을 1:1로 매핑하여 입력하면 된다.

테이블 명 뒤에 () 안에 입력할 테이블의 컬럼을 정의하며, 컬럼의 순서는 테이블의 실제 컬럼 순서와 매치할 필요는 없다.

여기에 정의하지 않은 컬럼은 데이터 INSERT 시에 Default로 NULL이 입력된다. 단, Primary Key 나 Not NULL 의 경우는 데이터를 항상 입력해줘야 한다.

 

두번째 방식은 모든 컬럼에 데이터를 입력하는 경우로 굳이 COLUMN_LIST를 입력하지 않아도 되지만, 컬럼의 순서대로 빠짐없이 데이터가 입력되어야 한다.

 

 

* 테이블에 컬럼이 많아지고 모든 컬럼에 데이터를 입력한다고 하더라도, 첫번째 방식으로 사용하는게 좋다.

얼핏 봤을 때는, 그 많은 컬럼을 다 나열하느니 두번째 방식을 사용하는게 편할 수 있지만, 시스템을 운영하다가 컬럼이 추가되는 경우에 두번째 방식의 쿼리에서 에러가 발생한다.

조금 귀찮더라도 첫번째 방식을 사용하는게 좋다.

 

* SELECT 문으로 다수의 데이터 INSERT 하기

INSERT INTO 테이블명 (COLUMN_LIST)
SELECT COLUMN_LIST FROM 조회 테이블명 WHERE 조회 조건

INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO)
SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO
FROM PLAYER_BACKUP 
WHERE PLAYER_NAME = '박지성'; 
INSERT INTO 테이블명 
SELECT * FROM 조회 테이블명 WHERE 조회 조건

INSERT INTO PLAYER
SELECT *
FROM PLAYER_BACKUP 
WHERE PLAYER_NAME = '박지성'; 

위와 같이 입력 데이터가 들어갈 부분에 SELECT 문으로 조회하는 쿼리를 넣어주면된다.

그러면 조회된 결과가 테이블에 INSERT 될 것이다.

 

이것도 마찬가지로 조회 결과와 INSERT에 정의한 컬럼이 일치해야 한다.

반응형