MySQL 참조 가이드. MySQL 데이터베이스에 대한 SQL 쿼리의 예 선택 조건을 사용하여 여러 행을 변경합니다.

업데이트 명령— 기존 레코드 또는 테이블의 여러 레코드를 변경합니다. SQL. 테이블이나 뷰의 기본 테이블에 있는 기존 값을 수정합니다.

UPDATE 명령 명령 구문

UPDATE 명령 구문

업데이트 명령. UPDATE 명령의 기본 키워드 및 매개변수

  • 스키마 -일반적으로 일부 사용자 이름과 동일한 권한 식별자
  • 테이블 보기 -테이블 이름 SQL, 데이터가 변경되는 경우; 뷰가 정의되면 기본 테이블의 데이터가 수정됩니다. SQL대표
  • subquery_1 - 하위 쿼리, 서버는 뷰와 동일한 방식으로 처리합니다.
  • 와 함께장문 - 테이블 열 SQL또는 제출물 SQL, 그 값이 변경됩니다. 테이블 열이 문장에서 나온 경우 세트생략하면 열 값은 변경되지 않습니다.
  • 특급 - ; 이 표현식에는 기본 변수와 선택적 표시 변수가 포함될 수 있습니다.
  • 하위 쿼리_2 - 해당 열에 새 값이 할당됨
  • 하위 쿼리_3 - 해당 열에 새 값이 할당됨

어디- 특정 조건에 따라 수정될 행의 범위를 정의합니다. 진실; 이 문구를 생략하면 테이블이나 뷰의 모든 행이 수정됩니다.
승인이 발행되면 모든 업데이트 트리거, 테이블에 정의되어 있습니다.
하위 쿼리. 제안하는 경우 세트포함 하위 쿼리, 수정된 각 행에 대해 정확히 하나의 행을 반환합니다. 하위 쿼리 결과의 각 값은 괄호 안의 해당 목록 열에 할당됩니다. 하위 쿼리가 어떤 행도 반환하지 않으면 열이 할당됩니다. 없는. 하위 쿼리수정된 테이블에서 데이터를 선택할 수 있습니다. 권하다 세트표현을 결합할 수 있으며 하위 쿼리.

UPDATE 명령 예 1
모든 구매자의 평점을 200과 동일한 값으로 변경합니다.

고객 세트등급 = 200;

UPDATE 명령 예 2
테이블의 모든 행에서 열 값을 바꾸는 작업은 일반적으로 거의 사용되지 않습니다. 따라서 팀에서와 마찬가지로 팀에서도 삭제, 술어를 사용할 수 있습니다. 판매자 Giovanni(snum = 1003)가 서비스를 제공하는 모든 고객에 대해 등급 열 값의 지정된 대체를 수행하려면 다음을 입력해야 합니다.

고객 세트등급 = 200 여기서 snum = 1001;

SQL UPDATE 명령 예 3
문장에서 세트쉼표로 구분하여 열에 대해 원하는 수의 값을 지정할 수 있습니다.

엠프 세트 job = 'MANAGER', sal = sal + 1000, deptno = 20 WHERE ename = 'JONES';

UPDATE 명령 예 4
문장에서 세트특별한 구문(예: IS NULL)을 사용하지 않고 NULL 값을 지정할 수 있습니다. 따라서 런던(도시 = '런던')의 모든 고객 평점을 NULL로 설정하려면 다음을 입력합니다.

고객 세트 rating = NULL WHERE 도시 = '런던';

UPDATE 명령 예 5
다음 명령 구문의 사용을 설명합니다.

  • 두 문장 형태 모두 세트하나의 성명서로 함께합니다.
  • 하위 쿼리.
  • 수정할 수 있는 행의 범위를 제한하는 WHERE 절입니다.

엠프 세트부서 =
(선택하다 deptno FROM dept WHERE loc = 'BOSTON'), (sal, comm) = ( 선택하다 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.deptno = b.deptno) WHERE deptno IN ( 선택하다 deptno FROM dept WHERE loc = 'DALLAS' OR loc = 'DETROIT');

위의 명령문은 다음을 수행합니다.

  • 달라스나 디트로이트에서 근무하는 직원만 수정합니다.
  • Boston 직원의 deptno 열 값을 설정합니다.
  • 각 직원의 급여를 전체 부서 평균 급여의 1.1배로 설정
  • 각 직원의 커미션을 부서 전체 평균 커미션의 1.5배로 설정

이 MySQL 튜토리얼에서는 MySQL을 사용하는 방법을 설명합니다. 업데이트 문구문과 예제가 포함되어 있습니다.

통사론

가장 간단한 형태로, MySQL에서 한 테이블을 업데이트할 때 UPDATE 문의 구문은 다음과 같습니다.

UPDATE 테이블 SET 컬럼1 = 표현식1, 컬럼2 = 표현식2, ... ;

그러나 하나의 테이블을 업데이트할 때 MySQL UPDATE 문의 전체 구문은 다음과 같습니다.

