데이터 조작 (1)
1. INSERT 문
1-1. 개념
INSERT는 테이블이 만들어지면 데이블 안에 데이터를 추가하는 명령어이다.
1-2. INSERT 문법
>> 1) 테이블의 컬럼 순서대로 입력
1 | INSERT INTO |
>> 2) 테이블 컬럼 지정 (더 많이 쓰임. 컬럼 명을 명시해주기 때문에 유지보수에 용이함)
1 | INSERT INTO |
1-3. INSERT 문 실습
>> 실습 준비
1 | -- LINK라는 테이블을 생성함 |
>> INSERT 문 실습
(1) 1개 ROW 입력
1 | INSERT INTO |
1 | SELECT * FROM LINK; |
1 | -- 내용 안에 작은 따움표를 추가하고 싶으면 작은 따움표 두개(''##'')를 더 추가해주면 됨. |
1 | SELECT * FROM FILM; |
(2) 동시에 N개 ROW 입력
1 | INSERT INTO |
(3) 테이블 프레임에 테이블을 입력
> LINK 테이블의 스키마(껍데기)만 가져와서 LINK_TMP 테이블을 생성한다
1 | CREATE TABLE LINK_TMP AS |
1 | INSERT INTO |
2. UPDATE 문
2-1. 개념
UPDATE 문은 테이블에 존재하는 데이터를 수정하는 작업이다. 업무를 처리하는데 필수적인 것이며 동시성에 유의해야 한다.
- UPDATE는 대상 행에 대해서 락(LOCK)을 잡는다.
- 락(LOCK)이란 다른 사용자는 해당 행에 대해서 작업을 하지 못한다는 것이다. (대기하게 됨)
- 즉 UPDATE를 한 후 재빨리 COMMIT을 하지 않는다면 RDBMS의 동시성이 낮아진다.
2-2. UPDATE 문법
1 | UPDATE |
2-3. UPDATE 실습
>> 실습 준비
1 | ALTER TABLE LINK ADD COLUMN LAST_UPDATE DATE; -- LINK테이블에 LAST_UPDATE컬럼을 추가 |
>> UPDATE 문 실습
(1) 지정 범위 수정 (WHERE절)
[MISSION] LAST_UPDATE 컬럼의 값을 지정한 DEFAULT값으로 UPDATE하기
1 | UPDATE LINK |
1 | SELECT * FROM LINK; |
(2) 전체 테이블 수정
[MISSION] REL컬럼의 값을 'NO DATA’로 수정하기
- 이 기능은 조심해서 사용 필요.
1 | UPDATE LINK |
(3) 전체 테이블 수정 – 특정 컬럼을 이용
[MISSION] DESCRIPTION 컬럼을 NAME 컬럼의 값으로 채우기
1 | UPDATE LINK |
3. UPDATE JOIN 문
3-1. 개념
UPDATA 시 다른 테이블의 내용을 참조하고 싶을 때 UPDATE JOIN 문을 사용한다. 복잡한 업무를 처리하는데 매우 유용한 방법이다.
3-2. UPDATE JOIN 문법
1 | UPDATE |
3-3. UPDATE JOIN 실습
>> 실습 준비
1 | CREATE TABLE PRODUCT_SEGMENT |
1 | INSERT INTO PRODUCT_SEGMENT |
1 | CREATE TABLE PRODUCT |
1 | INSERT INTO PRODUCT (NAME, PRICE, SEGMENT_ID) |
1 | SELECT * FROM PRODUCT_SEGMENT; |
1 | SELECT * FROM PRODUCT; |
>> UPDATE JOIN 문 실습
[MISSION] PRODUCT_SEGMENT 테이블에 있는 할인율(DISCOUNT) 정보를 이용해서 PRODUCT 테이블의 NET_PRICE (할인가 / 실 판매가)를 계산하여 채우기
1 | UPDATE PRODUCT A |
1 | SELECT * FROM PRODUCT; |