ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL UPDATE: 데이터베이스 수정의 핵심 키워드
    🐬 MySQL/MySQL 키워드 2024. 11. 27. 11:02
    728x90

    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)은 컴퓨터나 데이터베이스에서 하나의 작업 단위를 이루는 동작 묶음

     

    예)

    1. 은행 이체
      • A 계좌에서 10만 원 출금 → B 계좌로 10만 원 입금
      • 중간에 시스템이 꺼지거나 오류가 나도 '둘 다 완료'되거나, 아니면 '아무 작업도 되지 않음'
    2. 온라인 쇼핑 결제
      • 재고 확인 → 결제 처리 → 주문 기록 생성
      • 이 과정 중 하나라도 실패하면 모든 작업이 취소

    트랜잭션의 핵심은 이 작업들이 완벽히 처리되거나(성공), 아예 아무 일도 없었던 것처럼(실패) 처리

    이처럼 트랜잭션은 데이터가 항상 신뢰할 수 있는 상태로 유지되도록 보장해 주는 개념

     

    트랜잭션의 특징 (ACID)

    1. 원자성(Atomicity): 트랜잭션의 모든 작업이 성공하거나, 하나라도 실패하면 전부 취소. (예: 돈이 송금되지 않았다면 출금도 취소)
    2. 일관성(Consistency): 트랜잭션이 끝난 뒤에도 데이터가 유효한 상태로 유지. (예: 계좌 잔액 합계는 변하지 않아야 함)
    3. 격리성(Isolation): 동시에 여러 트랜잭션이 실행될 때 서로 간섭하지 않음. (예: 다른 사람의 송금 작업이 내 작업에 영향 주지 않음)
    4. 지속성(Durability): 트랜잭션이 성공적으로 끝나면 결과가 영구적으로 저장. (예: 송금 기록이 저장)

    현실적인 예시

    1. 은행 이체
      • A 계좌에서 10만 원 출금 → B 계좌로 10만 원 입금
      • 중간에 시스템이 꺼지거나 오류가 나도 둘 다 완료되거나, 아니면 아무 작업도 되지 않음.
    2. 온라인 쇼핑 결제
      • 재고 확인 → 결제 처리 → 주문 기록 생성
      • 이 과정 중 하나라도 실패하면 모든 작업이 취소.

     

    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
Designed by Tistory.