MySQL

UPDATE 구문과 조건절

ryeonng 2024. 5. 31. 17:05

UPDATE

구문은 이미 존재하는 테이블의 레코드를 수정하는 명령문이다.
이 구문은 WHERE 절을 포함하여 사용된다.
WHERE 절을 사용하여 특정 조건에 해당하는 레코드만 수정할 수 있다.

 

UPDATE 구문은 다음과 같은 형식으로 작성한다.

UPDATE  [테이블 이름]
SET [칼럼 이름1] = [새로운 값1], [칼럼 이름2] = [새로운 값2], ...
WHERE [조건];

 

위 구문에서 SET 절은 테이블의 특정 칼럼 값을 변경하는 부분이다.

WHERE 절은 조건에 해당하는 레코드만 변경할 수 있도록 필터링 한다.

 

예를 들어, student 테이블에서 grade가 2인 학생들의 major 값을 '전자공학과'로 변경하려면 다음과 같이 작성한다.

UPDATE student
SET major = '전자공학과'
WHERE grade = 2;

 

UPDATE 구문은 매우 강력하므로 사용 시에는 주의가 필요하다. 특히, WHERE 절을 사용할 때는 조건을 신중하게 선택해아 한다.

 

 


 

-- drop table `order`;

CREATE TABLE `order` (
  id INT PRIMARY KEY,
  order_name VARCHAR(20) NOT NULL,
  product_name VARCHAR(20) NOT NULL,
  quantity INT NOT NULL,
  order_date DATE NOT NULL
);


INSERT INTO `order` (id, order_name, product_name, quantity, order_date) 
VALUES
(1, '홍길동', '피자', 2, '2022-02-26'),
(2, '김영희', '치킨', 3, '2022-02-26'),
(3, '이철수', '햄버거', 1, '2022-02-27'),
(4, '박지민', '스테이크', 2, '2022-02-27'),
(5, '최영희', '짬뽕', 1, '2022-02-27'),
(6, '박서준', '초밥', 3, '2022-02-28'),
(7, '김민지', '파스타', 2, '2022-02-28'),
(8, '정재은', '토스트', 1, '2022-02-28'),
(9, '신은주', '감바스', 2, '2022-03-01'),
(10, '유지훈', '돈까스', 1, '2022-03-01');

select * from `order`;

-- UPDATE 구문을 사용할 때는 천천히 WHERE 확인하기 !
-- 1. id가 1인 주문의 상품 수량을 5개로 수정하시오.
UPDATE `order` SET quantity = 5 WHERE id = 1;

-- 2. id가 3인 사람의 메뉴를 감바스로 수정하시오.
update `order` set product_name = '감바스' where id = 3;

-- 3. id가 5인 주문의 주문 일자를 '2024-05-31'로 수정하시오.
UPDATE `order` SET order_date = '2024-05-31' where id = 5;

-- 주문 수량이 2개 이상이고, 상품명이 '피자'인 주문의 수령인 이름을 '김철수'로 수정하시오.
UPDATE `order` SET order_name = '김철수' WHERE quantity >= 2 and product_name = '피자';

-- 주문 날짜가 '2022-02-28'이고, 상품명이 '초밥'인 주문의 주문 수량을 5개로 수정하시오.
UPDATE `order` SET quantity = 5 WHERE order_date ='2022-02-28' and product_name = '초밥'; 

-- SQL 언어의 세 가지 분류
-- DDL(Date Definition Language) : 테이블의 구조를 변경할 때 사용되는 언어이다. (= 컬럼을 변경, 추가)
-- DML(정의)
-- DCL(정의)

-- 존재하지 않는 컬럼 address를 추가하고 '경기도 성남시'로 수정
alter table `order` add column address varchar(100);
-- 주문 수량이 1개 이하이고, 상품명이 '감바스'인 주문의 수령인 주소를 '부산시 진구'로 수정
UPDATE `order` SET address = '부산시 진구' WHERE quantity = 1 and product_name = '감바스';

'MySQL' 카테고리의 다른 글

UNIQUE 제약  (0) 2024.06.04
DELETE 구문과 조건절  (0) 2024.05.31
SELECT 구문과 조건절  (0) 2024.05.31
테이블 생성과 제약 사항  (0) 2024.05.31
데이터베이스 구축 절차  (2) 2024.05.30