INSERT
INSERT를 사용해 테이블에 행 데이터를 입력한다
INSERT 문의 기본 문법
INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
INSERT 문 주의 사항
테이블 이름 다음에 나오는 열을 생략할 수 있다.
열 이름 생략 시 VALUES에 나오는 값의 순서 및 개수와 테이블을 정의할 때의 열 순서 및 개수와 동일해야 한다.
USE market_db;
CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT);
INSERT INTO hongong1 VALUES (1, '우디', 25);
// 위 예제에서 age를 입력하고 싶지 않다면 다음과 같이 작성
INSERT INTO hongong1 (toy_id, toy_name) VALUES(2, '버즈');
// 이 경우 age 열에는 NULL 값이 들어감
// 열의 순서를 바꿔 입력하고 싶으면 열 이름과 값을 원하는 순서에 맞춰 작성
INSERT INTO hongong1 (toy_name, age, toy_id) VALUES('제시', 20, 3);
자동으로 증가하는 AUTO_INCREMENT
AUTO_INCREMENT 는 열을 정의할 때 1부터 증가하는 값을 입력하는 옵션이다.
INSERT 에서는 해당 값이 없다고 생각하고 입력해주어야 한다.
📌 AUTO_INCREMENT 로 지정하는 열은 PRIMARY KEY (PK) 로 지정해야 한다.
- AUTO_INCREMENT를 사용해 간단한 테이블 만들기
CREATE TABLE hongong2 (
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
- 테이블에 데이터 입력하기
INSERT INTO hongong2 VALUES (NULL, '보핍', 25);
INSERT INTO hongong2 VALUES (NULL, '슬링키', 22);
INSERT INTO hongong2 VALUES (NULL, '렉스', 21);
SELECT * FROM hongong2;
- 현재 어느 숫자까지 증가했는지 확인하기
SELECT LAST_INSERT_ID();
- AUTO_INCREMENT로 입력되는 다음 값을 100부터 시작하도록 변경하기
ALTER TABLE hongong2 AUTO_INCREMENT=100;
INSERT INTO hongong2 VALUES (NULL, '재남', 35);
SELECT * FROM hongong2;
- AUTO_INCREMENT로 처음부터 입력되는 값을 1000, 3씩 증가하도록 변경하기
CREATE TABLE hongong3 (
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
ALTER TABLE hongong3 AUTO_INCREMENT=1000; // 시작값을 1000으로 지정
SET @@auto_increment_increment=3; // 3씩 증가하도록 지정
//데이터 입력
INSERT INTO hongong3 VALUES (NULL, '토마스', 20);
INSERT INTO hongong3 VALUES (NULL, '제임스', 23);
INSERT INTO hongong3 VALUES (NULL, '고든', 25);
SELECT * FROM hongong3;
다른 테이블의 데이터를 한번에 입력하는 INSERT INTO ~ SELECT
다른 테이블에 이미 데이터가 입력되어 있는 경우 INSERT INTO ~ SELECT 구문으로 해당 테이블의 데이터를 가져와서 한 번에 입력할 수 있다.
📌 SELECT 문의 열 개수는 INSERT 할 테이블의 열 개수와 일치해야 한다.
'Language > SQL' 카테고리의 다른 글
[MySQL] MySQL의 데이터 형식을 알아보자 (0) | 2024.08.20 |
---|---|
[MySQL] 데이터를 삭제하는 DELETE 문 (0) | 2024.08.20 |
[MySQL] 데이터를 수정하는 UPDATE 문 (0) | 2024.08.20 |
[MySQL] 데이터를 조회하는 SELECT ~ FROM ~ WHERE 문 (2) (0) | 2024.08.20 |
[MySQL] 데이터를 조회하는 SELECT ~ FROM ~ WHERE 문 (1) (0) | 2024.08.20 |