컬럼의 데이터를 변경할 때는
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 |