Postgresql_DB_가이드

데이터 업데이트

구일칠구 2022. 8. 6. 03:32

데이터베이스에 이미 있는 데이터를 수정하는 것을 업데이트라고 합니다. 개별 행, 테이블의 모든 행 또는 모든 행의 하위 집합을 업데이트할 수 있습니다. 각 열은 별도로 업데이트할 수 있습니다. 다른 열은 영향을 받지 않습니다.

기존 행을 업데이트하려면 UPDATE 명령을 사용하십시오. 여기에는 세 가지 정보가 필요합니다.

  1. 업데이트할 테이블 및 열의 이름
  2. 열의 새 값
  3. 업데이트할 행

SQL은 일반적으로 행에 대한 고유 식별자를 제공하지 않는다는 것을 5장 에서 상기하십시오 . 따라서 업데이트할 행을 직접 지정하는 것이 항상 가능한 것은 아닙니다. 대신 행을 업데이트하기 위해 충족해야 하는 조건을 지정합니다. 테이블에 기본 키가 있는 경우에만(선언 여부와 상관없이) 기본 키와 일치하는 조건을 선택하여 개별 행을 안정적으로 처리할 수 있습니다. 그래픽 데이터베이스 액세스 도구는 이 사실에 의존하여 행을 개별적으로 업데이트할 수 있습니다.

예를 들어, 이 명령은 가격이 5인 모든 제품을 가격이 10으로 업데이트합니다.

업데이트 제품 SET 가격 = 10 WHERE 가격 = 5;

이로 인해 0, 1 또는 많은 행이 업데이트될 수 있습니다. 어떤 행과도 일치하지 않는 업데이트를 시도하는 것은 오류가 아닙니다.

그 명령어를 자세히 살펴보자. 첫 번째는 키워드 UPDATE다음에 테이블 이름입니다. 평소와 같이 테이블 이름은 스키마로 한정될 수 있습니다. 그렇지 않으면 경로에서 조회됩니다. 다음은 키워드 SET뒤에 열 이름, 등호, 새 열 값이 옵니다. 새 열 값은 상수가 아니라 모든 스칼라 표현식이 될 수 있습니다. 예를 들어 모든 제품의 가격을 10% 올리려면 다음을 사용할 수 있습니다.

업데이트 제품 SET 가격 = 가격 * 1.10;

보시다시피 새 값에 대한 표현식은 행의 기존 값을 참조할 수 있습니다. 우리는 또한 WHERE조항을 생략했습니다. 생략하면 테이블의 모든 행이 업데이트됨을 의미합니다. 존재하는 경우 조건과 일치하는 행만 WHERE업데이트됩니다. 절의 등호 SET는 할당이고 절의 등호 WHERE는 비교이지만 이것이 모호성을 생성하지 않습니다. 물론 WHERE조건이 평등 테스트일 필요는 없습니다. 다른 많은 연산자를 사용할 수 있습니다( 9장 참조 ). 그러나 표현식은 부울 결과로 평가되어야 합니다.

UPDATE절 에 둘 이상의 할당을 나열 하여 명령에서 둘 이상의 열을 업데이트할 수 있습니다 SET. 예를 들어:

업데이트 mytable SET a = 5, b = 3, c = 1 WHERE a > 0;

'Postgresql_DB_가이드' 카테고리의 다른 글

쿼리 개요  (0) 2022.08.06
수정된 행에서 데이터 반환  (0) 2022.08.06
데이터 삽입  (0) 2022.08.06
생성된 열  (0) 2022.08.05
제약  (0) 2022.08.05