MySQL 업데이트는 복잡한 업데이트 쿼리입니다. 구문 업데이트. 하나의 열을 업데이트하는 예



기사의 내용
1. 가장 간단한 MySQL 쿼리
2. 간단한 SELECT 쿼리
3. 단순 INSERT(새 항목) 쿼리
4. 단순 UPDATE(덮어쓰기, 추가) 쿼리
5. 단순 DELETE(레코드 삭제) 쿼리
6. 단순 DROP(테이블 삭제) 쿼리
7. 복잡한 MySQL 쿼리
8. MySQL 쿼리 및 PHP 변수

1. 가장 간단한 SQL 쿼리

1. 모든 데이터베이스 목록을 표시합니다.

데이터베이스 표시;
2. base_name 데이터베이스의 모든 테이블을 나열합니다.

base_name에 테이블 표시;

2. MySQL 데이터베이스에 대한 간단한 SELECT 쿼리

선택하다– 데이터베이스에서 기존 데이터를 선택하는 쿼리입니다. 선택을 위한 특정 선택 매개변수를 지정할 수 있습니다. 예를 들어, 러시아어로 된 요청의 본질은 다음과 같습니다. SELECT 그러한 열 FROM 그러한 테이블 WHERE 그러한 열의 매개변수가 값과 같습니다.

1. tbl_name 테이블의 모든 데이터를 선택합니다.

SELECT * FROM tbl_name;
2. tbl_name 테이블의 레코드 수를 표시합니다.

SELECT 개수(*) FROM tbl_name;
3. (FROM) 테이블 tbl_name 제한(LIMIT) 2부터 시작하여 3개의 레코드를 선택(SELECT)합니다.

SELECT * FROM tbl_name LIMIT 2,3;
4. (FROM) 테이블 tbl_name에서 모든(*) 레코드를 선택(SELECT)하고 id 필드를 기준으로 순서대로 정렬(ORDER BY)합니다.

SELECT * FROM tbl_name ORDER BY id;
5. tbl_name 테이블에서 모든 레코드를 선택(SELECT)하고 id 필드를 기준으로 역순으로 정렬(ORDER BY)합니다.

SELECT * FROM tbl_name ORDER BY id DESC;
6. ( 선택하다) (의 모든 (*) 레코드 에서) 테이블 사용자그리고 그것들을 정렬합니다( 주문) 현장에서 ID오름차순으로 제한( 한계) 처음 5개 항목.

SELECT * FROM 사용자 ORDER BY ID LIMIT 5;
7. 테이블에서 모든 레코드를 선택합니다. 사용자, 들판은 어디에 있나요? f이름값에 해당합니다 제나.

SELECT * FROM 사용자 WHERE fname="Gena";
8. 테이블에서 모든 레코드를 선택합니다. 사용자, 여기서 필드 값은 f이름시작하다 .

SELECT * FROM 사용자 WHERE fname LIKE "Ge%";
9. 테이블에서 모든 레코드를 선택합니다. 사용자, 어디 f이름로 끝나다 , 값의 오름차순으로 레코드를 정렬합니다. ID.

SELECT * FROM 사용자 WHERE fname LIKE "%na" ORDER BY id;
10. 열에서 모든 데이터를 선택합니다. f이름, 이름테이블에서 사용자.

SELECT fname, lname FROM 사용자;

11. 사용자 데이터 테이블에 국가가 있다고 가정해 보겠습니다. 따라서 발생하는 값의 목록만 표시하려면(예를 들어 러시아는 20번이 아니라 한 번만 표시되도록) DISTINCT를 사용합니다. 이는 반복되는 가치의 덩어리에서 러시아, 우크라이나, 벨로루시를 가져올 것입니다. 따라서 테이블에서 사용자스피커 국가모든 고유 값이 출력됩니다

사용자와 다른 국가를 선택하세요.
12. 테이블에서 모든 행 데이터를 선택합니다. 사용자어디 나이값은 18,19 및 21입니다.

SELECT * FROM 사용자 WHERE 연령 IN(18,19,21);
13. 최대값을 선택합니다. 나이테이블에 사용자. 즉, 테이블에 가장 큰 값이 있는 경우 나이(영어 연령 기준)이 55이면 쿼리 결과는 55가 됩니다.

사용자로부터 최대(연령)을 선택하세요.
14. 테이블에서 데이터 선택 사용자분야별 이름그리고 나이어디 나이가장 작은 값을 취합니다.

SELECT 이름, 최소(나이) FROM 사용자;
15. 테이블에서 데이터 선택 사용자현장에서 이름어디 ID 2와 같지 않습니다.

id!="2"; WHERE 사용자로부터 이름을 선택하세요.

3. 단순 INSERT(새 항목) 쿼리

끼워 넣다– 처음으로 데이터베이스에 레코드를 삽입할 수 있는 쿼리입니다. 즉, 데이터베이스에 새로운 레코드(라인)를 생성합니다.

