Скопируйте таблицу в SQL

Skopirujte Tablicu V Sql



На первый взгляд дублирование данных может показаться неэффективным; иногда это может сыграть очень важную роль в тех случаях, когда вам нужно иметь почти точную копию той же таблицы.

В SQL мы можем использовать различные методы и приемы для копирования существующей таблицы и создания новой таблицы под новым именем, но с теми же данными. Это может быть очень полезно в определенных задачах, таких как резервное копирование, преобразование данных, временное изменение данных, не затрагивающее основную таблицу, и многое другое.







В этом руководстве мы рассмотрим эти методы и узнаем, как скопировать таблицу в базах данных SQL. Из-за различий в том, как различные ядра баз данных SQL обрабатывают копирование таблиц, мы не будем рассматривать все методы для каждой базы данных.



Мы постараемся рассмотреть хотя бы одну таблицу для каждого ядра базы данных, если оно поддерживается, чтобы показать вам, как можно скопировать таблицу для каждого поддерживаемого ядра базы данных.



Способ 1: глобальный (с использованием оператора CREATE TABLE)

Самый распространенный и простой метод копирования таблицы — использование оператора CREATE TABLE.





В отличие от обычного оператора CREATE TABLE, мы передаем оператор SELECT, который содержит структуру и данные исходной таблицы.

Синтаксис следующий:



СОЗДАТЬ ТАБЛИЦУ new_table AS
ВЫБИРАТЬ * ИЗ исходной_таблицы;

Это позволяет нам создать новую таблицу с указанным именем из исходной таблицы.

Возьмем, к примеру, образец базы данных Sakila. Предположим, мы хотим создать таблицу, аналогичную таблице аренды.

Мы можем использовать предыдущий метод, как показано в следующем примере запроса:

СОЗДАТЬ ТАБЛИЦУ rental_copy AS
ВЫБИРАТЬ * ОТ аренды;

В результате должна быть создана новая таблица с именем «rental_copy», содержащая ту же структуру и данные, что и таблица аренды.

Убедиться можно, выбрав данные из таблицы следующим образом:

ВЫБИРАТЬ * ОТ rental_copy;

Он должен содержать точные данные, как и таблица аренды.

Метод 2: глобальный (с использованием оператора INSERT INTO)

Другой метод, который поддерживается многими базами данных SQL во всем мире, — это использование оператора INSERT INTO.

Этот метод позволяет нам копировать данные из одной таблицы в другую. В отличие от CREATE TABLE и SELECT, этот метод позволяет нам выборочно получать данные.

Это пригодится, когда нам нужно больше контроля над процессом копирования. Мы можем использовать синтаксис, как показано ниже:

INSERT INTO target_table ( столбец1, столбец2, ... )
ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ исходной_таблицы;

В этом случае мы можем указать столбцы, которые хотим включить в новую таблицу, не извлекая фактически все из исходной таблицы.

Возьмем, к примеру, следующий запрос:

ВСТАВЛЯТЬ
В
аренда_копия ( аренда_ид,
аренда_дата,
Дата возврата )
ВЫБИРАТЬ
аренда_ид,
аренда_дата,
Дата возврата
ОТ
аренда р;

Одним из недостатков этого метода является то, что вам может потребоваться создать аналогичную таблицу со столбцами, которые вы хотите включить. Это может быть повторяющимся и эффективным при работе с большим набором данных.

Способ 3: скопируйте структуру таблицы

В других случаях вы можете столкнуться со случаями, когда вас интересует структура таблицы, но вам не нужны данные, хранящиеся в таблице.

В таком сценарии вы можете использовать оператор CREATE TABLE в сочетании с предложением LIKE следующим образом:

СОЗДАТЬ ТАБЛИЦУ новая_таблица ( НРАВИТСЯ source_table ) ;

Это должно создать новую таблицу с указанным именем и структурой, аналогичной «source_table», без фактического копирования данных.

Копирование таблиц между базами данных

Чтобы скопировать таблицы между разными базами данных, мы можем экспортировать данные из исходной базы данных и импортировать их в целевую базу данных.

Обычно это предполагает использование файловых форматов, таких как CSV, или инструментов для конкретных баз данных. Вы можете обратиться к документации вашей базы данных, чтобы узнать, как это сделать, поскольку она может различаться в зависимости от ядра базы данных.

Способ 4. Использование связанных серверов (SQL Server)

В SQL Server мы можем копировать таблицы между базами данных, используя связанные серверы.

Связанные серверы позволяют нам устанавливать соединение с удаленной базой данных и запрашивать или передавать данные между ними.

Синтаксис следующий:

ВСТАВИТЬ В [ имя связанного сервера ] . [ Имя базы данных ] . [ имя_схемы ] . [ target_table ]
ВЫБИРАТЬ * ИЗ исходной_таблицы;

Это обеспечивает удаленное соединение и передачу данных между удаленными серверами.

Заключение

В этом уроке мы научились использовать и работать с различными методами и техниками копирования таблицы в SQL.