SQL에서 테이블 복사

Sqleseo Teibeul Bogsa



표면적으로는 데이터 복제가 비효율적으로 보일 수 있습니다. 동일한 테이블의 거의 정확한 복사본이 필요한 경우 매우 중요한 역할을 할 수 있습니다.

SQL에서는 다양한 방법과 기술을 사용하여 기존 테이블을 복사하고 새 이름으로 새 테이블을 만들 수 있지만 데이터는 동일합니다. 이는 백업, 데이터 변환, 기본 테이블에 영향을 주지 않는 임시 데이터 변경 등과 같은 특정 작업에 매우 유용할 수 있습니다.







이 가이드에서는 이러한 방법을 살펴보고 SQL 데이터베이스에서 테이블을 복사하는 방법을 알아봅니다. 다양한 SQL 데이터베이스 엔진이 테이블 복사를 처리하는 방식이 다르기 때문에 각 데이터베이스에 대한 모든 방법을 다루지는 않습니다.



지원되는 각 데이터베이스 엔진에 대해 테이블을 복사하는 방법을 보여주기 위해 지원될 때마다 각 데이터베이스 엔진에 대해 적어도 하나를 다루려고 노력할 것입니다.



방법 1: 전역(CREATE TABLE 문 사용)

테이블을 복사하는 가장 일반적이고 간단한 방법은 CREATE TABLE 문을 사용하는 것입니다.





일반적인 CREATE TABLE 문과 달리 소스 테이블의 구조와 데이터를 포함하는 SELECT 문을 전달합니다.

구문은 다음과 같습니다.



CREATE TABLE new_table AS
선택하다 * 소스_테이블에서;

이를 통해 소스 테이블에서 지정된 이름을 가진 새 테이블을 생성할 수 있습니다.

Sakila 샘플 데이터베이스를 예로 들어 보겠습니다. Rentals 테이블과 유사한 테이블을 생성한다고 가정해 보겠습니다.

다음 예제 쿼리에 표시된 대로 이전 기술을 사용할 수 있습니다.

테이블 임대_복사 AS 만들기
선택하다 * 임대에서;

그러면 임대 테이블과 동일한 구조와 데이터를 포함하는 “rental_copy”라는 새 테이블이 생성됩니다.

다음과 같이 테이블에서 데이터를 선택하여 확인할 수 있습니다.

선택하다 * Rental_copy에서;

여기에는 임대 테이블과 동일한 데이터가 포함되어야 합니다.

방법 2: 전역(INSERT INTO 문 사용)

다양한 SQL 데이터베이스에서 전역적으로 지원되는 또 다른 방법은 INSERT INTO 문을 사용하는 것입니다.

이 기술을 사용하면 한 테이블에서 다른 테이블로 복사할 수 있습니다. CREATE TABLE 및 SELECT와 달리 이 방법을 사용하면 선택적으로 데이터를 가져올 수 있습니다.

이는 복사 과정에서 더 많은 제어가 필요할 때 유용합니다. 다음과 같이 구문을 사용할 수 있습니다.

target_table에 삽입 ( 열1, 열2, ... )
열 1, 열 2, ...을 선택하세요.
소스_테이블에서;

이 경우 원래 테이블에서 실제로 모든 것을 가져오지 않고도 새 테이블에 포함하려는 열을 지정할 수 있습니다.

예를 들어 다음 쿼리를 살펴보겠습니다.

끼워 넣다
안으로
임대_복사 ( 임대_ID,
임대_날짜,
반환 기일 )
선택하다
임대_ID,
임대_날짜,
반환 기일
에서
임대 r;

이 방법의 한 가지 단점은 포함하려는 열이 포함된 유사한 테이블을 만들어야 한다는 것입니다. 이는 대규모 데이터 세트로 작업할 때 반복적이고 효율적일 수 있습니다.

방법 3: 테이블 구조 복사

다른 경우에는 테이블에 저장된 데이터가 필요하지 않고 테이블 구조에 관심이 있는 인스턴스를 발견할 수도 있습니다.

이러한 시나리오에서는 다음과 같이 CREATE TABLE 문을 LIKE 절과 함께 사용할 수 있습니다.

테이블 만들기 new_table ( LIKE source_table ) ;

이렇게 하면 실제로 데이터를 복사하지 않고 지정된 이름과 'source_table'과 유사한 구조를 가진 새 테이블이 생성됩니다.

데이터베이스 간 테이블 복사

서로 다른 데이터베이스 간에 테이블을 복사하려면 원본 데이터베이스에서 데이터를 내보내고 대상 데이터베이스로 가져올 수 있습니다.

여기에는 일반적으로 CSV 또는 데이터베이스별 도구와 같은 파일 기반 형식을 사용하는 것이 포함됩니다. 데이터베이스 엔진에 따라 다를 수 있으므로 이를 수행하는 방법에 대한 데이터베이스 설명서를 참조할 수 있습니다.

방법 4: 연결된 서버 사용(SQL Server)

SQL Server에서는 연결된 서버를 사용하여 데이터베이스 간에 테이블을 복사할 수 있습니다.

연결된 서버를 사용하면 원격 데이터베이스에 대한 연결을 설정하고 데이터베이스 간에 데이터를 쿼리하거나 전송할 수 있습니다.

구문은 다음과 같습니다.

에 집어 넣다 [ 연결된 서버 이름 ] . [ 데이터베이스 이름 ] . [ 스키마 이름 ] . [ target_table ]
선택하다 * 소스_테이블에서;

이를 통해 원격 서버 간의 원격 연결 및 데이터 전송이 가능해집니다.

결론

이 튜토리얼에서는 SQL에서 테이블을 복사하는 다양한 방법과 기술을 사용하고 작업하는 방법을 배웠습니다.