1. 하다 새로운 항목테이블에 사용자, 현장에서 이름 Sergey를 삽입하고 현장에 나이 25를 삽입합니다. 따라서 이러한 값을 가진 새 행이 테이블에 추가됩니다. 열이 더 있으면 나머지 열은 비어 있거나 기본값으로 유지됩니다.

INSERT INTO 사용자(이름, 나이) VALUES ("Sergey", "25");

4. MySQL 데이터베이스에 대한 간단한 UPDATE 쿼리

업데이트– 필드 값을 예약하거나 데이터베이스의 기존 행에 항목을 추가할 수 있는 쿼리입니다. 예를 들어, 기성 라인이 있지만 시간이 지남에 따라 변경되었으므로 age 매개변수를 다시 작성해야 합니다.

1. 테이블에서 사용자 나이 18이 된다.

업데이트 사용자 SET 연령 = "18" WHERE id = "3";
2. 모든 것이 첫 번째 요청과 동일하며 두 개 이상의 필드를 덮어쓰는 요청 구문만 표시됩니다.
테이블에 사용자 id가 3개의 필드 값과 같은 경우 나이 18세가 되고 국가러시아.

업데이트 사용자 SET 연령 = "18", 국가 = "러시아" WHERE id = "3";

5. MySQL 데이터베이스에 대한 간단한 DELETE(레코드 삭제) 쿼리

삭제– 테이블에서 행을 삭제하는 쿼리입니다.

1. 테이블에서 행을 제거합니다. 사용자어디 ID 10과 같습니다.

id = "10"인 사용자에서 삭제;

6. MySQL 데이터베이스에 대한 간단한 DROP(테이블 삭제) 쿼리

떨어지다– 테이블을 삭제하는 쿼리입니다.

1. 테이블 전체를 삭제합니다. tbl_name.

DROP TABLE tbl_name;

7. MySQL 데이터베이스에 대한 복잡한 쿼리

숙련된 사용자에게도 유용할 수 있는 흥미로운 쿼리

사용자, 관리자로부터 ID, 이름, 국가 선택 WHERE TO_DAYS(NOW()) - TO_DAYS(등록_날짜)<= 14 AND activation != "0" ORDER BY registration_date DESC;
이 복잡한 쿼리는 열을 선택합니다. 아이디,이름,국가테이블에서 사용자,관리자어디 등록 날짜(날짜) 나이가 많지 않음 14 나 일 활성화같지 않음 0 , 정렬 기준 등록 날짜역순으로(새로운 것부터).

UPDATE 사용자 SET 연령 = "18+" WHERE 연령 = (SELECT age FROM 사용자 WHERE 남성 = "남성");
위는 소위의 예입니다. 요청 내의 요청 SQL에서. 사용자의 연령을 18세 이상으로 업데이트합니다. 여기서 성별은 남성입니다. 나는 그러한 요청 옵션을 권장하지 않습니다. 개인적인 경험으로 볼 때 여러 개의 개별 항목을 만드는 것이 더 낫다고 말할 것입니다. 처리 속도가 더 빨라질 것입니다.

8. MySQL 및 PHP 데이터베이스 쿼리

PHP 페이지의 MySQL 쿼리에서는 변수를 비교 값 등으로 삽입할 수 있습니다. 몇 가지 예

1. 테이블에서 모든 레코드를 선택합니다. 사용자, 들판은 어디에 있나요? f이름변수의 값에 해당합니다. $name.

SELECT * FROM 사용자 WHERE fname="$name";
2. 테이블에서 사용자 id가 3개의 필드 값과 같은 경우 나이$age 변수의 값으로 변경됩니다.

사용자 업데이트 SET age = "$age" WHERE id = "3";

주목!다른 예시가 궁금하시다면 댓글에 질문을 남겨주세요!

이 튜토리얼에서는 다음을 사용하는 방법을 배웁니다. 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보다 큰 모든 레코드에 대해 고객 테이블만 업데이트합니다. 공급자 테이블의 공급자_이름이 고객 테이블의 고객_이름과 일치하면 공급자 테이블의 도시가 고객 테이블의 도시 필드에 복사됩니다.

이 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에서 데이터를 변경하거나 업데이트해야 하는 경우 SQL UPDATE 명령을 사용하여 작업할 수 있습니다. ,

문법

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

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

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

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

데이터 업데이트 명령줄

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

다음 예에서는 데이터 테이블을 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()를 사용하여 실행하는 PHP 함수 SQL 문, UPDATE SQL 문을 사용할 수 있습니다. 그렇지 않으면 INEKE가 적용되지 않습니다.

MySQL의 이 기능> 명령줄 SQL 문을 실행하는 효과는 동일합니다.

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

업데이트 구문

단일 테이블 구문:
업데이트 shya_tabletsh
세트 컬럼 이름1=표현식1 [,이름_ 열2=표현식2 ...]


