-
SQL UPDATE: 데이터베이스 수정의 핵심 키워드🐬 MySQL/MySQL 키워드 2024. 11. 27. 11:02728x90
SQL UPDATE: 데이터베이스 수정의 핵심 키워드
안녕하세요, SQL 학습자 여러분!
오늘은 데이터베이스 관리에서 매우 중요한 역할을 하는 UPDATE 키워드에 대해 자세히 알아보겠습니다.
UPDATE는 기존 데이터를 수정하는 데 사용되는 강력한 명령어로, 데이터의 정확성과 최신성을 유지하는 데 필수적입니다.
UPDATE의 기본 구문
UPDATE의 기본 구문은 다음과 같습니다
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
이 구문을 통해 특정 조건에 맞는 행의 데이터를 수정할 수 있습니다.
UPDATE 사용 예시
- 단일 열 업데이트
Qzaj 고객의 이메일 도메인을 'gmail.com' 으로 요청입니다. 변경해주세요 UPDATE sod set email = 'qzaj@gmail.com' WHERE name='qzaj';
- 여러 열 동시 업데이트
Olcc고객정보가 변경 되었습니다. country 는 'USA' 로, 이메일 도메인을 '@yahoo.com'로 변경 해주세요 UPDATE sod set email='olcc@yahoo.com', country='USA' where name = 'olcc';
- 계산된 값으로 업데이트
구찌가방 전체 재고의 가격은 얼마인가? UPDATE product set total_amount= stock_quantity *price where product_name = '구찌 가방';
UPDATE 사용 시 주의사항
WHERE 절의 중요성
- WHERE 절을 생략하면 테이블의 모든 행이 업데이트됩니다.
- 항상 의도한 대로 업데이트되는지 확인하세요.
백업의 중요성
- 중요한 데이터를 업데이트하기 전에는 반드시 백업을 해두세요.
트랜잭션 사용
- 여러 업데이트를 하나의 논리적 단위로 처리하려면 '트랜잭션'(아래더보기 참고)을 사용하세요.
더보기트랜잭션(Transaction)은 컴퓨터나 데이터베이스에서 하나의 작업 단위를 이루는 동작 묶음
예)
- 은행 이체
- A 계좌에서 10만 원 출금 → B 계좌로 10만 원 입금
- 중간에 시스템이 꺼지거나 오류가 나도 '둘 다 완료'되거나, 아니면 '아무 작업도 되지 않음'
- 온라인 쇼핑 결제
- 재고 확인 → 결제 처리 → 주문 기록 생성
- 이 과정 중 하나라도 실패하면 모든 작업이 취소
트랜잭션의 핵심은 이 작업들이 완벽히 처리되거나(성공), 아예 아무 일도 없었던 것처럼(실패) 처리
이처럼 트랜잭션은 데이터가 항상 신뢰할 수 있는 상태로 유지되도록 보장해 주는 개념
트랜잭션의 특징 (ACID)
- 원자성(Atomicity): 트랜잭션의 모든 작업이 성공하거나, 하나라도 실패하면 전부 취소. (예: 돈이 송금되지 않았다면 출금도 취소)
- 일관성(Consistency): 트랜잭션이 끝난 뒤에도 데이터가 유효한 상태로 유지. (예: 계좌 잔액 합계는 변하지 않아야 함)
- 격리성(Isolation): 동시에 여러 트랜잭션이 실행될 때 서로 간섭하지 않음. (예: 다른 사람의 송금 작업이 내 작업에 영향 주지 않음)
- 지속성(Durability): 트랜잭션이 성공적으로 끝나면 결과가 영구적으로 저장. (예: 송금 기록이 저장)
현실적인 예시
- 은행 이체
- A 계좌에서 10만 원 출금 → B 계좌로 10만 원 입금
- 중간에 시스템이 꺼지거나 오류가 나도 둘 다 완료되거나, 아니면 아무 작업도 되지 않음.
- 온라인 쇼핑 결제
- 재고 확인 → 결제 처리 → 주문 기록 생성
- 이 과정 중 하나라도 실패하면 모든 작업이 취소.
BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_id = 1; UPDATE accounts SET balance = balance + 100 WHERE account_id = 2; COMMIT;
- 서브쿼리를 활용한 업데이트
UPDATE product SET price = price*1.05 WHERE product_name IN ( SELECT product_name FROM( SELECT product_name FROM product WHERE category = '전자제품')as new_price );
728x90'🐬 MySQL > MySQL 키워드' 카테고리의 다른 글
SQL GROUP BY: 데이터 집계의 핵심 키워드 (0) 2024.11.28 SQL SELECT: 데이터베이스의 마법 지팡이 (2) 2024.11.27 SQL DELETE: 데이터 삭제의 정석 (1) 2024.11.27 SQL INSERT: 데이터베이스에 생명을 불어넣는 마법 (1) 2024.11.26 SQL 데이터 타입: 데이터베이스 설계의 기초 (0) 2024.11.26