[SQL] INSERT 데이터 삽입[SQL] INSERT 데이터 삽입
Posted at 2014. 5. 30. 17:01 | Posted in == DB ==/SQL[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에 정의한 컬럼이 일치해야 한다.
'== DB == > SQL' 카테고리의 다른 글
[SQL] UPDATE 데이터 수정 (0) | 2014.05.30 |
---|---|
[SQL] INSERT 데이터 삽입 (0) | 2014.05.30 |
[SQL] DROP TABLE 테이블 삭제 + RENAME 테이블명 변경 (0) | 2014.05.30 |
[SQL] ALTER TABLE 테이블 수정 (ADD, DROP, MODIFY, RENAME) (0) | 2014.05.29 |
[SQL] CREATE TABLE 테이블 생성, 제약조건(CONSTRAINT), 확인(DESC) (0) | 2014.05.29 |
데이터베이스 데이터 유형 및 CHAR와 VARCHAR 비교 (0) | 2014.05.29 |