다중 테이블 구문:

UPDATE 테이블_이름 [, 테이블_이름...] SET 컬럼_이름 1=표현식1 [,컬럼_이름2=표현식2...]
UPDATE 문은 기존 테이블 행의 열을 새 값으로 업데이트합니다. SET 절에는 수정할 열과 여기에 할당할 값이 나열됩니다. WHERE 절이 지정된 경우 업데이트해야 할 행을 지정합니다. 그렇지 않으면 테이블의 모든 행이 업데이트됩니다. ORDER BY 절을 지정하면 지정된 순서대로 행이 업데이트됩니다. LIMIT 구조는 업데이트할 행 수에 제한을 둡니다.
UPDATE 문은 다음 수정자를 지원합니다.

  1. LOW_PRIORITY 키워드가 지정되면 다른 모든 클라이언트가 테이블 읽기를 완료할 때까지 UPDATE가 지연됩니다.
  2. IGNORE 키워드를 지정하면 중복 키 오류가 발생하더라도 업데이트 작업이 실패하지 않습니다. 충돌을 일으키는 행은 업데이트되지 않습니다.

테이블의 열을 사용하는 경우 테이블_이름표현식에서 UPDATE는 열의 현재 값을 사용합니다. 예를 들어, 다음 진술연령 열을 1씩 증가시킵니다.
mysql> UPDATE persondata SET age=age+l;
UPDATE의 할당은 왼쪽에서 오른쪽으로 이루어집니다. 예를 들어, 다음 명령문은 age 열의 값을 두 배로 늘린 다음 1씩 증가시킵니다. UPDATE persondata SET 나이=나이*2, 나이=나이+1;
열의 값을 무엇이든 설정하면 MySQL은 이를 감지하고 업데이트하지 않습니다.
NOT null로 선언된 열을 NULL로 업데이트하면 특정 데이터 형식에 적합한 기본값으로 설정되고 경고 카운터가 1 증가합니다. 기본값은 숫자 열의 경우 0, 문자 열의 경우 빈 문자열(""), 날짜 및 시간 열의 경우 "null"입니다.
UPDATE는 실제로 업데이트된 행 수를 반환합니다. MySQL 3.22 이상에서는 mysql_info() 함수 소프트웨어 인터페이스와 함께 API쿼리와 일치하고 업데이트된 행 수와 UPDATE 중에 발생한 경고 수를 반환합니다.
MySQL 3.23부터 제한을 사용할 수 있습니다. 줄 수 UPDATE 범위를 제한합니다.
LIMIT 구조는 다음과 같이 작동합니다:

  1. MySQL 4.0.13 이전에는 LIMIT가 처리되는 행 수에 대한 제한이었습니다. 업데이트 되자마자 운영자가 나갔습니다 줄 수 WHERE 조건을 만족하는 행.
  2. MySQL 4.0.13부터 한계는 문자열 일치 한계입니다. 운영자는 발견 즉시 종료 줄 수실제로 업데이트되었는지 여부에 관계없이 WHERE 조건을 충족하는 행입니다.

UPDATE 문에 order by 절이 포함되어 있으면 이 절에서 지정한 순서대로 행이 업데이트됩니다. ORDER BY는 MySQL 4.0.0부터 사용할 수 있습니다.
MySQL 4.0.0부터는 여러 테이블에서 동시에 작동하는 UPDATE 작업을 수행하는 것도 가능합니다.
업데이트 항목, 월 SET items.price=month.price WHERE items.id-month. id/ 이 예에서는 쉼표 연산자를 사용하는 내부 조인을 보여 주지만 다중 테이블 UPDATE에서는 다음에서 허용되는 모든 조인 유형을 사용할 수 있습니다. SELECT 문, 예를 들어 LEFT JOIN입니다.
참고로!

  • 다중 테이블 UPDATE 문에서는 ORDER BY 또는 LIMIT를 사용할 수 없습니다.
MySQL 4.0.18 이전에는 다중 테이블 UPDATE에 사용되는 모든 테이블이 실제로 업데이트되지 않은 경우에도 UPDATE 권한이 필요했습니다. MySQL 4.0.18부터 열이 읽기만 하고 업데이트되지 않는 테이블에는 SELECT 권한만 있으면 됩니다.
외래 키 제약 조건이 정의된 InnoDB 테이블에서 다중 테이블 UPDATE 문을 사용하는 경우 MySQL 최적화 프로그램은 부모-자식 관계에 지정된 순서와 다른 순서로 이를 처리할 수 있습니다. 이 경우 문이 실패하고 트랜잭션이 롤백됩니다. 대신, 단일 테이블을 업데이트하고 다음을 위한 InnoDB 엔진을 제공하는 ON UPDATE 속성을 사용하십시오. 자동 업데이트관련 테이블.


맨 위