#INSERT UPDATE DELETE

김유미·2021년 12월 16일
0

2021년 12월 16일 🔆맑음

프롤로그

select가 끝나고 insert, update, delete를 배웠습니다.
서브쿼리로 머리가 터질 것 같았는데 그래도 비교적 간단한 것 같습니다. 오늘 내용은 빠르게 복습해보도록 하겠습니다.

INSERT

문법

INSERT INTO 테이블명 [(컬럼)] <-- 생략가능 VALUES (값, 값) <-- 생략불가

--컬럼을 생략할 경우에는 값에 모든 컬럼값을 채워야 합니다.
--컬럼의 개수, 값의 개수 같아야한다.

INSERT INTO 테이블명 (컬럼1,컬럼3,컬럼2) <-- 순서 상관없이 입력가능
VALUES (값1, 값3, 값2)

--단, 컬럼과 값의 위치가 같아야한다.

예제

1. 책이름 : NCS기반의 오라클, 출판사 : 북스홀릭, 가격 : 25000원

INSERT INTO book (bookid, bookname, publisher, price)
VALUES (11, 'NCS기반의 오라클', '북스홀릭', 25000 );

2. 책이름 : 아프니까 청춘이다 , 출판사 : yes24, 가격 : 15000

INSERT INTO book (bookid, publisher, bookname, price)
VALUES (14, 'yes24', '아프니까 청춘이다' , 15000);

=> publisher, bookname 순서 바뀌었어도 컬럼과 값의 위치가 같아서 자동으로 표에 알맞게 추가

SELECT에서 조회된 데이터를 '삽입할 테이블'에 여러행을 넣을때 사용하는 문법

INSERT INTO 삽입할 테이블명 (컬럼1, 컬럼2, 컬럼3, 컬럼4 ....)
SELECT 컬럼1, 컬럼2, 컬럼3, 컬럼4 ....
FROM 조회할 테이블명

예제

1. book 테이블의 출판사가 북스홀릭인 책을 imported_book 테이블에 넣어라

INSERT INTO imported_book(bookid, bookname, publisher, price)
SELECT bookid, bookname, publisher, price
FROM book
WHERE publisher = '북스홀릭'

2. imported_book 테이블에 bookid = 15, 책이름 : MYSQL, 출판사 : 교보출판사, 가격 : 23000 삽입

INSERT INTO imported_book(bookid, bookname, publisher, price)
VALUES (15, 'MYSQL', '교보출판사', 23000);

UPDATE

문법

UPDATE 테이블명
SET 컬럼 = '수정값' , 컬럼 = 수정값
WHERE 조건

-- SET에 수정할 컬럼의 값을 입력하는곳
-- 여러 컬럼을 수정시 ,로 구분
-- WHERE조건 없이 수정은 모든데이터를 수정하게 된다. (위험)
-- update사용시 SELECT를 먼저하면 실수를 줄일 수 있다.

예제

1. book테이블에 'NCS기반의 오라클' 책이름을 '오라클'로 변경하라

UPDATE book
SET bookname = '오라클'
WHERE bookname = 'NCS기반의 오라클';

2. '이것이 오라클이다'책의 가격을 '아프니까 청춘이다'책의 가격으로 변경

UPDATE book
SET price = (SELECT price
FROM book
WHERE bookname = '아프니까 청춘이다')
WHERE bookname = '이것이 오라클이다';

DELETE

문법

DELETE FROM 테이블명
WHERE 조건

-- 삭제할때는 항상 두번 세번 확인할것
-- 조건문은 필수

예제
1. 책번호가 21, 22를 BOOK테이블에서 삭제하라

DELETE FROM book
WHERE bookid IN (21, 22);

-- 값이 한 개가 아닐 때는 'IN'

2. 오라클과 관련된 책을 모두 삭제하라 ('오라클'단어가 들어간 책)

DELETE FROM book
WHERE bookname LIKE '%오라클%';

COMMIT

-- 모든 작업들을 (INSERT, UPDATE, DELETE) 저장

ROLLBACK

-- 바로 이전 COMMIT 상태로 되돌림

0개의 댓글

관련 채용 정보