SQL INSERT 구문
IT 위키
SQL의 INSERT 구문은 테이블에 새로운 데이터를 추가(삽입)할 때 사용하는 명령어이다. 새로운 행(row)을 하나 또는 여러 개 삽입할 수 있으며, 명시적으로 컬럼을 지정하거나 테이블 구조에 따라 자동 매핑할 수 있다.
기본 문법[편집 | 원본 편집]
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (값1, 값2, ...);
- 컬럼 목록 생략 시 테이블의 모든 컬럼 순서에 맞게 값을 지정해야 한다.
INSERT INTO 테이블명
VALUES (값1, 값2, ...);
예시 테이블[편집 | 원본 편집]
employees 테이블이 다음과 같다고 가정한다.
id | name | department | salary |
---|---|---|---|
1 | Alice | IT | 6000 |
2 | Bob | HR | 4000 |
단일 행 삽입 예시[편집 | 원본 편집]
1. 컬럼 지정 후 삽입[편집 | 원본 편집]
INSERT INTO employees (id, name, department, salary)
VALUES (3, 'Carol', 'IT', 7000);
2. 컬럼 생략 (테이블 정의 순서와 값 순서가 일치해야 함)[편집 | 원본 편집]
INSERT INTO employees
VALUES (4, 'Dave', 'Sales', 4500);
다중 행 삽입[편집 | 원본 편집]
INSERT INTO employees (id, name, department, salary)
VALUES
(5, 'Eve', 'IT', 5000),
(6, 'Frank', 'Finance', 5500);
다른 테이블에서 복사하여 삽입[편집 | 원본 편집]
INSERT INTO employees_backup (id, name, department, salary)
SELECT id, name, department, salary FROM employees WHERE department = 'IT';
주의 사항[편집 | 원본 편집]
- 컬럼의 데이터 타입과 값의 타입이 일치해야 함
- NOT NULL 제약 조건이 있는 컬럼은 반드시 값을 지정해야 함
- 기본 키 중복이 발생하면 오류가 발생할 수 있음
- AUTO_INCREMENT 또는 SERIAL 컬럼은 생략 가능
같이 보기[편집 | 원본 편집]
참고 문헌[편집 | 원본 편집]
- Melton, J., & Simon, A. R. (2002). SQL: 1999 – Understanding Relational Language Components. Morgan Kaufmann.
- MySQL Reference Manual
- PostgreSQL Documentation
- Oracle SQL Language Reference