본문 바로가기

MySQL

UPDATE 구문과 조건절

UPDATE 구문은 이미 존재하는 테이블의 레코드(row)를 수정하는 명령문아다. 이 구문은 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 절을 사용할 때는 조건을 신중하게 선택하여야한다.

 

 

샘플 데이터를 이용하여 UPDATE 구문과 조건절 사용해보기

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');
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;

select * from `order`;

-- 4. 주문 수량이 2개 이상이고, 상품명이 '피자'인 주문의 수령인 이름을 '김철수'로 수정
update `order`
set order_name = '김철수'
where quantity >= 2 and product_name = '피자';

-- 5. 주문 수량이 1개 이하이고, 상품명이 '감바스'인 주문의 수령인 주소를 '경기도 성남시'로 수정
update `order`
set address = '경기도%'
where quantity <= 1 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 (정의)
    
-- 테이블의 구조를 변경
alter table `order` add column address varchar(100);    
-- 경기도 성남시로 수정 ? 

select * from `order`;

update `order`
set address = '부산시 진구'
where quantity = 1 and product_name = '감바스';
728x90

'MySQL' 카테고리의 다른 글

UNIQUE 제약에 이해  (0) 2024.06.04
DELETE 구문과 조건절  (0) 2024.05.31
SELECT 구문과 조건절  (0) 2024.05.31
INSERT 구문과 제약 사항  (0) 2024.05.30
테이블 생성과 제약 사항 연습  (0) 2024.05.30