Copiați un tabel în SQL

Copiati Un Tabel In Sql



În timp ce la suprafață, duplicarea datelor poate părea ineficientă; poate juca uneori un rol foarte important în cazurile în care trebuie să aveți o copie aproape exactă a aceluiași tabel.

În SQL, putem folosi diverse metode și tehnici pentru a copia un tabel existent și a avea noul tabel sub un nume nou, dar cu aceleași date. Acest lucru poate fi foarte util în anumite sarcini, cum ar fi backup-uri, transformarea datelor, modificări temporare ale datelor fără a afecta tabelul principal și multe altele.







În acest ghid, vom explora aceste metode și vom afla cum putem copia un tabel în bazele de date SQL. Datorită diferențelor privind modul în care diferitele motoare de baze de date SQL gestionează copierea tabelelor, nu vom acoperi toate metodele pentru fiecare bază de date.



Vom încerca să acoperim cel puțin unul pentru fiecare motor de bază de date, ori de câte ori este acceptat, pentru a vă arăta cum puteți copia un tabel pentru fiecare motor de bază de date acceptat.



Metoda 1: globală (folosind instrucțiunea CREATE TABLE)

Cea mai comună și simplistă metodă de copiere a unui tabel este utilizarea instrucțiunii CREATE TABLE.





Spre deosebire de o instrucțiune normală CREATE TABLE, trecem o instrucțiune SELECT care conține structura și datele tabelului sursă.

Sintaxa este următoarea:



CREATE TABLE new_table AS
SELECTAȚI * DIN sursă_tabel;

Acest lucru ne permite să creăm un nou tabel cu numele specificat din tabelul sursă.

Luați, de exemplu, baza de date eșantion Sakila. Să presupunem că vrem să creăm un tabel similar cu tabelul de închirieri.

Putem folosi tehnica anterioară așa cum se arată în următorul exemplu de interogare:

CREATE TABLE rental_copy AS
SELECTAȚI * DIN închiriere;

Aceasta ar trebui să creeze un nou tabel numit „închiriere_copie” care conține aceeași structură și date ca și tabelul de închiriere.

Puteți verifica prin selectarea datelor din tabel, după cum urmează:

SELECTAȚI * DIN închiriere_copie;

Acesta ar trebui să conțină datele exacte ca tabelul de închiriere.

Metoda 2: globală (folosind instrucțiunea INSERT INTO)

O altă metodă care este susținută la nivel global de o mare varietate de baze de date SQL este utilizarea instrucțiunii INSERT INTO.

Această tehnică ne permite să copiem dintr-un tabel în altul. Spre deosebire de CREATE TABLE și SELECT, această metodă ne permite să preluăm selectiv datele.

Acest lucru este util atunci când avem nevoie de mai mult control în procesul de copiere. Putem folosi sintaxa așa cum se arată în următoarele:

INSERT INTO target_table ( coloana1, coloana2,... )
SELECTAȚI coloana1, coloana2,...
DIN sursă_tabel;

În acest caz, putem specifica coloanele pe care dorim să le includem în noul tabel fără a prelua de fapt totul din tabelul original.

Luați, de exemplu, următoarea interogare:

INTRODUCE
ÎN
închiriere_copie ( location_id,
data_închirierea,
data_return )
SELECTAȚI
location_id,
data_închirierea,
data_return
DIN
închiriere r;

Un dezavantaj al acestei metode este că poate fi necesar să creați un tabel similar cu coloanele pe care doriți să le includeți. Acest lucru poate fi repetitiv și eficient atunci când lucrați cu un set de date mare.

Metoda 3: Copiați structura tabelului

În alte cazuri, s-ar putea să întâlniți situații în care sunteți interesat de structura tabelului fără a avea nevoie de datele stocate în tabel.

Într-un astfel de scenariu, puteți utiliza instrucțiunea CREATE TABLE împreună cu clauza LIKE, după cum urmează:

CREATE TABLE new_table ( LIKE sursă_tabel ) ;

Aceasta ar trebui să creeze un nou tabel cu numele specificat și o structură similară cu „sursă_tabel” fără a copia efectiv datele.

Copierea tabelelor între baze de date

Pentru a copia tabelele între diferite baze de date, putem exporta datele din baza de date sursă și le putem importa în baza de date țintă.

Acest lucru implică de obicei utilizarea formatelor bazate pe fișiere, cum ar fi CSV sau instrumente specifice bazei de date. Puteți consulta documentația pentru baza de date despre cum să realizați acest lucru, deoarece poate varia în funcție de motorul bazei de date.

Metoda 4: Utilizarea serverelor conectate (SQL Server)

În SQL Server, putem copia tabelele între baze de date utilizând servere legate.

Serverele conectate ne permit să stabilim o conexiune la o bază de date de la distanță și să interogăm sau să transferăm datele între ele.

Sintaxa este următoarea:

INTRODU IN [ LinkedServerName ] . [ Numele bazei de date ] . [ SchemaName ] . [ tabel_țintă ]
SELECTAȚI * DIN sursă_tabel;

Acest lucru permite conexiunea la distanță și transferurile de date între servere la distanță.

Concluzie

În acest tutorial, am învățat cum să folosim și să lucrăm cu diverse metode și tehnici de copiere a unui tabel în SQL.