디케이
[MySQL] 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에 정의한 컬럼이 일치해야 한다.
'SQL' 카테고리의 다른 글
[MySQL] DROP: 테이블 삭제, RENAME: 테이블명 변경 (0) | 2021.01.30 |
---|---|
SQL 소수점 반올림, 버림, 내림 (0) | 2020.12.15 |
SQL: FLOOR 숫자 소수점 또는 정수 부분 버림 (0) | 2020.12.15 |
[MySQL] 페이징 시 쿼리 LIMIT, OFFSET (0) | 2020.12.09 |
프로그래머스 - SQL 중성화 여부 파악하기(IF 문) (0) | 2020.11.23 |