UPDATE [ LOW_PRIORITY ] [ IGNORE ] 테이블 SET 컬럼1 = 표현식1, 컬럼2 = 표현식2, ... ] ;

MySQL에서 한 테이블을 다른 테이블의 데이터로 업데이트할 때 UPDATE 문의 구문은 다음과 같습니다.

UPDATE table1 SET 컬럼1 = (SELECT 표현식1 FROM table2 WHERE 조건) ;

여러 테이블을 업데이트할 때 MySQL UPDATE 문의 구문은 다음과 같습니다.

UPDATE table1, table2, ... SET 컬럼1 = 표현식1, 컬럼2 = 표현식2, ... WHERE table1.column = table2.column AND 조건;

매개변수 또는 인수

LOW_PRIORITY 선택사항. LOW_PRIORITY가 제공되면, LOW_PRIORITY에서 읽는 프로세스가 없을 때까지 업데이트가 지연됩니다. 테이블. LOW_PRIORITY는 테이블 수준 잠금을 사용하는 MyISAM, MEMORY 및 MERGE 테이블과 함께 사용할 수 있습니다. 무시 선택사항. IGNORE를 제공하면 업데이트 중에 발생한 모든 오류가 무시됩니다. 행 업데이트로 인해 기본 키나 고유 인덱스가 위반되는 경우 해당 행에 대한 업데이트가 수행되지 않습니다. 컬럼1, 컬럼2 업데이트하려는 열입니다. 표현식1, 표현식2에 할당할 새 값 열 1, 열 2. 그래서 열 1 표현식1, 열 2의 값이 할당될 것입니다. 표현식2, 등등. WHERE 조건 선택사항. 업데이트를 실행하기 위해 충족해야 하는 조건입니다. ORDER BY 표현식 선택사항. 업데이트할 레코드 수를 제한할 때 레코드를 적절하게 정렬하기 위해 LIMIT와 함께 사용할 수 있습니다. LIMIT개 number_rows 선택사항. LIMIT가 제공되면 테이블에서 업데이트할 최대 레코드 수를 제어합니다. 최대로 지정된 레코드 수는 다음과 같습니다. number_rows테이블에 업데이트됩니다.

예 - 단일 열 업데이트

매우 간단한 MySQL UPDATE 쿼리 예제를 살펴보겠습니다.

업데이트 고객 SET last_name = "Anderson" WHERE customer_id = 5000;

이 MySQL 업데이트 예제는 "앤더슨"에게 고객테이블이 있는 곳은 고객 ID 5000입니다.

예 - 여러 열 업데이트

단일 UPDATE 문으로 둘 이상의 열을 업데이트하려는 MySQL UPDATE 예제를 살펴보겠습니다.

업데이트 고객 SET 상태 = "캘리포니아", customer_rep = 32 WHERE customer_id > 100;

여러 열을 업데이트하려면 열/값 쌍을 쉼표로 구분하면 됩니다.

상태"캘리포니아"와 고객_대표 32까지 고객 ID 100보다 큽니다.

예 - 다른 테이블의 데이터로 테이블 업데이트

MySQL의 다른 테이블의 데이터로 테이블을 업데이트하는 방법을 보여주는 UPDATE 예제를 살펴보겠습니다.

고객 업데이트
SET 도시 = (도시 선택
공급자로부터
공급자.공급자_이름 = 고객.고객_이름)
여기서 customer_id > 2000;

이 UPDATE 예는 고객모든 레코드에 대한 테이블 고객 ID 2000보다 큽니다. 공급 업체 이름~로부터 공급업체테이블이 일치합니다 고객 이름~로부터 고객테이블, 도시공급자 테이블의 내용이 도시필드의 고객테이블.

예 - 여러 테이블 업데이트

단일 UPDATE 문에 두 개 이상의 테이블이 포함된 업데이트를 수행하려는 MySQL UPDATE 예제를 살펴보겠습니다.

업데이트 고객, 공급업체 SETcustomer.city=공급업체.cityWHEREcustomer.customer_id=공급업체.supplier_id;

이 MySQL UPDATE 문 예제는 도시필드의 고객테이블에 도시~로부터 공급업체테이블이 있는 곳은 고객 ID일치 공급자_ID.

데이터베이스의 데이터를 업데이트한다는 것은 기존 테이블 레코드의 값을 변경하는 것을 의미합니다. 이 경우 행 그룹(테이블의 모든 행 포함)의 필드 값을 변경하고 개별 행의 필드 값을 편집하는 것이 모두 가능합니다.

SQL에서는 UPDATE 명령을 사용하여 데이터베이스 테이블의 레코드를 변경할 수 있습니다. 가장 최소한의 형태로 데이터 업데이트 명령은 다음과 같습니다.

업데이트 테이블 SET 필드 = 값

여기, 업데이트– 요청이 데이터 업데이트임을 나타내는 명령

테이블– 변경이 이루어질 테이블의 이름;

세트– 명령 뒤에 할당된 값이 있는 쉼표로 구분된 필드가 옵니다.

