데이터 삽입이 뭐야?
상상해봐, 네가 대학교를 열었어. students 같은 테이블로 학생 정보를 저장하는 데이터베이스가 있지. 이제 어떤 학생들이 입학했는지 발표하고, 그 학생들의 데이터를 테이블에 추가해야 해. SQL에서는 이럴 때 INSERT INTO 명령어를 써. 이건 테이블에 새로운 행을 추가하는 거야 — 마치 Excel에서 직접 새 줄을 채우는 것처럼, 근데 훨씬 빠르고, 강력하고, 코드로 하는 거지!
데이터 추가는 단순한 작업에만 필요한 게 아니야. 온라인 쇼핑몰에서 주문을 기록하거나, 은행에서 거래 정보를 저장할 때도 쓰여. 대학교라면 학생, 교수 명단이나 시간표 같은 것도 다 이걸로 관리하지.
INSERT INTO 명령어의 기본 문법
SQL에서 INSERT INTO 명령어는 테이블에 새로운 행을 추가하는 가장 간단한 방법이야. 기본 문법을 한번 보자:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
구성요소 설명:
table_name— 데이터를 추가할 테이블 이름이야.(column1, column2, column3, ...)— 값을 넣을 컬럼(열)들의 리스트야.VALUES (value1, value2, value3, ...)— 각 컬럼에 넣을 값들의 리스트야.
예시: students 테이블에 새로운 학생을 추가해보자. 테이블이 이렇게 있다고 해봐:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 수학 |
이제 INSERT INTO로 두 번째 학생을 추가해볼게:
INSERT INTO students (id, name, age, course)
VALUES (2, 'Anna Lin', 19, '컴퓨터과학');
이 쿼리를 실행하면 테이블이 이렇게 바뀔 거야:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 수학 |
| 2 | Anna Lin | 19 | 컴퓨터과학 |
모든 컬럼에 데이터 삽입하기
테이블의 모든 컬럼에 값을 넣고 싶을 때는 INSERT INTO에서 컬럼 이름을 생략할 수 있어. 단, 각 컬럼 순서대로 값을 다 넣어야 해.
문법:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
예시: students 테이블에 학생을 한 명 더 추가한다고 해보자:
INSERT INTO students
VALUES (3, 'Dan Sim', 20, '물리');
결과:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 수학 |
| 2 | Anna Lin | 19 | 컴퓨터과학 |
| 3 | Dan Sim | 20 | 물리 |
근데 이런 방식은 테이블 구조가 바뀌면 위험할 수 있어. 그래서 항상 컬럼 리스트를 명시하는 걸 추천해. 그래야 실수를 줄일 수 있거든.
실전: 학생 추가하기
이번엔 students 테이블에 새로운 학생을 추가하면서 INSERT INTO의 모든 기능을 써보자.
1단계: 현재 데이터 확인
먼저 테이블에 어떤 데이터가 있는지 확인하는 게 좋아. SELECT 명령어를 써보자:
SELECT * FROM students;
2단계: 새 학생 추가
이번엔 Peter Chi라는 학생을 추가해볼게. 이 친구는 "생물학"을 전공하고, 나이는 21살이야:
INSERT INTO students (id, name, age, course)
VALUES (4, 'Peter Chi', 21, '생물학');
3단계: 데이터가 잘 들어갔는지 확인
다시 한 번 전체 데이터를 조회해보자:
SELECT * FROM students;
결과:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 수학 |
| 2 | Anna Lin | 19 | 컴퓨터과학 |
| 3 | Dan Sim | 20 | 물리 |
| 4 | Peter Chi | 21 | 생물학 |
멋지지? 이제 Peter도 우리 대학교에 등록됐어.
INSERT INTO 쓸 때 흔한 실수들
컬럼과 값의 개수가 안 맞는 경우. 예를 들어 컬럼 4개를 지정했는데 값은 3개만 넣으면, SQL이 에러를 뱉어:
INSERT INTO students (id, name, age)
VALUES (5, 'Eva Green', 22, '화학');
에러: 컬럼 개수와 값 개수가 맞지 않아.
제약조건 위반. 컬럼이 UNIQUE이거나 NOT NULL이면, 그 규칙을 어기면 에러가 나.
데이터 타입.
숫자 필드에 텍스트를 넣으려고 하면, PostgreSQL도 싫어해:
INSERT INTO students (id, name, age, course)
VALUES (5, 'Axel Linz', '스물', '화학');
실제 프로젝트에서 왜 필요할까?
INSERT INTO 명령어를 아는 건, 데이터베이스를 쓰는 거의 모든 앱에서 꼭 필요한 스킬이야. 실제로 이 명령어는 이런 데서 쓰여:
- 시스템에 새 사용자 등록할 때
- 온라인 쇼핑몰에서 주문 추가할 때
- 결제 시스템에서 결제 정보 저장할 때
- 교육 시스템에서 학생, 출석, 성적 등 일일 데이터를 업데이트할 때
네 앱이 사용자나 외부 데이터랑 상호작용할 때마다, INSERT INTO는 그 데이터를 데이터베이스에 저장하는 핵심 도구가 돼.
백엔드 앱을 만들거나 데이터 처리용 API를 만들 계획이라면, SQL로 데이터 삽입하는 건 정말 기본이지만 엄청 중요한 능력이야!
GO TO FULL VERSION