Kopiraj tabelo v SQL

Kopiraj Tabelo V Sql



Medtem ko je na površini podvajanje podatkov morda videti neučinkovito; včasih lahko igra zelo ključno vlogo v primerih, ko morate imeti skoraj natančno kopijo iste tabele.

V SQL lahko uporabimo različne metode in tehnike za kopiranje obstoječe tabele in novo tabelo pod novim imenom, vendar z enakimi podatki. To je lahko zelo uporabno pri določenih opravilih, kot so varnostno kopiranje, preoblikovanje podatkov, začasne spremembe podatkov brez vpliva na glavno tabelo in več.







V tem priročniku bomo raziskali te metode in izvedeli, kako lahko kopiramo tabelo v podatkovnih bazah SQL. Zaradi razlik v tem, kako različni motorji baze podatkov SQL obravnavajo kopiranje tabel, ne bomo pokrivali vseh metod za vsako bazo podatkov.



Poskušali bomo pokriti vsaj enega za vsak motor baze podatkov, kadar koli je podprt, da vam pokažemo, kako lahko kopirate tabelo za vsak podprt mehanizem baze podatkov.



1. način: Globalno (z uporabo stavka CREATE TABLE)

Najpogostejši in najpreprostejši način kopiranja tabele je uporaba stavka CREATE TABLE.





Za razliko od običajnega stavka CREATE TABLE posredujemo stavek SELECT, ki vsebuje strukturo in podatke izvorne tabele.

Sintaksa je naslednja:



CREATE TABLE nova_tabela AS
IZBERI * FROM izvorna_tabela;

To nam omogoča, da iz izvorne tabele ustvarimo novo tabelo z navedenim imenom.

Vzemimo za primer vzorčno bazo podatkov Sakila. Recimo, da želimo ustvariti podobno tabelo kot je tabela najemnin.

Uporabimo lahko prejšnjo tehniko, kot je prikazano v naslednjem primeru poizvedbe:

CREATE TABLE rental_copy AS
IZBERI * IZ najema;

To bi moralo ustvariti novo tabelo z imenom »rental_copy«, ki vsebuje enako strukturo in podatke kot tabela za najem.

Preverite lahko tako, da izberete podatke iz tabele na naslednji način:

IZBERI * FROM rental_copy;

Ta mora vsebovati natančne podatke kot tabela najema.

2. način: Globalno (z uporabo stavka INSERT INTO)

Druga metoda, ki je globalno podprta s številnimi zbirkami podatkov SQL, je uporaba stavka INSERT INTO.

Ta tehnika nam omogoča kopiranje iz ene tabele v drugo. Za razliko od CREATE TABLE in SELECT nam ta metoda omogoča selektivno pridobivanje podatkov.

To pride prav, ko potrebujemo več nadzora v procesu kopiranja. Uporabimo lahko sintakso, kot je prikazano v naslednjem:

INSERT INTO target_table ( stolpec1, stolpec2, ... )
IZBERI stolpec1, stolpec2, ...
FROM izvorna_tabela;

V tem primeru lahko določimo stolpce, ki jih želimo vključiti v novo tabelo, ne da bi dejansko pridobili vse iz izvirne tabele.

Vzemite za primer naslednjo poizvedbo:

VSTAVI
INTO
najem_kopije ( rental_id,
datum_najema,
datum_vračila )
IZBERI
rental_id,
datum_najema,
datum_vračila
OD
najem r;

Ena pomanjkljivost te metode je, da boste morda morali ustvariti podobno tabelo s stolpci, ki jih želite vključiti. To se lahko ponavlja in je učinkovito pri delu z velikim naborom podatkov.

3. način: Kopirajte strukturo tabele

V drugih primerih lahko naletite na primere, ko vas zanima struktura tabele, ne da bi potrebovali podatke, shranjene v tabeli.

V takem scenariju lahko uporabite stavek CREATE TABLE v povezavi s členom LIKE, kot sledi:

USTVARI TABELO nova_tabela ( LIKE source_table ) ;

To bi moralo ustvariti novo tabelo z navedenim imenom in podobno strukturo kot »source_table« brez dejanskega kopiranja podatkov.

Kopiranje tabel med zbirkami podatkov

Za kopiranje tabel med različnimi zbirkami podatkov lahko izvozimo podatke iz izvorne baze podatkov in jih uvozimo v ciljno bazo podatkov.

To običajno vključuje uporabo formatov, ki temeljijo na datotekah, kot je CSV, ali orodij, specifičnih za zbirko podatkov. Lahko se sklicujete na dokumentacijo za vašo bazo podatkov o tem, kako to doseči, saj se lahko razlikuje glede na motor baze podatkov.

4. način: Uporaba povezanih strežnikov (SQL Server)

V SQL Serverju lahko kopiramo tabele med zbirkami podatkov s pomočjo povezanih strežnikov.

Povezani strežniki nam omogočajo vzpostavitev povezave z oddaljeno bazo podatkov in poizvedovanje ali prenos podatkov med njimi.

Sintaksa je naslednja:

VSTAVITE V [ LinkedServerName ] . [ DatabaseName ] . [ SchemaName ] . [ ciljna_tabela ]
IZBERI * FROM izvorna_tabela;

To omogoča oddaljeno povezavo in prenos podatkov med oddaljenimi strežniki.

Zaključek

V tej vadnici smo se naučili uporabljati in delati z različnimi metodami in tehnikami kopiranja tabele v SQL.