MySQL 업데이트 세트에는 예제가 있습니다. MySQL 쿼리를 업데이트하세요. 매개변수 또는 인수




DELETE 키워드는 무엇입니까?

SQL DELETE 명령은 데이터베이스 테이블에서 더 이상 필요하지 않은 행을 삭제하는 데 사용됩니다. 테이블에서 전체 행을 삭제합니다. 삭제 명령은 데이터베이스에서 임시 또는 사용되지 않는 데이터를 삭제하는 데 유용합니다. DELETE 명령은 단일 쿼리로 테이블에서 두 개 이상의 행을 삭제할 수 있습니다. 이는 데이터베이스 테이블에서 많은 수의 행을 제거할 때 이점이 있는 것으로 입증되었습니다.

행이 삭제되면 복구할 수 없습니다. 따라서 데이터베이스에서 데이터를 삭제하기 전에 데이터베이스 백업을 만드는 것이 좋습니다. 이를 통해 데이터베이스를 복원하고 나중에 필요한 경우 데이터를 볼 수 있습니다.

삭제 명령 구문

삭제 명령의 기본 구문은 다음과 같습니다.

  • DELETE FROM `table_name`은 MySQL 서버에 테이블에서 행을 제거하도록 지시합니다.
  • 선택 사항이며 DELETE 쿼리의 영향을 받는 행 수를 제한하는 필터를 배치하는 데 사용됩니다.

DELETE 쿼리에서 WHERE 절을 사용하지 않으면 해당 테이블의 모든 행이 삭제됩니다. DELETE 명령에 대해 더 자세히 논의하기 전에 작업할 영화 테이블에 몇 가지 샘플 데이터를 삽입해 보겠습니다.

INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ("The Great Dictator", "Chalie Chaplie", 1920, 7); INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ("샘플 영화", "익명", 8); INSERT INTO 영화(`제목`, `감독`, `출시 연도`, `카테고리_ID`) VALUES("영화 3", "존 브라운", 1920, 8);

위 스크립트를 실행하면 영화 테이블에 3개의 영화가 추가됩니다. 수업을 더 진행하기 전에 테이블에 모든 영화를 가져와 보겠습니다. 아래에 표시된 스크립트가 이를 수행합니다.

SELECT * '영화'에서;

영화_ID감독연도_출시카테고리_ID
1 캐리비안의 해적 4롭 마샬2011 1
2 사라 마샬을 잊어버림니콜라스 스톨러2008 2
3 X 남자없는2008 없는
4 코드네임 블랙에드가 짐즈2010 없는
5 아빠의 어린 소녀들없는2007 8
6 천사와 악마없는2007 6
7 다빈치 코드없는2007 6
9 허니 문너스존 슐츠2005 8
16 67% 유죄없는2012 없는
18 위대한 독재자찰리 채플리1920 7
19 샘플 영화익명의없는8
20 영화 3존 브라운1920 8

Myflix 비디오 라이브러리가 더 이상 "The Great Dictator"를 회원에게 대여하지 않고 데이터베이스에서 제거하기를 원한다고 가정해 보겠습니다. 해당 영화 ID는 18이며 ​​아래에 표시된 스크립트를 사용하여 해당 행을 삭제할 수 있습니다. 영화 테이블에서.

Myflix에 대해 MySQL WorkBench에서 위 스크립트를 실행하면 데이터베이스 테이블에서 ID가 18인 영화가 삭제됩니다.

영화 테이블의 현재 상태를 살펴보겠습니다.

SELECT * '영화'에서;

영화_ID제목감독연도_출시카테고리_ID
1 캐리비안의 해적 4롭 마샬2011 1
2 사라 마샬을 잊어버림니콜라스 스톨러2008 2
3 X 남자없는2008 없는
4 코드네임 블랙에드가 짐즈2010 없는
5 아빠의 어린 소녀들없는2007 8
6 천사와 악마없는2007 6
7 다빈치 코드없는2007 6
9 허니 문너스존 슐츠2005 8
16 67% 유죄없는2012 없는
19 샘플 영화익명의없는8
20 영화 3존 브라운1920 8
  • ID가 18인 영화가 쿼리 결과 집합에 반환되지 않았습니다.
  • 테이블의 단일 열을 삭제할 수 없습니다. 전체 행을 삭제할 수 있습니다.

