[MySQL] 5. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)

2022. 4. 6. 15:48·📟 Database/혼자 공부하는 SQL

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;

 

Result

 

 

현재까지 증가된 AUTO_INCREMENT 값을 보고 싶다면 아래의 구문을 활용할 수 있다.

SELECT LAST_INSERT_ID();

 

Result

 

 

임의로 AUTO_INCREMENT 값을 바꾸고 싶다면 아래의 구문을 활용할 수 있다.

ALTER TABLE hongong2 AUTO_INCREMENT = 100;

INSERT INTO hongong2 VALUES (NULL, '재남', 35);
SELECT * FROM hongong2;

 

Result

 

 

보통은 테이블을 생성할 때 다음과 같이 한 번에 설정해주는 편이며 아래에 새로 추가된 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;

 

Result

 

 

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;

 

Result


UPDATE는 기존에 입력되어 있는 값을 수정하는 명령어이다.

UPDATE city_popul
    SET city_name = '서울'
    WHERE city_name = 'Seoul';

SELECT * FROM city_popul WHERE city_name = '서울';

 

Result

 

 

UPDATE city_popul
    SET city_name = '뉴욕', population = 0
    WHERE city_name = 'New York';

SELECT * FROM city_popul WHERE city_name = '뉴욕';

 

Result

 

 

WHERE 절을 생략할 경우 모든 행에 대한 SET 함수를 수행하므로 모든 데이터가 바뀌게 된다.

다만 모든 데이터가 변경되기 때문에 위험할 수 있어 WHERE 절 없이 사용되는 경우는 드물다.

UPDATE city_popul
    SET population = population / 10000;
    
SELECT * FROM city_popul LIMIT 5;

 

Result


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
'📟 Database/혼자 공부하는 SQL' 카테고리의 다른 글
  • [MySQL] 7. 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN)
  • [MySQL] 6. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환
  • [MySQL] 4. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절)
  • [MySQL] 3. SQL 기본 문법(SELECT ~ FROM ~ WHERE)
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[MySQL] 5. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)
상단으로

티스토리툴바