MySQL - 3.3 SQL 기본 문법 - INSERT UPDATE DELETE

govlKH·2023년 6월 23일
0

SQL

목록 보기
4/17

3.3 데이터 변경을 위한 SQL 문

INSERT UPDATE DELETE

INSERT

  • TABLE 1
USE market_db;
CREATE TABLE hongong1 (toy_id  INT, toy_name CHAR(4), age INT);

이러한 테이블을 만들었을 때

- 기본적인 INSERT
INSERT INTO hongong1 VALUES (1, '우디', 25);
- 순서를 변경해서 insert해도 상관 없음
INSERT INTO hongong1(toy_name,age, toy_id) VALUES ('제시', 20, 3);

- age를 넣고 싶지 않을 때?
INSERT INTO hongong1(toy_id, toy_name) VALUES (2, '버즈');
  • TABLE2
    아이디를 지정하지 않고, 자동으로 생성하고 싶다면?
    : AUTO_INCREMENT PRIMARY KEY 사용!
CREATE TABLE hongong2 ( 
   toy_id  INT AUTO_INCREMENT PRIMARY KEY, 
   toy_name CHAR(4), 
   age INT);

=> 테이블 만든 후 insert

INSERT INTO hongong2 VALUES (NULL, '보핍', 25);
INSERT INTO hongong2 VALUES (NULL, '슬링키', 22);
INSERT INTO hongong2 VALUES (NULL, '렉스', 21);

: NULL로 지정해주면 알아서 1부터 순차적으로 insert가 됨

+ 마지막 아이디는 몇 번인가?
SELECT LAST_INSERT_ID();
=> 3

만약 이 다음 insert하고 싶은데 아이디를 100으로 지정하고 싶다면?
: 그냥 (100, x, x)로 하면 된다.
: 혹은 ALTER TABLE hongong2 AUTO_INCREMENT=100; 로 지정해주기

++ 이에 더해서 주기를 주고 싶다면?

SET @@auto_increment_increment=3;

다른 테이블의 데이터를 가져와서 한 번에 입력하는 방법은 없을까?

INSERT INTO 테이블_이름 (열_이름1, 열_이름2, 열_이름3, ...)
	SELECT 문;

우선 DESC world.city; 로 구조 및 정보 확인

INSERT INTO city_popul
	SELECT Name, population FROM world.city;

UPDATE : 기존의 입력되어 있는 값 수정하기

how?

UPDATE 테이블_이름
	SET 열1=값1, 열2=값2, ...
    WHERE 조건;

ex)
UPDATE city_popul
	SET city_name='서울'
    WHERE city_name='Seoul';
* 주의 해야할 것은 where절을 빼면 안 된다. 모두 서울로 바뀌어 버리기에 주의!!!
* where절 빼먹지 않도록 주의

행여 오류가 생긴다면 edit에서 preference에서 sql update 맨 아래 부분 safe update 체크 해제하기

DELETE : 테이블의 행 데이터를 삭제해야 하는 경우

DELETE FROM 테이블이름
	WHERE 조건;

ex)
DELETE FROM city_popul
	WHERE city_name LIKE 'New%';

ex2) 다 지우는 것이 아닌 5건만 지워주기
DELETE FROM city_popul
	WHERE city_name LIKE 'New%'
    LIMIT 5;
profile
수학과 대학원생. 한 걸음씩 꾸준히

0개의 댓글