Kopier en tabell i SQL

Kopier En Tabell I Sql



Mens på overflaten, kan dataduplisering virke ineffektiv; det kan noen ganger spille en svært avgjørende rolle i tilfeller der du trenger å ha en nesten nøyaktig kopi av samme tabell.

I SQL kan vi bruke ulike metoder og teknikker for å kopiere en eksisterende tabell og få den nye tabellen under et nytt navn, men med samme data. Dette kan være svært nyttig i visse oppgaver som sikkerhetskopiering, datatransformasjon, midlertidige dataendringer uten å påvirke hovedtabellen og mer.







I denne veiledningen vil vi utforske disse metodene og lære hvordan vi kan kopiere en tabell i SQL-databaser. På grunn av forskjellene på hvordan de ulike SQL-databasemotorene håndterer tabellkopieringen, vil vi ikke dekke alle metodene for hver database.



Vi vil prøve å dekke minst én for hver databasemotor, når den støttes, for å vise deg hvordan du kan kopiere en tabell for hver av dine støttede databasemotorer.



Metode 1: Global (ved hjelp av CREATE TABLE-setningen)

Den vanligste og mest forenklede metoden for å kopiere en tabell er å bruke CREATE TABLE-setningen.





I motsetning til en vanlig CREATE TABLE-setning, sender vi en SELECT-setning som inneholder strukturen og dataene til kildetabellen.

Syntaksen er som følger:



CREATE TABLE new_table AS
PLUKKE UT * FRA kildetabell;

Dette lar oss lage en ny tabell med det angitte navnet fra kildetabellen.

Ta for eksempel Sakila-eksempeldatabasen. Anta at vi ønsker å lage en lignende tabell som leietabellen.

Vi kan bruke den forrige teknikken som vist i følgende eksempelspørring:

CREATE TABLE rental_copy AS
PLUKKE UT * FRA utleie;

Dette bør opprette en ny tabell kalt 'rental_copy' som inneholder samme struktur og data som leietabellen.

Du kan bekrefte ved å velge dataene fra tabellen som følger:

PLUKKE UT * FROM rental_copy;

Denne bør inneholde nøyaktige data som leietabellen.

Metode 2: Global (ved å bruke INSERT INTO-setningen)

En annen metode som støttes globalt av en rekke SQL-databaser er å bruke INSERT INTO-setningen.

Denne teknikken lar oss kopiere fra en tabell til en annen. I motsetning til CREATE TABLE og SELECT, lar denne metoden oss selektivt hente dataene.

Dette kommer godt med når vi trenger mer kontroll i kopieringsprosessen. Vi kan bruke syntaksen som vist i følgende:

INSERT INTO target_table ( kolonne 1, kolonne 2, ... )
VELG kolonne1, kolonne2, ...
FRA kildetabell;

I dette tilfellet kan vi spesifisere kolonnene som vi ønsker å inkludere i den nye tabellen uten å faktisk hente alt fra den opprinnelige tabellen.

Ta for eksempel følgende spørring:

SETT INN
INN I
leie_kopi ( rental_id,
leie_dato,
returdato )
PLUKKE UT
rental_id,
leie_dato,
returdato
FRA
leie r;

En ulempe med denne metoden er at den kan kreve at du oppretter en lignende tabell med kolonnene du ønsker å inkludere. Dette kan være repeterende og effektivt når du arbeider med et stort datasett.

Metode 3: Kopier tabellstrukturen

I andre tilfeller kan du komme over tilfeller der du er interessert i tabellstrukturen uten å trenge dataene som er lagret i tabellen.

I et slikt scenario kan du bruke CREATE TABLE-setningen i forbindelse med LIKE-leddet som følger:

OPPRETT TABELL ny_tabell ( LIKE kildetabell ) ;

Dette bør opprette en ny tabell med det angitte navnet og lignende struktur som 'kildetabellen' uten å kopiere dataene.

Kopiere tabellene mellom databaser

For å kopiere tabellene mellom ulike databaser kan vi eksportere dataene fra kildedatabasen og importere dem til måldatabasen.

Dette innebærer vanligvis bruk av filbaserte formater som CSV eller databasespesifikke verktøy. Du kan referere til dokumentasjonen for databasen din om hvordan du oppnår dette, da det kan variere avhengig av databasemotoren.

Metode 4: Bruke de koblede serverne (SQL-server)

I SQL Server kan vi kopiere tabellene mellom databaser ved å bruke koblede servere.

Koblede servere lar oss opprette en tilkobling til en ekstern database og spørre eller overføre data mellom dem.

Syntaksen er som følger:

SETTE INN I [ LinkedServerName ] . [ Databasenavn ] . [ SchemaName ] . [ target_table ]
PLUKKE UT * FRA kildetabell;

Dette muliggjør ekstern tilkobling og dataoverføring mellom eksterne servere.

Konklusjon

I denne opplæringen lærte vi å bruke og jobbe med ulike metoder og teknikker for å kopiere en tabell i SQL.