MySQL/Learn MySQL

4. 테이블 생성 및 데이터 추가, 수정, 삭제 (CREATE, INSERT,UPDATE, DELETE)

jinsang-2 2023. 8. 28. 20:37

# 테이블 생성

CREATE TABLE hongong1(toy_id INT, toy_name CHAR(4), age INT);

# 데이터 추가

- INSERT INTO 테이블 [(열1,열2, ...)] VALUES (값1, 값2,...)

추가된 데이터

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

- AUTO_INCREMENT 사용 시에는 PRIMARY KEY로 지정해야 한다 ! 

- INSERT 될 때 마다 자동으로 1씩 증가 시킨다.

toy_id에 값을 안 넣어도 자동으로 1씩 증가하는 것을 볼 수 있다.

-- AUTO INCEREMENT 사용 시에는 PRIMARY KEY로 지정해야한다.
CREATE TABLE hongong2 (
	toy_id INT AUTO_INCREMENT PRIMARY KEY,
    toy_name CHAR(4),
    age INT);
INSERT INTO hongong2 VALUES (NULL, '토이', 35);
INSERT INTO hongong2 VALUES (NULL, '이수', 21);
INSERT INTO hongong2 VALUES (NULL, '상수', 31);
INSERT INTO hongong2(toy_name,age) VALUES ('팍수', 11);

- AUTO_INCREMENT의 현재 마지막 번호 함수 : LAST_INSERT_ID()

SELECT LAST_INSERT_ID();

- AUTO_INCREMENT 숫자 제어

AUTO_INCREMENT = 1000; : 1000부터 시작

SET @@auto_increment_increment=3 : AUTO_INCREMENT 3씩 증가

1000에서 부터 3씩 증가

CREATE TABLE hongong3(
	toy_id INT AUTO_INCREMENT PRIMARY KEY,
    toy_name CHAR(4),
    age INT);
ALTER TABLE hongong3 AUTO_INCREMENT=1000;
-- AUTO_INCREMENT 3씩 증가 
SET @@auto_increment_increment=3;

INSERT INTO hongong3 VALUES (NULL, '톰', 30);
INSERT INTO hongong3 VALUES (NULL, '아분', 20);
INSERT INTO hongong3 VALUES (NULL, '이두', 11);

# INSERT + SELECT

- 일단 mysql에서 기본적으로 제공하는 world 스키마의 city 테이블을 사용할 것이다.

 

SELECT COUNT(*) FROM world.city;

 

DESC world.city;

- SELECT 문으로 값 넣기

CREATE TABLE city_popul(city_name CHAR(35), population INT);
-- world.city에 있는 Name과 Population 열의 데이터들을 city_popul 테이블에 추가시킴. 
INSERT INTO city_popul SELECT Name, Population FROM world.city;

# UPDATE

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

 

- 위에 city_name에 영어 'SEOUL' 을 한글 '서울'로 수정하기.

UPDATE city_popul SET city_name = '서울' WHERE city_name='SEOUL';
SELECT * FROM city_popul WHERE city_name='서울';

- UPDATE 도중 Error Code:1175 발생 시 

SET SQL_SAFE_UPDATES=0; -- Error Code:1175 업데이트 safe mode 해제

 

**UPDATE 사용시 주의사항***

=> UPDATE SET WHERE 중에 WHERE을 사용하지 않을 시에 모든 데이터가 바뀌므로 WHERE을 웬만하면 사용한다. 

=> WHERE을 사용하지 않을 때에는 인구수(population)를 만 단위로 보고 싶을 때 같이 한 번에 데이터를 다 적용할 때 사용한다.

 

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

# DELETE

- DELETE FROM 테이블 이름 WHERE 조건

DELETE FROM city_popul WHERE city_name LIKE 'NEW%' LIMIT 5; -- NEW로 시작하는거 5개 삭제
DELETE FROM city_popul WHERE city_name LIKE 'NEW%'; -- NEW로 시작하는거 전체 삭제