티스토리 뷰
SQL의 INSERT 문은 테이블에 새 데이터(행)를 추가하는 데 사용됩니다.
테이블의 특정 열에 삽입할 값을 지정할 수 있습니다. 기본 구문은 다음과 같습니다.
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
이 구문에서는:
- INSERT INTO는 테이블에 데이터를 삽입하겠다는 의미의 키워드입니다.
- table_name은 데이터를 삽입하려는 테이블의 이름입니다.
- (column1,column2, ...)는 데이터를 삽입하려는 열을 지정합니다.
- VALUES (value1, value2, ...)는 각 열에 삽입될 해당 값을 지정합니다.
설명하기 위한 예는 다음과 같습니다.
id, first_name, last_name 및 department 열이 있는 employees라는 테이블이 있다고 가정해 보겠습니다.
새 직원 기록을 삽입하고 싶습니다.
INSERT INTO employees (first_name, last_name, department)
VALUES ('John', 'Doe', 'IT');
이 쿼리는 first_name, last_name 및 department에 대해 지정된 값을 사용하여 employees 테이블에 새 레코드를 삽입합니다.
INSERT 문을 사용하는 방법은 다양합니다.
1. 단일 레코드 삽입: 위의 예와 같이 각 열에 값을 제공하여 테이블에 단일 레코드를 삽입할 수 있습니다.
2. 여러 레코드 삽입: 쉼표로 구분된 여러 값 집합이 포함된 단일 INSERT 문을 사용하여 테이블에 여러 레코드를 삽입할 수 있습니다.
INSERT INTO employees (first_name, last_name, department)
VALUES ('Jane', 'Smith', 'HR'),
('Alice', 'Johnson', 'Finance'),
('Bob', 'Williams', 'Sales');
3. 다른 테이블에서 삽입: SELECT 문을 사용하여 다른 테이블의 값을 선택하여 테이블에 데이터를 삽입할 수 있습니다.
INSERT INTO new_employees (first_name, last_name, department)
SELECT first_name, last_name, department
FROM old_employees
WHERE department = 'IT';
INSERT 문 작성 시 주의사항
- 데이터 유효성 검사: 삽입되는 데이터가 데이터 유형, 길이, 고유성 제약 조건 등 테이블에 정의된 제약 조건을 준수하는지 확인합니다.
- SQL 주입 방지: SELECT 문과 마찬가지로 사용자 입력에서 데이터를 삽입할 때 매개변수화된 쿼리나 준비된 문을 사용하여 SQL 주입 공격으로부터 보호합니다.
- 기존 데이터 확인: 새 레코드를 삽입하기 전에 특히 고유 제약 조건이 있는 열의 경우 중복을 피하기 위해 유사한 데이터가 있는지 확인하는 것이 좋습니다.
- 트랜잭션 관리: 여러 레코드를 삽입하는 경우 데이터 무결성과 일관성을 보장하기 위해 트랜잭션 내에 INSERT 문을 래핑하는 것을 고려하세요.
- 성능 고려 사항: 특히 많은 수의 레코드를 삽입할 때 성능에 미치는 영향을 염두에 두십시오. 이러한 경우 일괄 처리 또는 대량 삽입 작업이 더 효율적일 수 있습니다.
※ 이러한 예방 조치를 따르면 INSERT 문의 무결성, 보안 및 효율성을 보장할 수 있습니다.
반응형