PostgreSQL - UPDATE Query: A Friendly Guide for Beginners

안녕하세요, 데이터베이스 열정가 되고자 하는 여러분! 오늘 우리는 PostgreSQL의 fascinatings한 세계로 뛰어들어 UPDATE 쿼리에 대해 배우겠습니다. 프로그래밍에 새로운 사람이라고 걱정하지 마세요 - 저는 단계별로 안내해드릴 테니까요. 수년 동안 수많은 학생들을 가르친 경험을 바탕으로 말이죠. 그럼, 커피 한 잔 (또는 당신이 좋아하는 차 한 잔)을 챙겨서, 시작해 보겠습니다!

PostgreSQL - Update Query

What is an UPDATE Query?

먼저 UPDATE 쿼리가 무엇인지 이해해 보겠습니다. 디지털 주소록을 생각해 보세요 (이것은 실质적으로 데이터베이스 테이블입니다). 친구가 새로운 집으로 이사간다고 가정해 봅시다. 그들에게 새로운 항목을 만들지는 않을 겁니다, 아닙니까? 기존의 주소를 간단히 업데이트할 것입니다. PostgreSQL에서 UPDATE 쿼리가 하는 일은 바로 이와 같습니다 - 테이블에 있는 기존 데이터를 수정합니다.

Syntax of UPDATE Query

이제 PostgreSQL에서 UPDATE 쿼리의 기본 문법을 살펴보겠습니다:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

이를 해부해 보겠습니다:

  1. UPDATE table_name: 이는 어떤 테이블을 업데이트할지 지정합니다.
  2. SET column1 = value1, column2 = value2, ...: 이는 어떤 열을 변경하고 어떤 새로운 값을 설정할지 지정합니다.
  3. WHERE condition: 이는 매우 중요합니다! 어떤 행이 업데이트될지 결정합니다. 이를 생략하면 테이블의 모든 행이 업데이트됩니다!

Examples of UPDATE Queries

Example 1: Basic Update

가정해 봅시다, employees라는 테이블이 있고, id, name, salary 열이 있습니다. 모든 직원에게 10% 인상을 주고 싶습니다. 이렇게 합니다:

UPDATE employees
SET salary = salary * 1.1;

이 쿼리는 모든 직원의 급여를 10% 인상합니다. WHERE 절을 사용하지 않았기 때문에 모든 행에 영향을 미칩니다.

Example 2: Update with a Condition

이제 ID가 1000 미만인 직원들에게만 인상을 주고 싶다고 가정해 봅시다:

UPDATE employees
SET salary = salary * 1.1
WHERE id < 1000;

이 쿼리는 ID가 1000 미만인 직원들의 급여를 인상합니다.

Example 3: Updating Multiple Columns

occasionally, you might want to update more than one column at a time. Let's say we want to update both the salary and the job title for a specific employee:

UPDATE employees
SET salary = 75000, job_title = 'Senior Developer'
WHERE id = 1234;

이 쿼리는 ID가 1234인 직원의 급여와 직책을 모두 업데이트합니다.

Best Practices and Tips

  1. Always use WHERE: 모든 행을 업데이트하려는 것이 아니라면, 항상 WHERE 절을 포함하세요. 제가 가르친 한 학생이 우연히 회사 전체 직원에게 CEO의 급여를 주는 바람에!

  2. Use transactions: 중요한 업데이트를 할 때는 쿼리를 트랜잭션으로 감싸세요. 이렇게 하면 잘못된 경우 롤백할 수 있습니다:

BEGIN;
UPDATE employees SET salary = salary * 2;
-- Oops! We didn't mean to double everyone's salary!
ROLLBACK;
  1. Test with SELECT first: UPDATE를 실행하기 전에 WHERE 조건을 SELECT 쿼리로 테스트하여 올바른 행을 대상으로 하고 있는지 확인하세요:
SELECT * FROM employees WHERE id < 1000;
-- If this looks good, then run:
UPDATE employees SET salary = salary * 1.1 WHERE id < 1000;
  1. Use RETURNING: PostgreSQL에는 업데이트된 내용을 볼 수 있는 멋진 기능이 있습니다:
UPDATE employees
SET salary = salary * 1.1
WHERE id = 1234
RETURNING id, name, salary;

이렇게 하면 업데이트된 행(들)을 보여주어 확인에 매우 유용합니다.

Common UPDATE Methods

다음은 PostgreSQL에서 일반적으로 사용되는 UPDATE 방법을 마크다운 형식으로 제시한 표입니다:

Method Description Example
Basic UPDATE Updates specified columns for all rows or those meeting a condition UPDATE employees SET salary = 50000 WHERE department = 'IT'
UPDATE with calculation Updates a column based on its current value UPDATE products SET price = price * 1.1
UPDATE with subquery Uses a subquery to determine which rows to update or what values to set UPDATE orders SET status = 'shipped' WHERE id IN (SELECT order_id FROM shipments WHERE ship_date = CURRENT_DATE)
UPDATE with JOIN Updates based on data in another table UPDATE employees e SET salary = e.salary * 1.1 FROM departments d WHERE e.dept_id = d.id AND d.name = 'Sales'
UPDATE with CASE Allows for conditional logic in updates UPDATE employees SET bonus = CASE WHEN sales > 10000 THEN 1000 ELSE 500 END

이러한 각 방법은 자신의 사용 사례가 있으며, PostgreSQL에 익숙해질수록 언제 사용할지 직감적으로 알게 될 것입니다.

Conclusion

이제 여러분은 PostgreSQL의 UPDATE 쿼리 세계로的第一步을 냈네요. 기억해 두세요, 강력한 권력은 큰 책임을 동반합니다 - 실행 버튼을 누르기 전에 WHERE 절을 반드시 확인하세요!

실습이 완벽함을 만드는 것입니다, 따라서 테스트 데이터베이스를 설정하고 이 쿼리들을 직접 시도해 보지 마세요. 당신이 프로처럼 데이터를 업데이트할 수 있을 때까지!

기쁜 쿼리 작성과 언제나 데이터베이스가 완벽하게 유지되길 바랍니다!

Credits: Image by storyset