ComputerScience/Database

[SQL 기초] 6. 기본 문법 (INSERT/UPDATE/DELETE)

LazyCat 2023. 7. 25. 18:27
반응형

1. INSERT

 

(1) 기본 문법

INSERT INTO 테이블명  VALUES (값1, 값2, 값3 ....)

 

 

(2) 대응하는 INSERT

INSERT INTO 테이블명(열1, 열2, 열3.....) VALUES (값1, 값2, 값3...)

 

 

(3) AUTO_INCREMENT

입력하지 않아도 자동으로 숫자가 증가하며 부여되는 index를 갖고 싶을때 사용하는 구문

AUTO_INCREMENT는 반드시 PRIMARY KEY(중복X 기본키)여야 한다.

 

 

toy_id열에 NULL을 삽입하더라도, 테이블 조회시에 toy_id가 증가하는 숫자로 자동입력된 것을 볼 수있다.

실행 결과

 

 

(4) SELECT LAST_INSERT_ID();

SELECT LAST_INSERT_ID()

테이블의 데이터가 얼마나 입력된지 알 수 있는 쿼리문

실행 결과

 

* 테이블의 인덱스가 1000부터 시작하고 3씩 증가했으면 좋겠어요

AUTO_INCREMENT = 1000;

SET @@auto_increment_increment = 3;

 

 

 

 

 

 

2. 다른 DB에 있는 데이터를 가져오기

(1) 테이블 생성

(2) INSERT 구문

INSERT INTO 테이블1 SELECT 테이블2.열이름1, 테이블2.열이름2 FROM 테이블2;

테이블2의 데이터를 테이블1에 삽입한다

 

 

 

 

 

 

3. UPDATE 

: UPDATE는 데이터(행)에서 어떠한 열에 해당되는 값을 수정해주는 구문이다.

 

 

citiy_name 이 'Seoul'인 데이터를 '서울'이라는 한국어로 바꾸고 싶다면?

UPDATE 테이블명

    SET 열이름 = 변경후

    WHERE 열이름 = 변경전;

 

그런데 해당 구문을 실행하면, 이렇게 오류가 발생하는 것을 볼 수있다.

MySQL의 워크벤치 설정에서 업데이트가 안되도록 설정되어있기 때문이다.

 

Edit -> Preferences
SQL Editor->  Safe Updates 해제

 

**설정 이후에 MySQL Workbench를 재시작 해줘야 한다

 

재시작 후 UPDATE 구문이 잘 실행되는 것을 볼 수있다.

 

 

 

 

 

 

 

4. DELETE 

: DELETE는 테이블의 행 데이터를 삭제할 때 사용되는 구문이다.

 

DELETE FROM 테이블명

       WHERE 조건;

 

 

 

5. 대용량 테이블의 삭제

 

DELETE: 데이터를 삭제하는데 오래 걸림

DROP: 테이블 자체를 삭제

TRUNCATE: 데이터를 삭제하는데 빠른 속도이다

 

반응형