Skopírujte tabuľku v SQL

Skopirujte Tabulku V Sql



Na povrchu sa duplikácia údajov môže zdať neefektívna; môže niekedy hrať veľmi kľúčovú úlohu v prípadoch, keď potrebujete mať takmer presnú kópiu tej istej tabuľky.

V SQL môžeme použiť rôzne metódy a techniky na skopírovanie existujúcej tabuľky a mať novú tabuľku pod novým názvom, ale s rovnakými údajmi. To môže byť veľmi užitočné pri určitých úlohách, ako sú zálohy, transformácia údajov, dočasné zmeny údajov bez ovplyvnenia hlavnej tabuľky a ďalšie.







V tejto príručke preskúmame tieto metódy a naučíme sa, ako môžeme kopírovať tabuľku v databázach SQL. Vzhľadom na rozdiely v tom, ako rôzne databázové stroje SQL spracovávajú kopírovanie tabuliek, nepokryjeme všetky metódy pre každú databázu.



Pokúsime sa pokryť aspoň jeden pre každý databázový stroj, kedykoľvek je to podporované, aby sme vám ukázali, ako môžete skopírovať tabuľku pre každý z vašich podporovaných databázových strojov.



Metóda 1: Globálne (pomocou príkazu CREATE TABLE)

Najbežnejšou a najjednoduchšou metódou kopírovania tabuľky je použitie príkazu CREATE TABLE.





Na rozdiel od bežného príkazu CREATE TABLE odovzdávame príkaz SELECT, ktorý obsahuje štruktúru a údaje zdrojovej tabuľky.

Syntax je nasledovná:



CREATE TABLE new_table AS
VYBRAŤ * FROM source_table;

To nám umožňuje vytvoriť novú tabuľku so zadaným názvom zo zdrojovej tabuľky.

Vezmite si napríklad vzorovú databázu Sakila. Predpokladajme, že chceme vytvoriť podobnú tabuľku ako tabuľku prenájmu.

Môžeme použiť predchádzajúcu techniku, ako je znázornené v nasledujúcom príklade dotazu:

CREATE TABLE rental_copy AS
VYBRAŤ * Z požičovne;

Tým by sa mala vytvoriť nová tabuľka s názvom „kópia_nájmu“, ktorá obsahuje rovnakú štruktúru a údaje ako tabuľka prenájmu.

Môžete to overiť výberom údajov z tabuľky takto:

VYBRAŤ * FROM prenájom_kópie;

Tá by mala obsahovať presné údaje ako tabuľka nájomného.

Metóda 2: Globálne (pomocou príkazu INSERT INTO)

Ďalšou metódou, ktorá je globálne podporovaná širokou škálou databáz SQL, je použitie príkazu INSERT INTO.

Táto technika nám umožňuje kopírovať z jednej tabuľky do druhej. Na rozdiel od CREATE TABLE a SELECT nám táto metóda umožňuje selektívne získavať dáta.

To sa hodí, keď potrebujeme väčšiu kontrolu nad procesom kopírovania. Môžeme použiť syntax, ako je uvedené v nasledujúcom texte:

INSERT INTO cieľová_tabuľka ( stĺpec1, stĺpec2, ... )
VYBERTE stĺpec1, stĺpec2, ...
FROM source_table;

V tomto prípade môžeme špecifikovať stĺpce, ktoré chceme zahrnúť do novej tabuľky, bez toho, aby sme skutočne načítali všetko z pôvodnej tabuľky.

Vezmite si napríklad nasledujúci dotaz:

VLOŽIŤ
DO
prenájom_kópie ( rent_id,
dátum_požičovne,
dátum návratu )
VYBRAŤ
rent_id,
dátum_požičovne,
dátum návratu
OD
prenájom r;

Jednou nevýhodou tejto metódy je, že môže vyžadovať vytvorenie podobnej tabuľky so stĺpcami, ktoré chcete zahrnúť. To môže byť opakované a efektívne pri práci s veľkým súborom údajov.

Metóda 3: Skopírujte štruktúru tabuľky

V iných prípadoch môžete naraziť na prípady, keď vás zaujíma štruktúra tabuľky bez toho, aby ste potrebovali údaje uložené v tabuľke.

V takomto scenári môžete použiť príkaz CREATE TABLE v spojení s klauzulou LIKE takto:

CREATE TABLE new_table ( LIKE zdrojová_tabuľka ) ;

Tým by sa mala vytvoriť nová tabuľka so zadaným názvom a podobnou štruktúrou ako „source_table“ bez toho, aby sa skutočne skopírovali údaje.

Kopírovanie tabuliek medzi databázami

Na kopírovanie tabuliek medzi rôznymi databázami môžeme exportovať dáta zo zdrojovej databázy a importovať ich do cieľovej databázy.

Zvyčajne to zahŕňa použitie formátov založených na súboroch, ako je CSV alebo nástroje špecifické pre databázu. Môžete sa odvolať na dokumentáciu k vašej databáze, ako to dosiahnuť, pretože sa môže líšiť v závislosti od databázového stroja.

Metóda 4: Použitie prepojených serverov (SQL Server)

V SQL Serveri môžeme kopírovať tabuľky medzi databázami pomocou prepojených serverov.

Prepojené servery nám umožňujú nadviazať spojenie so vzdialenou databázou a dopytovať alebo prenášať údaje medzi nimi.

Syntax je nasledovná:

VLOŽIŤ DO [ LinkedServerName ] . [ Názov databázy ] . [ SchemaName ] . [ target_table ]
VYBRAŤ * FROM source_table;

To umožňuje vzdialené pripojenie a prenosy údajov medzi vzdialenými servermi.

Záver

V tomto návode sme sa naučili používať a pracovať s rôznymi metódami a technikami kopírovania tabuľky v SQL.