SQL에서 조회 후 업데이트하기
SQL에서 특정 조건에 맞는 데이터를 조회한 후,
그 데이터를 업데이트하는 것은 매우 일반적인 작업입니다.
이 문서에서는 데이터를 조회 후 업데이트를 구현하는 방법과 그와 관련된 몇 가지 SQL 예제를 제공합니다.
1. 조회 후 업데이트하기
조회 후 업데이트를 할 때는 다음과 같은 절차를 따릅니다:
- 조회 쿼리 작성: 업데이트하려는 데이터의 조건을 확인하기 위한 조회 쿼리를 작성합니다.
- 업데이트 쿼리 작성: 조회된 결과를 기반으로 데이터베이스를 업데이트합니다.
예를 들어, Sales
부서에 속한 모든 직원의 급여를 'abc'
로 업데이트하려고 할 때, 다음과 같이 할 수 있습니다:
예제: IN
문을 사용한 조회 후 업데이트
sql
-- Sales 부서에 속한 직원의 급여를 'abc'로 업데이트
UPDATE employees
SET salary = 'abc'
WHERE id IN (
SELECT id
FROM employees
WHERE department = 'Sales'
);
위 예제에서는 IN
절을 사용하여 Sales
부서의 직원들을 조회한 후, 해당 직원들의 급여를 업데이트하고 있습니다. 이 방법은 조회된 결과에 포함된 id
와 일치하는 행만 업데이트합니다.
조회 후 조건에 맞춰 업데이트 구현 예제
데이터를 조회하여 특정 조건에 맞는 데이터를 업데이트하는 방법은 다양한 상황에서 사용됩니다. 예를 들어, 부서가 Sales
인 직원의 급여를 조회한 후 조건에 맞게 변경하려는 경우를 생각해 볼 수 있습니다.
예제: 조회 후 조건에 맞춰 업데이트
sql
-- 1. 급여가 5000 이하인 Sales 부서 직원 조회
SELECT id, name, salary
FROM employees
WHERE department = 'Sales' AND salary <= 5000;
-- 2. 조회된 직원의 급여를 5500으로 업데이트
UPDATE employees
SET salary = 5500
WHERE id IN (
SELECT id
FROM employees
WHERE department = 'Sales' AND salary <= 5000
);
위 예제는 다음과 같은 단계로 진행됩니다:
- 조회 쿼리:
Sales
부서에서 급여가 5000 이하인 직원들을 조회합니다. - 업데이트 쿼리: 조회된 결과에서
id
를 이용해, 해당 직원들의 급여를 5500으로 업데이트합니다.
이 방식은 매우 효율적으로 데이터를 조회하고, 조회된 결과에 따라 조건부 업데이트를 수행할 수 있는 방법입니다.
참고 사항
- 조회와 업데이트의 결합: 조회와 업데이트는 SQL의 서브쿼리,
JOIN
,EXISTS
등을 이용하여 결합할 수 있습니다. - 트랜잭션 관리: 복잡한 조회와 업데이트의 경우, 트랜잭션을 사용하여 일관성을 유지하고 오류 발생 시 롤백할 수 있도록 관리하는 것이 좋습니다.
이와 같이 SQL을 활용하여 다양한 조건에 맞는 데이터를 조회하고 업데이트할 수 있습니다.