테이블에 데이터를 삽입하는 명령입니다.
INSERT INTO 테이블[(열1, 열2, ...)] VALUES (값1, 값2, ...)
테이블 이름 다음에 나오는 열은 생략 가능 합니다. 열 이름을 생략할 경우에 VALUES 다음에 오는 값들의 순서 및 개수만 동일하게 해주시면 됩니다.
열이 3개일 경우, 값도 3가지의 값을 입력해줘야합니다.
USE market_db;
CREATE ta (id INT, name CHAR(8), age INT);
INSERT INTO ta VALUES(1,'는는',15);
USE 로 데이터베이스를 선택해줍니다.
CAEATE 로 테이블을 만들어 줍니다. 만들때 숫자형인지, 문자형인지 지정해줘야합니다.
INSERT에서 값을 넣어주면 아래의 값이 나오는 걸 알 수 있습니다.
아이디와 이름만 입력하고 한다면, 나이열에는 NULL(아무것도 없다) 값이 들어갑니다.
INSERT INTO ta (id, name) VALUES (1,'박연진');
열의 순서를 바꿔서 입력하고 싶을 때는 , 열 이름과 값을 원하는 순서에 맞춰서 작성해주면 됩니다.
INSERT INTO ta (name,age,id) VALUES ('문동은',36,2)
따로 입력하기 번거롭거나, 의미 없는 값을 입력 할 때 자동으로 증가하는 열의 값을 만들때 사용합니다.
단 주의 할 점은 PRIMARY KEY로 지정해줘야합니다.
CREATE TABLE ta2 (id INT AUTO_INCREMENT PRIMARY KEY, name CHAR(4), age INT);
새로운 테이블을 만들어 적용해 보겠습니다. 자동으로 증가하도록 만드는 곳을 AUTO_INCREMENT PRIMARY KEY 로 지정해주고, id 자리에 NULL 값을 넣어주고 실행하면 id값이 자동으로 증가하는 것을 볼 수 있습니다.
INSERT INTO ta2 VALUES (NULL,'문동은',36)
INSERT INTO ta2 VALUES (NULL,'박연진',36)
INSERT INTO ta2 VALUES (NULL,'하예솔',8)
위에 값처럼 열을 지정해주지 않아도 값이 나오지만 열을 지정해주는 것이 더 정확합니다.
SELECT LAST_INSERT_ID();
어디까지 증가했는지 알고 싶으면 LAST_INSERT_ID 라는 함수를 이용하면 알 수 있습니다.
ALTER TABLE ta2 AUTO_INCREMENT = 100;
AUTO_INCREMENT 를 사용하면 다음 값을 100부터 시작하도록 변경줍니다.
원하는 숫자 간격으로도 지정할 수 있습니다.
SET @@auto_increment_increment = 4;
INSERT INFO ~ SELECT 구문을 사용하면, 다른 테이블의 데이터를 한 번에 입력 할 수 있습니다. 이 구문은 테이블 열의 숫자가 같을 때만 사용 가능 합니다.
INSERT INTO 테이블_이름 (열_이름1 , 열_이름2, ...)
SELECT 문;
INSERT INTO ta
SELECT id, name, age FROM ta2;
저는 붙여넣기 기능이라고 이해했어요. 테이블1 에 테이블2의 열들을 넣어준다.
UPDATE - SET - WHERE
UPDATE 테이블_이름
SET 열1 = 값1, 열2= 값2, ...
WHERE 조건;
위에서 만들었던 ta 테이블의 는는 이라는 이름을 전재준으로 변경해보겠습니다.
MYSQL은 기본적으로 UPDATE 및 DELETE를 허용하지 않기 때문에 설정을 변경 해주셔야해요
저는 코드로 변경해주었습니다. 허용할 때는 0 , 허용하지 않을 때는 1을 사용합니다.
SET SQL_SAFE_UPDATES = 0;
UPDATE 테이블 SET 열 = '변경해줄 새로운 값' WHERE 열 = '변경할 기존 값'
WHERE 절 뒤에 조건 name이 '는는' 이면 name 을 '전재준' 으로 SET해준다
WHERE절을 사용하지 않으면 모두 날아 갈 수 있음.... 중요!
DELETE FROM 테이블이름 WHERE 조건;
UPDATE 구문과 거의 비슷하게 사용할 수 있습니다. 삭제는 행단위로 됩니다.
저는 나이에 값이 없는 행을 지워 보겠습니다.
DELETE FROM ta
WHERE age IS NULL;
LIMIT 을 이용해 원하는 숫자 만큼 지워 줄 수도 있습니다.
참고 문서: 혼자 공부하는 SQL