관계형 데이터베이스에서 INSERT INTO SELECT는 쿼리 결과를 다른 테이블에 삽입하는 데 사용되는 일반적인 SQL 문입니다. 이 구문 구조는 한 테이블에서 다른 테이블로 데이터를 쉽게 복사하거나 일부 조건에 따라 데이터를 필터링하고 삽입하는 데 매우 유용합니다.
INSERT INTO SELECT의 구문 구조는 다음과 같습니다.
INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 来源表 WHERE 条件;
그 중 INSERT INTO 절은 데이터를 삽입할 대상 테이블과 대상 열을 지정합니다. SELECT 절은 데이터를 선택할 테이블을 정의하고 대상 테이블에 삽입할 열을 지정합니다. 모든 열을 대상 테이블에 삽입할 필요가 없도록 필요에 따라 적절한 열을 선택할 수 있습니다.
SELECT 절의 소스 테이블은 데이터를 선택할 테이블을 의미합니다. 특정 테이블 이름이거나 쿼리 결과 집합일 수 있습니다. INSERT INTO SELECT를 사용하면 데이터 전송 및 필터링 요구 사항을 충족하기 위해 필요에 따라 여러 쿼리 문을 중첩할 수 있습니다.
WHERE 절은 선택 사항이며 소스 테이블의 특정 조건을 충족하는 데이터를 필터링하는 데 사용됩니다. 예를 들어 WHERE 절을 사용하여 특정 조건을 충족하는 행만 삽입하도록 제한하거나 다른 연산자(예: IN, LIKE 등)를 사용하여 데이터를 추가로 필터링할 수 있습니다.
다음은 INSERT INTO SELECT의 몇 가지 사용 예입니다.
간단한 삽입 작업:
두 개의 테이블 A와 B가 있다고 가정합니다. 테이블 A에는 id, name 및 age 열이 포함되고 테이블 B에는 id 및 address 열이 포함됩니다. . 테이블 A의 데이터를 테이블 B의 해당 열에 삽입하려면 다음 명령문을 사용할 수 있습니다.
INSERT INTO B (id, address) SELECT id, name FROM A;
이렇게 하면 테이블 A의 id 열 값이 테이블 B의 id 열에 삽입되고, name in table A 열의 값이 테이블 B의 주소 열에 삽입됩니다. 다른 열은 무시됩니다.
WHERE 절을 사용하여 필터링:
특정 조건을 충족하는 데이터만 삽입하려는 경우 SELECT 문에 WHERE 절을 추가할 수 있습니다. 예를 들어 테이블 A에서 나이가 18보다 큰 레코드만 테이블 B에 삽입하려면 다음 문을 사용하면 됩니다.
INSERT INTO B (id, address) SELECT id, name FROM A WHERE age > 18;
이렇게 하면 조건을 충족하는 행만 테이블 B에 삽입됩니다.
하위 쿼리를 사용하여 삽입:
SELECT 절에서 하위 쿼리를 사용하여 데이터를 선택할 수도 있습니다. 예를 들어 조건에 맞는 행을 다른 테이블에 삽입하려면 다음 명령문을 사용할 수 있습니다.
INSERT INTO C (id, address) SELECT id, address FROM B WHERE id IN (SELECT id FROM A WHERE age > 18);
이런 방식으로 먼저 테이블 A에서 조건에 맞는 ID를 선택한 다음 테이블 B에서 해당 레코드를 기반으로 선택합니다. 이 ID에 대해 테이블 C에 삽입합니다.
요약
INSERT INTO SELECT는 한 테이블에서 다른 테이블로 데이터를 쉽게 복사하거나 일부 조건에 따라 데이터를 필터링 및 삽입할 수 있는 강력한 SQL 문입니다. 유연성이 뛰어나 실제 데이터베이스 작업에 매우 유용합니다.
위 내용은 선택 항목에 삽입 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!