Kopiraj tablicu u SQL-u

Kopiraj Tablicu U Sql U



Dok je na površini, dupliciranje podataka može se činiti neučinkovitim; ponekad može igrati vrlo važnu ulogu u slučajevima kada trebate imati gotovo točnu kopiju iste tablice.

U SQL-u možemo koristiti razne metode i tehnike za kopiranje postojeće tablice i novu tablicu pod novim imenom, ali s istim podacima. Ovo može biti vrlo korisno u određenim zadacima kao što su sigurnosne kopije, transformacija podataka, privremene izmjene podataka bez utjecaja na glavnu tablicu i više.







U ovom ćemo vodiču istražiti te metode i naučiti kako možemo kopirati tablicu u SQL bazama podataka. Zbog razlika u tome kako različiti pogoni SQL baze podataka rukuju kopiranjem tablice, nećemo pokriti sve metode za svaku bazu podataka.



Pokušat ćemo pokriti barem jedan za svaki mehanizam baze podataka, kad god je podržan, da vam pokažemo kako možete kopirati tablicu za svaki od podržanih motora baze podataka.



Metoda 1: Globalno (upotrebom naredbe CREATE TABLE)

Najčešća i najjednostavnija metoda kopiranja tablice je korištenje naredbe CREATE TABLE.





Za razliku od normalne naredbe CREATE TABLE, mi prosljeđujemo naredbu SELECT koja sadrži strukturu i podatke izvorne tablice.

Sintaksa je sljedeća:



CREATE TABLE nova_tablica AS
IZABERI * FROM izvorna_tablica;

To nam omogućuje stvaranje nove tablice s navedenim nazivom iz izvorne tablice.

Uzmimo za primjer Sakila uzorak baze podataka. Pretpostavimo da želimo stvoriti tablicu sličnu kao tablica najamnina.

Možemo koristiti prethodnu tehniku ​​kao što je prikazano u sljedećem primjeru upita:

CREATE TABLE rental_copy AS
IZABERI * OD najam;

Ovo bi trebalo stvoriti novu tablicu pod nazivom 'rental_copy' koja sadrži istu strukturu i podatke kao tablica za iznajmljivanje.

Možete provjeriti odabirom podataka iz tablice na sljedeći način:

IZABERI * FROM rental_copy;

Ovo bi trebalo sadržavati točne podatke kao tablica najma.

Metoda 2: Globalno (upotrebom naredbe INSERT INTO)

Još jedna metoda koju globalno podržava širok izbor SQL baza podataka je korištenje naredbe INSERT INTO.

Ova tehnika nam omogućuje kopiranje iz jedne tablice u drugu. Za razliku od CREATE TABLE i SELECT, ova metoda nam omogućuje selektivno dohvaćanje podataka.

Ovo je korisno kada trebamo više kontrole u procesu kopiranja. Možemo koristiti sintaksu kao što je prikazano u nastavku:

INSERT INTO target_table ( stupac1, stupac2, ... )
SELECT stupac1, stupac2, ...
FROM izvorna_tablica;

U ovom slučaju možemo navesti stupce koje želimo uključiti u novu tablicu bez stvarnog dohvaćanja svega iz originalne tablice.

Uzmimo za primjer sljedeći upit:

UMETNUTI
U
najam_kopije ( rental_id,
datum_iznajmljivanja,
Datum povratka )
IZABERI
rental_id,
datum_iznajmljivanja,
Datum povratka
IZ
iznajmljivanje r;

Jedan nedostatak ove metode je da može zahtijevati da izradite sličnu tablicu sa stupcima koje želite uključiti. To može biti ponavljajuće i učinkovito kada se radi s velikim skupom podataka.

Metoda 3: kopirajte strukturu tablice

U drugim slučajevima možete naići na slučajeve kada vas zanima struktura tablice, a da vam nisu potrebni podaci pohranjeni u tablici.

U takvom scenariju, možete koristiti naredbu CREATE TABLE zajedno s klauzulom LIKE na sljedeći način:

CREATE TABLE nova_tablica ( LIKE izvorna_tablica ) ;

Ovo bi trebalo stvoriti novu tablicu s navedenim nazivom i sličnom strukturom kao 'source_table' bez stvarnog kopiranja podataka.

Kopiranje tablica između baza podataka

Da bismo kopirali tablice između različitih baza podataka, možemo izvesti podatke iz izvorne baze podataka i uvesti ih u ciljnu bazu podataka.

To obično uključuje korištenje formata datoteka poput CSV-a ili alata specifičnih za bazu podataka. Možete se pozvati na dokumentaciju za svoju bazu podataka o tome kako to postići jer može varirati ovisno o pogonu baze podataka.

Metoda 4: Korištenje povezanih poslužitelja (SQL Server)

U SQL Serveru možemo kopirati tablice između baza podataka pomoću povezanih poslužitelja.

Povezani poslužitelji omogućuju nam uspostavljanje veze s udaljenom bazom podataka i postavljanje upita ili prijenos podataka između njih.

Sintaksa je sljedeća:

UMETNUTI U [ LinkedServerName ] . [ Ime baze podataka ] . [ Naziv sheme ] . [ ciljna_tablica ]
IZABERI * FROM izvorna_tablica;

To omogućuje udaljenu vezu i prijenos podataka između udaljenih poslužitelja.

Zaključak

U ovom vodiču naučili smo kako koristiti i raditi s različitim metodama i tehnikama kopiranja tablice u SQL-u.