> 데이터 베이스 > MySQL 튜토리얼 > 업데이트 문을 사용하여 테이블의 데이터를 어떻게 업데이트합니까?

업데이트 문을 사용하여 테이블의 데이터를 어떻게 업데이트합니까?

Johnathan Smith
풀어 주다: 2025-03-19 15:37:32
원래의
854명이 탐색했습니다.

업데이트 문을 사용하여 테이블의 데이터를 어떻게 업데이트합니까?

SQL의 업데이트 문은 테이블에서 기존 레코드를 수정하는 데 사용됩니다. 업데이트 문의 기본 구문은 다음과 같습니다.

 <code class="sql">UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;</code>
로그인 후 복사

다음은 구성 요소의 고장입니다.

  • Table_Name 업데이트 : 데이터가 업데이트 될 테이블을 지정합니다.
  • set column1 = value1, column2 = value2, ... : 업데이트 될 열을 나열하고 새 값을 나열합니다. 한 번에 하나 이상의 열을 업데이트 할 수 있습니다.
  • 위치 : 조건 : 업데이트해야 할 행을 지정합니다. 이것은 선택적 조항이지만 생략하면 테이블의 모든 행이 업데이트됩니다.

예를 들어, ID 101 ~ 75000 으로 직원의 salary 업데이트하려면 SQL 명령이 다음과 같습니다.

 <code class="sql">UPDATE employees SET salary = 75000 WHERE employee_id = 101;</code>
로그인 후 복사

의도 한 행만 업데이트하기 위해 Where 절을 올바르게 사용하는 것이 중요합니다.

업데이트 할 행을 지정하기 위해 업데이트 문과 어떤 SQL 조항을 사용할 수 있습니까?

업데이트 할 업데이트 행을 지정하기 위해 업데이트 명령문과 함께 사용 된 기본 SQL 절은 WHERE 절입니다. 이 조항을 사용하면 행이 충족 해야하는 조건을 업데이트하기 위해 정의 할 수 있습니다. 예를 들어:

 <code class="sql">UPDATE customers SET status = 'active' WHERE last_order_date > '2023-01-01';</code>
로그인 후 복사

WHER 절 외에도 다음 절 또는 구성을 사용할 수도 있습니다.

  • 가입 : 다른 테이블의 값을 기반으로 한 테이블의 행을 업데이트하려면. 예를 들어:
 <code class="sql">UPDATE orders o JOIN customers c ON o.customer_id = c.customer_id SET o.shipping_address = c.address WHERE c.country = 'USA';</code>
로그인 후 복사
  • in : 값이 값 목록과 일치하는 행을 업데이트합니다. 예를 들어:
 <code class="sql">UPDATE products SET discount = 10 WHERE category_id IN (1, 2, 3);</code>
로그인 후 복사
  • 존재합니다 : 다른 테이블에 행의 존재에 따라 행을 업데이트합니다. 예를 들어:
 <code class="sql">UPDATE suppliers SET status = 'inactive' WHERE NOT EXISTS ( SELECT 1 FROM orders WHERE orders.supplier_id = suppliers.supplier_id AND order_date > '2023-01-01' );</code>
로그인 후 복사

이 조항을 사용하면 업데이트를 위해 특정 행을 정확하게 타겟팅 할 수 있습니다.

업데이트 문을 사용할 때 데이터 무결성을 보장하기 위해 어떤 예방 조치를 취해야합니까?

업데이트 문을 사용할 때 데이터 무결성 보장에는 몇 가지 예방 조치가 필요합니다.

  1. 거래 사용 : 거래에서 업데이트 문을 래핑하십시오. 이를 통해 무언가 잘못되면 변경 사항을 롤백 할 수있어 부분 업데이트를 방지 할 수 있습니다.
 <code class="sql">BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123; -- Check if the update was successful IF @@ROWCOUNT = 1 COMMIT; ELSE ROLLBACK;</code>
로그인 후 복사
  1. WHERE 절을 테스트하십시오 : 업데이트를 실행하기 전에 올바른 행을 대상으로하는지 확인하기 위해 동일한 위치 조항으로 SELECT 문을 실행하십시오.
 <code class="sql">SELECT * FROM employees WHERE department = 'Sales'; -- If the result is as expected, then proceed with the UPDATE UPDATE employees SET bonus = bonus * 1.1 WHERE department = 'Sales';</code>
로그인 후 복사
  1. 백업 데이터 : 항상 데이터베이스의 최근 백업이 있습니다. 의도하지 않은 업데이트의 경우 복구에 필수적입니다.
  2. 제약 및 트리거 사용 : 제약 조건 (외국 키, 고유 한 제약 조건)을 구현하고 비즈니스 규칙을 자동으로 시행하기위한 트리거.
  3. 권한 제한 : 사용자가 업데이트를 수행하는 데 필요한 최소 요구 권한이 있는지 확인하여 무단 변경의 위험을 줄입니다.
  4. WHERE 절 : WHERE 절이없는 업데이트는 표에있는 모든 행을 수정하지 마십시오 . 항상 필요한 경우 WHERE 절을 포함하도록 항상 두 번 확인하십시오.
  5. 명시 적 열 이름 사용 : SET column = DEFAULT 사용하는 대신 실제 값을 지정하여 예상치 못한 결과를 피하십시오.

이러한 예방 조치에 따라 데이터를 의도하지 않은 수정으로부터 보호하고 무결성을 유지할 수 있습니다.

업데이트 문이 테이블의 데이터를 올바르게 수정했는지 어떻게 확인할 수 있습니까?

업데이트 문이 표에서 데이터를 올바르게 수정했는지 확인하는 것은 데이터 정확도를 유지하는 데 중요합니다. 다음은 다음과 같은 몇 가지 방법입니다.

  1. SELECT 문 : 업데이트 문을 실행 한 후 SELECT 문을 사용하여 업데이트 된 데이터를 검색하고 검토하십시오. 여기에는 업데이트 Where 절에서와 동일한 조건이 포함되어야합니다.
 <code class="sql">UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT'; SELECT employee_id, name, department, salary FROM employees WHERE department = 'IT';</code>
로그인 후 복사
  1. RowCount : SQL Server의 @@ rowCount 시스템 기능을 확인하여 업데이트 문의 영향을받는 행 수를 확인하십시오.
 <code class="sql">UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT'; SELECT @@ROWCOUNT AS RowsAffected;</code>
로그인 후 복사
  1. 트랜잭션 로그 : 트랜잭션을 기록하는 데이터베이스 관리 시스템을 사용하는 경우 트랜잭션 로그를 확인하여 업데이트 문의 정확한 변경 사항을 확인할 수 있습니다.
  2. 비교 : 업데이트 전에 데이터의 백업 또는 스냅 샷을 비교하여 변경 사항을 확인하십시오. 이것은 프로그래밍 방식 또는 수동으로 수행 할 수 있습니다.
  3. 자동화 된 테스트 : 업데이트 전후에 실행되는 자동 테스트를 구현하여 예상 결과를 확인합니다.
  4. 감사 트레일 : 시스템이 감사 트레일을 유지하는 경우 감사 테이블에 기록 된 변경 사항을 검토하여 업데이트를 확인할 수 있습니다.

이러한 검증 방법을 사용하면 업데이트 문이 의도 한대로 실행되었는지 여부와 테이블의 데이터가 올바르게 수정되었는지 확인할 수 있습니다.

위 내용은 업데이트 문을 사용하여 테이블의 데이터를 어떻게 업데이트합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