[SQL] INSERT 데이터 삽입[SQL] INSERT 데이터 삽입

Posted at 2014.05.30 17:01 | Posted in == DB ==/SQL



facebook에 글올리기



[SQL] INSERT 데이터 삽입


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



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에 정의한 컬럼이 일치해야 한다.


저작자 표시 비영리 변경 금지
신고
이웃추가
facebook에 글올리기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

티스토리 툴바