Nukopijuokite lentelę SQL

Nukopijuokite Lentele Sql



Nors iš pirmo žvilgsnio, duomenų dubliavimas gali atrodyti neefektyvus; kartais ji gali atlikti labai svarbų vaidmenį tais atvejais, kai reikia turėti beveik tikslią tos pačios lentelės kopiją.

SQL galime naudoti įvairius metodus ir metodus, kad nukopijuotume esamą lentelę ir gautume naują lentelę nauju pavadinimu, bet su tais pačiais duomenimis. Tai gali būti labai naudinga atliekant tam tikras užduotis, tokias kaip atsarginės kopijos, duomenų transformavimas, laikini duomenų keitimai nepažeidžiant pagrindinės lentelės ir kt.







Šiame vadove išnagrinėsime šiuos metodus ir sužinosime, kaip galime nukopijuoti lentelę SQL duomenų bazėse. Dėl skirtingų SQL duomenų bazių variklių lentelių kopijavimo skirtumų neapžvelgsime visų kiekvienos duomenų bazės metodų.



Stengsimės aprėpti bent vieną kiekvienam duomenų bazės varikliui, kai jis palaikomas, kad parodytume, kaip galite nukopijuoti kiekvieno palaikomo duomenų bazės variklio lentelę.



1 būdas: visuotinis (naudojant teiginį CREATE TABLE)

Labiausiai paplitęs ir supaprastintas lentelės kopijavimo būdas yra sakinio CREATE TABLE naudojimas.





Skirtingai nuo įprasto CREATE TABLE sakinio, perduodame SELECT sakinį, kuriame yra šaltinio lentelės struktūra ir duomenys.

Sintaksė yra tokia:



CREATE TABLE new_table AS
PASIRINKTI * FROM source_table;

Tai leidžia mums sukurti naują lentelę nurodytu pavadinimu iš šaltinio lentelės.

Pavyzdžiui, Sakilos duomenų bazė. Tarkime, kad norime sukurti panašią lentelę kaip ir nuomos lentelę.

Galime naudoti ankstesnę techniką, kaip parodyta toliau pateiktoje užklausos pavyzdyje:

CREATE TABLE rental_copy AS
PASIRINKTI * NUO nuomos;

Tai turėtų sukurti naują lentelę pavadinimu „rental_copy“, kurioje būtų tokia pati struktūra ir duomenys kaip ir nuomos lentelėje.

Galite patikrinti pasirinkę duomenis iš lentelės taip:

PASIRINKTI * FROM nuomos_kopija;

Jame turėtų būti nurodyti tikslūs duomenys kaip nuomos lentelėje.

2 būdas: visuotinis (naudojant INSERT INTO teiginį)

Kitas metodas, kurį visame pasaulyje palaiko įvairios SQL duomenų bazės, yra INSERT INTO sakinio naudojimas.

Ši technika leidžia kopijuoti iš vienos lentelės į kitą. Skirtingai nuo CREATE TABLE ir SELECT, šis metodas leidžia pasirinktinai gauti duomenis.

Tai praverčia, kai reikia daugiau kontroliuoti kopijavimo procesą. Galime naudoti sintaksę, kaip parodyta taip:

INSERT INTO target_table ( 1 stulpelis, 2 stulpelis... )
PASIRINKTI 1 stulpelį, 2 stulpelį...
FROM source_table;

Tokiu atveju galime nurodyti stulpelius, kuriuos norime įtraukti į naują lentelę, negaudami visko iš pradinės lentelės.

Paimkite, pavyzdžiui, šią užklausą:

ĮDĖTI
Į
nuomos_kopija ( rental_id,
rental_date,
grįžimo data )
PASIRINKTI
rental_id,
rental_date,
grįžimo data
NUO
nuoma r;

Vienas šio metodo trūkumas yra tas, kad gali reikėti sukurti panašią lentelę su stulpeliais, kuriuos norite įtraukti. Tai gali būti pasikartojanti ir veiksminga dirbant su dideliu duomenų rinkiniu.

3 būdas: nukopijuokite lentelės struktūrą

Kitais atvejais galite susidurti su atvejais, kai domitės lentelės struktūra ir jums nereikės lentelėje saugomų duomenų.

Tokiu atveju galite naudoti CREATE TABLE teiginį kartu su LIKE sąlyga taip:

KURTI LENTELĘ nauja_lentelė ( PATINKA source_table ) ;

Tai turėtų sukurti naują lentelę su nurodytu pavadinimu ir panašia struktūra kaip 'source_table', iš tikrųjų nekopijuojant duomenų.

Lentelių kopijavimas tarp duomenų bazių

Norėdami nukopijuoti lenteles tarp skirtingų duomenų bazių, galime eksportuoti duomenis iš šaltinio duomenų bazės ir importuoti į tikslinę duomenų bazę.

Paprastai tai apima failų formatų, pvz., CSV, arba konkrečių duomenų bazės įrankių naudojimą. Galite peržiūrėti savo duomenų bazės dokumentus, kaip tai padaryti, nes tai gali skirtis priklausomai nuo duomenų bazės variklio.

4 būdas: susietų serverių (SQL serverio) naudojimas

SQL serveryje galime kopijuoti lenteles iš vienos duomenų bazės į kitą naudodami susietus serverius.

Susieti serveriai leidžia užmegzti ryšį su nuotoline duomenų baze ir pateikti užklausas arba perduoti duomenis tarp jų.

Sintaksė yra tokia:

INSERT INTO [ LinkedServerName ] . [ Duomenų bazės pavadinimas ] . [ SchemaName ] . [ target_table ]
PASIRINKTI * FROM source_table;

Tai įgalina nuotolinį ryšį ir duomenų perdavimą tarp nuotolinių serverių.

Išvada

Šioje pamokoje sužinojome, kaip naudoti ir dirbti su įvairiais lentelės kopijavimo SQL metodais ir būdais.