필드– 변경이 이루어질 테이블 필드;

의미– 필드에 입력될 새 값입니다.


예를 들어 테이블의 모든 행에 있는 필드를 0으로 설정해야 하는 경우 다음 쿼리를 실행할 수 있습니다.

업데이트 상품 SET 가격 = 0

이 경우 테이블에서 사용 가능한 모든 행의 가격 필드는 값 0을 갖습니다.

하나의 값 변경

테이블의 모든 필드 값을 변경하는 경우는 극히 드뭅니다. 대부분의 경우 특정 항목의 값을 변경해야 합니다. 이를 위해 UPDATE 명령이 포함된 줄 끝에 업데이트 작업을 수행해야 하는 줄을 결정하는 조건을 지정하는 WHERE 지시문이 추가됩니다.

테이블이있다:

예를 들어, 우리에게 알려진 값으로 제품 비용을 업데이트해야 합니다. 이렇게 하려면 다음 쿼리를 실행하세요.

업데이트 상품 세트 가격 = 150 WHERE num = 2

이제 필드를 변경하기 전에 조건 num = 2를 충족하는 행이 선택됩니다. 테이블에는 그러한 행이 하나만 있습니다. 이 재고에서는 가격이 150 값으로 변경됩니다. 결과적으로 변경된 제품 가격이 포함된 테이블을 얻게 됩니다.

선택 조건을 사용하여 여러 줄 변경

그 다양성을 모두 기억한다면 요청 조건, 샘플이 얼마나 다양할 수 있는지 상상할 수 있습니다. 따라서 업데이트 쿼리는 한 행, 행 그룹 또는 테이블의 모든 행에 대해 실행될 수 있습니다. 이는 모두 직면한 작업과 업데이트 작업을 수행해야 하는 테이블 행에 따라 다릅니다.

예를 들어, 현재 가격이 100 이상인 모든 상품의 가격을 절반으로 낮추고 싶습니다. 요구:

업데이트 상품 SET 가격 = 가격 / 2 WHERE 가격 >= 100

상태 어디여기에는 가격이 100 이상인 제품만 선택되고 가격이 100 미만인 제품은 요청의 영향을 받지 않는다는 규칙이 포함되어 있습니다.

가격 = 가격 / 2– 새로운 상품 가격이 계산되는 공식. 새 가격은 이전 가격을 2로 나눈 값으로 기록됩니다.

이러한 쿼리를 실행한 결과, 변경된 레코드가 포함된 테이블을 얻게 됩니다.

여러 행 필드의 값 업데이트

한 번에 여러 필드를 업데이트해야 하는 경우 해당 값이 있는 모든 필드는 SET 지시문 뒤에 쉼표로 구분되어 표시됩니다. 예를 들어, 코드 2가 있는 제품의 이름과 가격을 "iron"으로 변경하고 비용은 300으로 변경해야 합니다.

업데이트 상품 SET 제목 = "철" , price = 300 WHERE num = 2 !}

이 쿼리는 행의 일치하는 각 필드에 해당 값을 할당합니다. 그리고 조건은 변경 사항이 적용되는 줄을 나타냅니다.


다음은 업데이트 작업의 주요 유형입니다. 이를 기반으로 SQL을 이용한 개발 시 대부분의 데이터 수정 문제를 해결하기 위한 쿼리가 생성됩니다.

MySQL에서 데이터를 변경하거나 업데이트해야 하는 경우 SQL UPDATE 명령을 사용하여 작업할 수 있습니다. ,

문법

다음은 MySQL 시트 데이터 일반 ​​SQL 구문을 변경하는 UPDATE 명령입니다.

UPDATE table_name SET field1=새 값1, field2=새 값2

  • 동시에 하나 이상의 필드를 업데이트할 수 있습니다.
  • WHERE 절에 어떤 조건이라도 지정할 수 있습니다.
  • 별도의 테이블에서 데이터를 업데이트할 수도 있습니다.

테이블 행에 지정된 데이터를 업데이트해야 할 때 INEKE는 매우 유용합니다.

데이터 업데이트 명령줄

아래에서는 SQL UPDATE 명령을 사용하여 데이터 테이블에 지정된 w3big_tbl을 업데이트합니다.

다음 예에서는 데이터 테이블을 w3big_title w3big_id 필드 값 3으로 업데이트합니다.

# mysql -u 루트 -p 비밀번호; 비밀번호 입력:****** mysql> w3big 사용; 데이터베이스 변경 mysql> UPDATE w3big_tbl -> SET w3big_title="Learning JAVA" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

PHP 스크립트를 사용하여 데이터 업데이트

SQL 문을 실행하기 위해 mysql_query()를 사용하는 PHP 함수는 SQL UPDATE 문을 사용하거나 INEKE가 적용되지 않습니다.

MySQL의 이 함수> 명령줄에서 SQL 문을 실행하는 효과는 동일합니다.

다음 예에서는 w3big_title 3 필드의 w3big_id 데이터를 업데이트합니다.