Kopioi taulukko SQL:llä

Kopioi Taulukko Sql Lla



Pinnalla tietojen kopioiminen voi tuntua tehottomalta; Sillä voi joskus olla erittäin tärkeä rooli tapauksissa, joissa sinulla on oltava lähes tarkka kopio samasta taulukosta.

SQL:ssä voimme käyttää erilaisia ​​menetelmiä ja tekniikoita olemassa olevan taulukon kopioimiseen ja uuden taulukon saamiseen uudella nimellä, mutta samoilla tiedoilla. Tämä voi olla erittäin hyödyllistä tietyissä tehtävissä, kuten varmuuskopioinnissa, tietojen muuntamisessa, väliaikaisissa tietojen muuttamisessa ilman, että se vaikuttaa päätaulukkoon, ja muissa.







Tässä oppaassa tutkimme näitä menetelmiä ja opimme kopioimaan taulukon SQL-tietokantoihin. Koska eri SQL-tietokantakoneet käsittelevät taulukon kopioinnin eroja, emme kata kaikkia menetelmiä kussakin tietokannassa.



Yritämme kattaa vähintään yhden jokaista tietokantakonetta varten, aina kun sitä tuetaan, näyttääksemme sinulle, kuinka voit kopioida taulukon jokaiselle tuetulle tietokantakoneelle.



Tapa 1: Yleinen (käyttäen CREATE TABLE -lausetta)

Yleisin ja yksinkertaisin tapa kopioida taulukko on CREATE TABLE -käskyn käyttö.





Toisin kuin normaali CREATE TABLE -käsky, välitämme SELECT-käskyn, joka sisältää lähdetaulukon rakenteen ja tiedot.

Syntaksi on seuraava:



LUO TAULUKKO new_table AS
VALITSE * FROM lähdetaulukko;

Tämän avulla voimme luoda uuden taulukon määritetyllä nimellä lähdetaulukosta.

Otetaan esimerkiksi Sakilan näytetietokanta. Oletetaan, että haluamme luoda samanlaisen taulukon kuin vuokrat-taulukko.

Voimme käyttää edellistä tekniikkaa seuraavan esimerkkikyselyn mukaisesti:

CREATE TABLE rental_copy AS
VALITSE * Vuokrauksesta

Tämän pitäisi luoda uusi taulukko nimeltä 'vuokrakopio', joka sisältää saman rakenteen ja tiedot kuin vuokrataulukko.

Voit varmistaa valitsemalla tiedot taulukosta seuraavasti:

VALITSE * FROM vuokrakopio;

Tämän pitäisi sisältää tarkat tiedot kuin vuokrataulukossa.

Tapa 2: Yleinen (käyttäen INSERT INTO -lauseketta)

Toinen menetelmä, jota monet SQL-tietokannat tukevat maailmanlaajuisesti, on INSERT INTO -käskyn käyttö.

Tämän tekniikan avulla voimme kopioida taulukosta toiseen. Toisin kuin CREATE TABLE ja SELECT, tämä menetelmä antaa meille mahdollisuuden noutaa tiedot valikoivasti.

Tästä on hyötyä, kun tarvitsemme enemmän hallintaa kopiointiprosessissa. Voimme käyttää syntaksia seuraavassa esitetyllä tavalla:

INSERT INTO target_table ( sarake1, sarake2, ... )
VALITSE sarake1, sarake2, ...
FROM lähdetaulukko;

Tässä tapauksessa voimme määrittää sarakkeet, jotka haluamme sisällyttää uuteen taulukkoon noutamatta kaikkea alkuperäisestä taulukosta.

Otetaan esimerkiksi seuraava kysely:

LISÄÄ
INTO
vuokra_kopio ( rental_id,
rental_date,
palautuspäivä )
VALITSE
rental_id,
rental_date,
palautuspäivä
FROM
vuokra-r;

Yksi tämän menetelmän haittapuoli on, että se saattaa edellyttää samanlaisen taulukon luomista sarakkeilla, jotka haluat sisällyttää. Tämä voi olla toistuvaa ja tehokasta, kun työskentelet suuren tietojoukon kanssa.

Tapa 3: Kopioi taulukkorakenne

Muissa tapauksissa saatat kohdata tapauksia, joissa olet kiinnostunut taulukon rakenteesta ilman, että tarvitset taulukkoon tallennettuja tietoja.

Tällaisessa tilanteessa voit käyttää CREATE TABLE -käskyä yhdessä LIKE-lauseen kanssa seuraavasti:

LUO TAULUKKO uusi_taulukko ( LIKE lähdetaulukko ) ;

Tämän pitäisi luoda uusi taulukko määritetyllä nimellä ja samankaltaisella rakenteella kuin 'lähdetaulukko' kopioimatta tietoja.

Taulukoiden kopioiminen tietokantojen välillä

Taulukoiden kopioimiseksi eri tietokantojen välillä voimme viedä tiedot lähdetietokannasta ja tuoda ne kohdetietokantaan.

Tämä edellyttää yleensä tiedostopohjaisten muotojen, kuten CSV:n tai tietokantakohtaisten työkalujen käyttöä. Voit katsoa tietokantasi dokumentaatiosta, kuinka tämä tehdään, koska se voi vaihdella tietokantakoneen mukaan.

Tapa 4: Linkitettyjen palvelimien käyttäminen (SQL Server)

SQL Serverissä voimme kopioida taulukot tietokantojen välillä Linked Servers -palvelimilla.

Linkitettyjen palvelimien avulla voimme muodostaa yhteyden etätietokantaan ja tehdä kyselyjä tai siirtää tietoja niiden välillä.

Syntaksi on seuraava:

LAITTAA SISÄÄN [ LinkedServerName ] . [ Tietokannan nimi ] . [ SchemaName ] . [ kohdetaulukko ]
VALITSE * FROM lähde_taulukko;

Tämä mahdollistaa etäyhteyden ja tiedonsiirron etäpalvelimien välillä.

Johtopäätös

Tässä opetusohjelmassa opimme käyttämään ja työskentelemään eri menetelmien ja tekniikoiden kanssa taulukon kopioimiseksi SQL:ssä.