본문 바로가기

Database/이론

[DB] Update

컬럼의 데이터를 변경할 때는

 

CREATE

READ

UPDATE

DELETE 

 

CRUD 중 U에 해당하는 UPDATE를 사용합니다.

 

 

-- U -  UPDATE

 

사용방법은 간단합니다.

 

UPDATE 테이블명

SET 컬럼명 = 값, 컬럼명 = 값,.... -- 바꿀 내용

WHERE 조건;

 

한번 값을 바꿔봅시다.

 

배추, 3000G, 10000원, 홈플러스, 판교점, 1000평, 주차장 500석

무, 500G, 5000원, 홈플러스, 강남점, 500평, 주차장 300석

배추, 2000G, 5000원, 이마트, 서초점, 800평, 주차장 800석

 

위의 데이터가 상품 테이블과 마트 테이블로 나뉘어져 들어가 있을 때

UPDATE를 수행해보겠습니다.

이떄 상품 테이블은 마트테이블의 시퀀스 넘버와

외래키로 묶여져있다고 가정합니다.

 

CREATE SEQUENCE JAN03_PRODUCT_SEQ;

CREATE TABLE JAN03_PRODUCT(

P_NO NUMBER(3) PRIMARY KEY,

P_NAME VARCHAR2(10 CHAR) NOT NULL,

P_WEIGHT NUMBER(4) NOT NULL,

P_PRICE NUMBER(5) NOT NULL,

P_M_NO NUMBER(3) NOT NULL,

CONSTRAINT FK_JAN03_PRODUCT FOREIGN KEY(P_M_NO)

REFERENCES MARKET(M_NO)

ON DELETE CASCADE

);

 

 

 

-- 무를 공짜로 변경!

 

UPDATE JAN03_PRODUCT

SET P_PRICE = 0

WHERE P_NAME = '무';

 

이름이 '무'인 상품의 가격을 0으로 변경합니다.

 

-- 배추를 김장용특대배추로 이름 수정!

 

 

UPDATE JAN03_PRODUCT

SET P_NAME = '김장용특대배추'

WHERE P_NAME = '배추';

 

이름이 '배추'인 상품의 이름을 '김장용특대배추'로 변경합니다.

 

 

-- 모든 마트의 주차장 30%줄이기!

 

UPDATE MARKET

SET M_SEAT = 0.7 * M_SEAT;

 

조건이 필요없이 모든 주차장에 0.7을 곱한값을 주차장 값으로 지정합니다.

(30% 할인 = 원가 * 70%)

 

-- 홈플러스 판교점의 상품가격 10% 할인!

 

UPDATE JAN03_PRODUCT

SET P_PRICE = P_PRICE * 0.9

WHERE P_M_NO = 1;

 

마켓의 정보의 시퀀스 넘버가 외래키로 묶여있으므로

시퀀스 넘버 1에 해당하는 홈플러스 판교점의 상품 가격에

0.9를 곱합니다.

 

 

-- 제일 비싼 상품 10% 할인!

 

UPDATE JAN03_PRODUCT

SET P_PRICE = P_PRICE * 0.9

WHERE P_PRICE = (SELECT MAX(P_PRICE) FROM JAN03_PRODUCT);

 

MAX기능을 써서 가격이 제일 높은 상품에 0.9를 곱합니다.

 

 

'Database > 이론' 카테고리의 다른 글

[DB] Delete  (0) 2025.01.03
[DB] 계층형 쿼리  (0) 2025.01.03
[DB] JOIN 연산의 종류  (0) 2025.01.03
[DB] View  (0) 2025.01.02
[DB] Join  (0) 2025.01.02