MySQL UPDATE 구문 마스터하기: 구문, 예제 및 모범 사례
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Key Takeaways
UPDATE
문은SET
및 선택적WHERE
절을 사용하여 테이블의 기존 레코드를 수정합니다.WHERE
절을 생략하면 모든 행이 업데이트됩니다. 이는 위험할 수 있으므로 주의해서 사용해야 합니다.- 트랜잭션으로 업데이트를 래핑하고
SELECT
로 변경 사항을 미리 보면 의도치 않은 데이터 손실을 방지하는 데 도움이 됩니다.
MySQL의 UPDATE
문은 데이터 조작 언어(DML)의 기본 구성 요소로서 테이블 내의 기존 레코드를 수정할 수 있습니다. 데이터를 수정하거나, 값을 조정하거나, 테이블 간에 정보를 동기화할 때, UPDATE
문을 마스터하는 것은 효과적인 데이터베이스 관리에 필수적입니다.
기본 구문
UPDATE
문의 일반적인 구문은 다음과 같습니다.
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
table_name
: 업데이트하려는 레코드가 포함된 테이블의 이름입니다.SET
: 업데이트할 열과 새 값을 지정합니다.WHERE
: 업데이트할 레코드를 필터링합니다. 이 절을 생략하면 모든 레코드가 업데이트되어 의도한 동작이 아닐 수 있습니다.
실제 예제
1. 단일 열 업데이트
특정 행에서 단일 열을 업데이트하려면:
UPDATE employees SET salary = 50000 WHERE employee_id = 1234;
이 명령은 employee_id
가 1234인 직원의 salary
를 50,000으로 설정합니다.
2. 여러 열 업데이트
여러 열을 동시에 업데이트하려면:
UPDATE products SET price = 19.99, stock = stock - 1 WHERE product_id = 5678;
이 명령은 product_id
가 5678인 제품의 price
를 19.99로 업데이트하고 stock
을 1 줄입니다.
3. WHERE
절 없이 업데이트
WHERE
절을 생략할 때 주의하십시오.
UPDATE customers SET status = 'inactive';
이 명령은 customers
테이블의 모든 레코드에 대해 status
를 'inactive'로 설정합니다.
고급 사용법
1. 조인으로 업데이트
다른 테이블과의 조인을 기반으로 레코드를 업데이트할 수 있습니다.
UPDATE orders JOIN customers ON orders.customer_id = customers.customer_id SET orders.status = 'shipped' WHERE customers.country = 'USA';
이 명령은 미국 출신 고객과 연결된 모든 주문에 대해 status
를 'shipped'로 업데이트합니다.
2. 업데이트에서 서브쿼리 사용
서브쿼리를 사용하여 다른 테이블의 데이터를 기반으로 값을 설정할 수 있습니다.
UPDATE employees SET department_id = ( SELECT department_id FROM departments WHERE department_name = 'Sales' ) WHERE employee_id = 1234;
이 명령은 employee_id
가 1234인 직원의 department_id
를 'Sales' 부서의 ID로 설정합니다.
모범 사례
-
항상
WHERE
절을 사용하십시오: 모든 레코드에 대한 의도치 않은 업데이트를 방지하려면 모든 레코드를 업데이트하려는 경우가 아니면 항상WHERE
절을 지정하십시오. -
대량 업데이트 전에 백업: 대규모 업데이트를 수행하기 전에 특히
WHERE
절없이 데이터를 백업하여 실수로 인한 데이터 손실을 방지하십시오. -
트랜잭션 사용: 중요한 업데이트의 경우 오류 발생시 롤백 할 수 있도록
UPDATE
문을 트랜잭션으로 래핑하십시오.START TRANSACTION; UPDATE employees SET salary = 55000 WHERE employee_id = 1234; COMMIT;
-
업데이트 테스트:
SELECT
문을 사용하여UPDATE
의 영향을받을 레코드를 미리 봅니다.SELECT * FROM employees WHERE employee_id = 1234;
-
인덱싱: 성능을 향상시키기 위해
WHERE
절에 사용 된 열이 인덱싱되었는지 확인하십시오.
결론
UPDATE
문은 기존 데이터를 수정하기 위한 MySQL의 강력한 도구입니다. 구문과 모범 사례를 이해함으로써 데이터 업데이트를 효율적이고 안전하게 수행할 수 있습니다. 특히 대량 업데이트를 처리할 때는 항상 주의를 기울이고 WHERE
절이 의도한 레코드를 정확하게 대상으로 하는지 확인하십시오.
FAQs
테이블의 모든 행이 업데이트되며, 백업하지 않으면 되돌릴 수 없는 데이터 변경이 발생할 수 있습니다.
예, UPDATE
에서 JOIN
을 사용하여 다른 테이블의 관련 데이터를 기반으로 레코드를 수정할 수 있습니다.
업데이트를 실행하기 전에 동일한 WHERE
절로 SELECT
를 사용하여 영향을받는 행을 미리 봅니다.
Leapcell은 백엔드 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무료로 무제한 프로젝트 배포
- 사용량에 따라서만 지불하십시오. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하도록 자동 확장됩니다.
- 제로 운영 오버헤드 — 빌드에만 집중하십시오.
설명서에서 자세히 알아보십시오!
X에서 팔로우하세요: @LeapcellHQ