INSERT는 테이블에 데이터를 삽입하는 명령어이다.
INSERT 문으로 데이터를 삽입하는 방법은 크게 세 가지가 있다.
CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT);
INSERT INTO hongong1 VALUES (1, '우디', 25);
INSERT INTO hongong1(toy_id, toy_name) VALUES (2, '버즈');
INSERT INTO hongong1(toy_name, age, toy_id) VALUES ('제시', 20, 3);
AUTO INCREMENT란 데이터가 추가될 때마다 자동으로 증가하는 값을 말하며 꼭 PRIMARY KEY로 지정해주어야 한다.
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;
현재까지 증가된 AUTO_INCREMENT 값을 보고 싶다면 아래의 구문을 활용할 수 있다.
SELECT LAST_INSERT_ID();
임의로 AUTO_INCREMENT 값을 바꾸고 싶다면 아래의 구문을 활용할 수 있다.
ALTER TABLE hongong2 AUTO_INCREMENT = 100;
INSERT INTO hongong2 VALUES (NULL, '재남', 35);
SELECT * FROM hongong2;
보통은 테이블을 생성할 때 다음과 같이 한 번에 설정해주는 편이며 아래에 새로 추가된 SET 구문은 AUTO_INCREMENT로 지정된 값이 증가하는 범위를 설정하는 부분이다.
CREATE TABLE hongong3 (
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT
);
ALTER TABLE hongong3 AUTO_INCREMENT = 1000;
SET @@auto_increment_increment = 3;
INSERT INTO hongong3 VALUE (NULL, '토마스', 20);
INSERT INTO hongong3 VALUE (NULL, '제임스', 23);
INSERT INTO hongong3 VALUE (NULL, '고든', 25);
SELECT * FROM hongong3;
INSERT 문을 SELECT 문과 함께 사용하면 여러 개의 데이터를 한 꺼번에 추가할 수 있다.
CREATE TABLE city_popul ( city_name CHAR(35), population INT);
INSERT INTO city_popul
SELECT Name, Population FROM world.city;
SELECT * FROM city_popul;
UPDATE는 기존에 입력되어 있는 값을 수정하는 명령어이다.
UPDATE city_popul
SET city_name = '서울'
WHERE city_name = 'Seoul';
SELECT * FROM city_popul WHERE city_name = '서울';
UPDATE city_popul
SET city_name = '뉴욕', population = 0
WHERE city_name = 'New York';
SELECT * FROM city_popul WHERE city_name = '뉴욕';
WHERE 절을 생략할 경우 모든 행에 대한 SET 함수를 수행하므로 모든 데이터가 바뀌게 된다.
다만 모든 데이터가 변경되기 때문에 위험할 수 있어 WHERE 절 없이 사용되는 경우는 드물다.
UPDATE city_popul
SET population = population / 10000;
SELECT * FROM city_popul LIMIT 5;
DELETE도 UPDATE와 거의 비슷하게 사용할 수 있으며, 행 단위로 데이터를 삭제하는 명령어이다.
아래 구문은 city_name이 'New'로 시작하는 모든 행을 삭제하는 구문이다.
DELETE FROM city_popul
WHERE city_name LIKE 'New%';
만약 남기고 싶은 데이터가 있을 경우 아래와 같이 조건을 추가할 수 있다.
DELETE FROM city_popul
WHERE city_name LIKE'New%'
LIMIT 5;
'📟 Database > 혼자 공부하는 SQL' 카테고리의 다른 글
[MySQL] 7. 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN) (0) | 2022.04.07 |
---|---|
[MySQL] 6. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환 (0) | 2022.04.06 |
[MySQL] 4. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절) (0) | 2022.04.06 |
[MySQL] 3. SQL 기본 문법(SELECT ~ FROM ~ WHERE) (0) | 2022.04.05 |
[MySQL] 2. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저) (0) | 2022.04.04 |