삭제하려는 영화 목록이 있다고 가정하면 IN과 함께 WHERE 절을 사용할 수 있습니다.

위 스크립트를 실행하면 영화 테이블에서 ID가 20과 21인 영화가 삭제됩니다.

업데이트 명령이 무엇인가요?

업데이트 명령은 테이블의 행을 수정하는 데 사용됩니다. 업데이트 명령을 사용하면 단일 필드 또는 여러 필드를 동시에 업데이트할 수 있습니다. 또한 다른 테이블의 값으로 테이블을 업데이트하는 데에도 사용할 수 있습니다.

명령 구문 업데이트

SQL Update 명령의 기본 구문은 다음과 같습니다.

  • UPDATE `table_name`은 MySQL에게 테이블의 데이터를 업데이트하도록 지시하는 명령입니다.
  • SET `column_name` = `new_value"는 업데이트 쿼리의 영향을 받는 필드의 이름과 값입니다. 참고로 업데이트 값을 설정할 때 문자열 데이터 유형은 작은따옴표로 묶어야 합니다. 숫자 값은 필요하지 않습니다. 날짜 데이터 유형은 작은따옴표로 묶어야 하며 "YYYY-MM-DD" 형식이어야 합니다.
  • 선택 사항이며 UPDATE 쿼리의 영향을 받는 행 수를 제한하는 필터를 넣는 데 사용할 수 있습니다.

이제 회원 테이블의 데이터를 업데이트하는 실제 예를 살펴보겠습니다. 회원의 회원 번호 1과 2의 데이터 레코드가 다음과 같이 업데이트된다고 가정해 보겠습니다.

회원번호 업데이트 필요
1 전화번호를 999에서 0759 253 532로 변경했습니다.
2 이름을 Janet Smith Jones로 변경하고 실제 주소를 Melrose 123으로 업데이트해야 합니다.

데이터를 업데이트하기 전에 먼저 회원 번호 1에 대한 업데이트부터 시작하겠습니다. 회원 번호 1에 대한 기록을 검색해 보겠습니다. 아래 표시된 스크립트는 이를 수행하는 데 도움이 됩니다.

위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.

회원_번호전체 이름성별생일물리적_주소우편 주소연락처_번호이메일
1 자넷 존스여성21-07-1980 첫 번째 거리 플롯 번호 4개인 가방999

이제 아래 표시된 스크립트를 사용하여 연락처 번호를 업데이트하겠습니다.

위 스크립트를 실행하면 회원번호 1의 연락처가 999에서 0759 253 532로 업데이트됩니다. 이제 업데이트 스크립트를 실행한 후 회원번호 1의 기록을 살펴보겠습니다.

위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.

회원_번호전체 이름성별생일물리적_주소우편 주소연락처_번호이메일
1 자넷 존스여성21-07-1980 첫 번째 거리 플롯 번호 4개인 가방0759 253 542 이 이메일 주소는 스팸봇으로부터 보호됩니다. 보려면 JavaScript를 활성화해야 합니다.

이제 회원번호 2에 필요한 업데이트를 살펴보겠습니다.

회원_번호전체 이름성별생일물리적_주소우편 주소연락처_번호이메일
2 스미스 존스여성23-06-1980 파크 스트리트없는없는이 이메일 주소는 스팸봇으로부터 보호됩니다. 보려면 JavaScript를 활성화해야 합니다.

다음 스크립트는 이를 수행하는 데 도움이 됩니다.

위 스크립트를 실행하면 회원 번호 2의 전체 이름이 Janet Smith Jones로 업데이트되고 실제 주소가 Melrose 123으로 업데이트됩니다.

회원_번호전체 이름성별생일물리적_주소우편 주소연락처_번호이메일
2 자넷 스미스 존스여성23-06-1980 멜로즈 123없는없는이 이메일 주소는 스팸봇으로부터 보호됩니다. 보려면 JavaScript를 활성화해야 합니다.

요약

  • 삭제 명령은 테이블에서 더 이상 필요하지 않은 데이터를 제거하는 데 사용됩니다.
  • "WHERE 절"은 DELETE 쿼리의 영향을 받는 행 수를 제한하는 데 사용됩니다.
  • 한번 삭제된 데이터는 복구가 불가능하므로 삭제 전 반드시 백업을 해두실 것을 권장합니다.
  • 업데이트 명령은 기존 데이터를 수정하는 데 사용됩니다.
  • "WHERE 절"은 UPDATE 쿼리의 영향을 받는 행 수를 제한하는 데 사용됩니다.

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 스크립트를 사용하여 데이터 업데이트

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

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

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

업데이트 tbl_name SET col_name1=expr1 [, col_name2=expr2, ...]

UPDATE 문은 기존 테이블 행의 새 값으로 열을 업데이트합니다. SET 문은 수정해야 할 열과 그 열에 어떤 값을 설정해야 하는지를 지정합니다. WHERE 절이 있는 경우 업데이트할 행을 지정합니다. 그렇지 않으면 모든 행이 업데이트됩니다. ORDER BY 표현식이 지정되면 행은 지정된 순서대로 업데이트됩니다.

LOW_PRIORITY 키워드가 지정되면 다른 클라이언트가 테이블 읽기를 완료할 때까지 이 UPDATE 명령의 실행이 지연됩니다.

IGNORE 키워드가 지정되면 업데이트에서 중복 키 오류가 발생하더라도 업데이트 명령이 중단되지 않습니다. 충돌을 일으키는 행은 업데이트되지 않습니다.

tbl_name 인수로 지정된 표현식에서 열에 액세스하면 UPDATE 명령은 해당 열의 현재 값을 사용합니다. 예를 들어 다음 명령은 age 열을 현재 값보다 1 큰 값으로 설정합니다.

Mysql> UPDATE persondata SET age=age+1;

UPDATE 명령은 왼쪽에서 오른쪽으로 값을 할당합니다. 예를 들어 다음 명령은 age 열을 복제한 다음 이를 증가시킵니다.

Mysql> UPDATE persondata SET 연령=나이*2, 나이=나이+1;

열이 현재 값으로 설정되면 MySQL은 이를 인식하고 업데이트하지 않습니다.

UPDATE 명령은 실제로 변경된 행 수를 반환합니다. MySQL 버전 3.22 이상에서는 C API 함수 mysql_info()가 발견되어 업데이트된 행 수와 UPDATE 실행 시 발생한 경고 수를 반환합니다.

MySQL 버전 3.23에서는 LIMIT #을 사용하여 지정된 수의 행만 수정되었는지 확인할 수 있습니다.

이 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.

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

설명

MySQL 업데이트 문 MySQL 데이터베이스 테이블의 기존 레코드를 업데이트하는 데 사용됩니다. 수행하려는 업데이트 유형에 따라 UPDATE 문에 대한 세 가지 구문이 있습니다.

통사론

MySQL에서 단일 테이블을 업데이트할 때 UPDATE 문에 대한 간단한 형식의 구문은 다음과 같습니다.

이제 단일 테이블을 업데이트할 때 MySQL UPDATE 문의 전체 구문은 다음과 같습니다.

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

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

매개변수 또는 인수

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개 행 - 선택사항입니다. LIMIT를 지정하면 테이블에서 업데이트할 최대 레코드 수를 제어합니다. number_rows 파일에 지정된 최대 레코드 수가 테이블에 업데이트됩니다.

하나의 열을 업데이트하는 예

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

이 MySQL 예에서 UPDATE는 customer_id = 500인 고객 테이블의 last_name 필드를 'Ford'로 업데이트했습니다.

여러 열 업데이트의 예

단일 UPDATE 문을 사용하여 둘 이상의 열을 업데이트할 수 있는 MySQL UPDATE 예제를 살펴보겠습니다.

여러 열을 업데이트하려면 열/값 쌍을 쉼표로 구분하면 됩니다.
이 예제 MySQL UPDATE 문은 상태를 'Nevada'로, customer_rep을 23으로 업데이트했습니다. 여기서 customer_id는 200보다 큽니다.

다른 테이블의 데이터로 테이블을 업데이트하는 예

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

MySQL

이 UPDATE 예는 customer_id가 5000보다 큰 모든 레코드에 대해 고객 테이블만 업데이트합니다. 공급자 테이블의 공급자_이름이 고객 테이블의 고객_이름과 일치하면 공급자 테이블의 도시가 고객 테이블의 도시 필드에 복사됩니다.