SQL 데이터베이스를 조작 하는 데 사용 일반적으로 두 가지 유형으로 나누어, 하나는 우리가 전화 SELECT 문을 쿼리 문, 다른 데이터 조작 문이 라고도 UPDATE 문입니다. 데이터를 수정 하는 의미가입니다. 표준 SQL, 삽입, 업데이트 및 삭제에 3 문이 있다. 그래서이 글 sql에서 UPDATE 문을 확인 하는 방법을 논의를 배경으로 MySQL은 mysql, 다른 대체 문이 있다.
삽입 및 바꾸기
INSERT와 replace 문을 테이블에 새 데이터를 삽입 하는 기능이 있다. 이러한 두 개의 문에 대 한 구문을 비슷합니다. 주요 차이점은 중복 데이터를 처리 하는 방법.
1. 일반적인 사용 삽입
MySQL에서 insert 문은 표준 삽입, 동일 하지 않습니다 하 고 표준 SQL 문에서 한 번에 하나의 레코드를 삽입 하는 INSERT 문에의 한 형태입니다.
Tablename (열 이름...)에 삽입 값 (열 값);
MySQL에서 또 다른 형태가입니다.
삽입 tablename SET column_name1 = value1, column_name2 = value2,...;
첫 번째 방법은 열 값에서 열 이름을 구분 하 고 사용 하 고, 열 이름이 열 값의 수 일치 해야 합니다. 다음 문은 사용자가 테이블에 레코드를 삽입합니다.
사용자 (ID, 이름, 나이) 값으로 삽입 (123, ' 야 오', 25);
두 번째 메서드는 열 이름 및 열 값을 표시 하 고 매체와 같은 효과 다음 문과 같은 쌍에 사용 될 수 있습니다.
사용자 집합 ID를 삽입 123, = 이름 = ' 야오밍 ', 나이 = 25;
Set 메서드를 사용 하면 열이 하나 이상 할당 해야 합니다. 필드에서 저장 된 값 (예: 기본 또는 자동 증가)를 사용 하는 경우 이러한 메서드 중 하나에서 이러한 필드를 생략할 수 있습니다. 위의 두 문은 다음과 같이 작성할 수 있습니다.
삽입 사용자 (이름, 나이) 값 (' 야오밍 ', 25);
설정된 이름 사용으로 삽입 ' 야오밍 ' = 나이 = 25;
MySQL 값에 변화를 했다 또한. 아무것도 값에 면 MySQL 테이블의 각 열에 대 한 기본 값을 사용 하 여 새 레코드를 삽입 합니다.
사용자 () 값 ();에 삽입
테이블 이름 다음에 아무것도 작성 하는 경우 당신은 테이블의 모든 필드에 값을 할당 합니다. 이 방법에서는, 뿐만 아니라 값은 열의 수와 일치 하지만 순서를 바꿀 수 없습니다. 삽입 사용자 값 (123, '야 오', 25);
경우 다음 형식으로 INSERT 문을 작성, MySQL 불평할 것 이다.
삽입 사용자 값 ('야오밍', 25);
2. 삽입을 사용 하 여 여러 레코드 삽입
이 제목 어쩌면 사람들이 물어볼 것입니다, 이것은 말, 여러 INSERT를 호출 참조 문을 삽입 하지 수 다중 기록! 하지만 모든 SQL Server 수행과 같은 분석, 최적화, 및에 있기 때문에 서버에 부하를 증가이 메서드를 사용 하 여. 다행히, MySQL은 여러 개의 레코드를 삽입 하는 INSERT 문을 사용 하 여 다른 솔루션을 제공 합니다. 이 표준 SQL 구문 이며 MySQL 에서만 사용할 수 있습니다.
사용자 (이름, 나이)에 삽입
값 ('야오밍', 25), (' 빌 게이츠 ', 50), ('화성 인', 600);
INSERT 문에서 위의 사용자 테이블에 3 연속 레코드를 삽입합니다. 그것은 위의 INSERT 문에서 값 (...)의 쌍에 있는 각 레코드의 값을가지고 있어야 합니다 협조할 중간 "," 분할을 사용 하 여. 테이블 테이블 1 가정
CREATE TABLE table1 (n INT);
Table1에 5 개의 레코드를 삽입 하려는 경우 다음은 작성을 잘못 된 방법입니다.
Table1에 삽입 (i) 값 (1,2,3,4,5);
MySQL는 다음 오류를 던 질 것 이다
오류 1136:column 수 doesn ' t 경기 행 1에서 값 개수
이렇게 하려면 올바른 방법은 것입니다.
T Able1에 삽입 (i) 값 (1), (2), (3), (4), (5);
물론, 각 쌍 괄호의 값의 수는 동일 해야 하 고 그 숫자는 열 수와 일치 해야 쓰기의이 유형은 또한 열 이름을 생략할 수 있습니다. 로:
T able1 값 (1), (2), (3), (4), (5);에 삽입
3. 대체 문
이 때 우리는 데이터베이스를 사용 하 여 경우를 수 있습니다. 우리는 기존 키 값을 사용 하 여 테이블에 레코드를 삽입 하는 경우 테이블 필드에 고유 인덱스를 설정, 기본 키 충돌 오류를 throw 합니다. 물론, 우리는 새 레코드의 값과 원래 레코드 값을 덮어쓸 수도. 전통적인 방법을 사용 하는 경우 먼저 DELETE 문을 사용 하 여 원래 레코드를 삭제 하 고 삽입을 사용 하 여 새 레코드를 삽입 해야 합니다. 그리고 우리에 게 새로운 솔루션을 제공 하기 위해 mysql, 교체 문의입니다. 반복 하지 않는 경우에 바꾸기와 레코드를 삽입할 때 대체 삽입 기능 동일 이며 중복 레코드 경우 바꾸기 바꿉니다 원래 레코드 값은 새 레코드의 값.
Replace를 사용 하 여의 가장 큰 장점은 그 삭제 하 고 삽입을 형성 하는 원자 단위 연산 결합 될 수 있다. 이 고려 둘 다를 사용 하는 동안 거래를 추가 하는 등 복잡 한 작업을 삭제 하 고 삽입을 하지 않아도 됩니다.
Replace를 사용 하 고 테이블에 고유 인덱스가 있어야 합니다. 인덱스 위치 필드 null 값을 허용할 수 없다, 그렇지 않으면 대체가 됩니다 정확히 삽입과 동일.
바꾸기 실행, 시스템, 영향을 받는 행의 수를 반환 합니다 후에 테이블에서 중복 레코드는 1을 반환 하는 경우 2를 반환 하는 경우 중복 레코드가 그리고 시스템 자동으로 레코드를 삭제 하려면 삭제를 호출 그리고, 다음 레코드와 삽입 삽입. 반환 되는 값이 2 보다 크면 다음 여러 고유 인덱스 있으며 여러 개의 레코드가 삭제 되 고 삽입.
위한 대체 구문은 다음 replace 문을 삽입 또는 업데이트 하는 레코드를 삽입 하는 데 매우 비슷합니다.
사용자 (id, 이름, 나이)로 대체 값 (123, ' 자오 Benshan', 50);
여러 레코드를 삽입 합니다.
사용자 (ID, 이름, 나이)로 대체
값 (123, ' 자오 Benshan ', M), (134, ' 메리', 15);
대체 SET 문을 사용 하 여도 수 있습니다.
사용자 집합 ID에 = 123, 이름 = ' 자오 Benshan ', 나이 = 50;
위의 언급 한 대체 영향을 미칠 수 이상의 3 레코드 테이블에 있는 하나 이상의 고유 인덱스 때문에. 이 경우 바꾸기 각 고유 인덱스를 고려, 각 인덱스에 대 한 중복 레코드를 삭제 하 고 새 레코드를 삽입. 3 필드 A, B, C. Table1 테이블이 있는 가정 그들은 모두 고유 인덱스가 있다.
CREATE TABLE table1 (int 하지 고유 null, B int null UNIQUE, C int 하지 고유 null);
1에서 3 레코드 있다 가정해 봅시다.
B C
1 1 1
2 2 2
3 3 3
아래 우리는 Table1에 레코드를 삽입 하려면 Replace 문을 사용 합니다.