Kopieer een tabel in SQL

Kopieer Een Tabel In Sql



Aan de oppervlakte lijkt de duplicatie van gegevens misschien inefficiënt; het kan soms een zeer cruciale rol spelen in gevallen waarin u een vrijwel exacte kopie van dezelfde tabel nodig heeft.

In SQL kunnen we verschillende methoden en technieken gebruiken om een ​​bestaande tabel te kopiëren en de nieuwe tabel onder een nieuwe naam te krijgen, maar met dezelfde gegevens. Dit kan erg handig zijn bij bepaalde taken, zoals back-ups, gegevenstransformatie, tijdelijke gegevenswijzigingen zonder de hoofdtabel te beïnvloeden, en meer.







In deze handleiding zullen we deze methoden verkennen en leren hoe we een tabel in SQL-databases kunnen kopiëren. Vanwege de verschillen in de manier waarop de verschillende SQL-database-engines omgaan met het kopiëren van tabellen, behandelen we niet alle methoden voor elke database.



We zullen proberen er minstens één te bespreken voor elke database-engine, indien ondersteund, om u te laten zien hoe u een tabel kunt kopiëren voor elk van uw ondersteunde database-engines.



Methode 1: Globaal (met behulp van de CREATE TABLE-instructie)

De meest gebruikelijke en simplistische methode voor het kopiëren van een tabel is het gebruik van de CREATE TABLE-instructie.





In tegenstelling tot een normale CREATE TABLE-instructie geven we een SELECT-instructie door die de structuur en de gegevens van de brontabel bevat.

De syntaxis is als volgt:



MAAK TABEL nieuwe_tabel AS
SELECTEER * FROM bron_tabel;

Hierdoor kunnen we een nieuwe tabel maken met de opgegeven naam uit de brontabel.

Neem bijvoorbeeld de voorbeelddatabase van Sakila. Stel dat we een soortgelijke tabel willen maken als de huurtabel.

We kunnen de vorige techniek gebruiken, zoals weergegeven in de volgende voorbeeldquery:

MAAK TABEL rent_copy AS
SELECTEER * VAN verhuur;

Dit zou een nieuwe tabel moeten creëren met de naam “rental_copy” die dezelfde structuur en gegevens bevat als de huurtabel.

U kunt dit verifiëren door de gegevens als volgt uit de tabel te selecteren:

SELECTEER * VAN verhuur_copy;

Deze moet de exacte gegevens bevatten als de huurtabel.

Methode 2: Globaal (met behulp van de INSERT INTO-instructie)

Een andere methode die wereldwijd wordt ondersteund door een grote verscheidenheid aan SQL-databases is het gebruik van de INSERT INTO-instructie.

Met deze techniek kunnen we van de ene tabel naar de andere kopiëren. In tegenstelling tot CREATE TABLE en SELECT kunnen we met deze methode de gegevens selectief ophalen.

Dit is handig als we meer controle nodig hebben tijdens het kopieerproces. We kunnen de syntaxis gebruiken zoals hieronder weergegeven:

INSERT INTO target_table ( kolom1, kolom2, ... )
SELECTEER kolom1, kolom2, ...
FROM bron_tabel;

In dit geval kunnen we de kolommen specificeren die we in de nieuwe tabel willen opnemen zonder daadwerkelijk alles uit de originele tabel op te halen.

Neem bijvoorbeeld de volgende vraag:

INVOEGEN
NAAR BINNEN
verhuur_kopie ( verhuur_id,
huurdatum,
retourdatum )
SELECTEER
verhuur_id,
huurdatum,
retourdatum
VAN
verhuur r;

Een nadeel van deze methode is dat u mogelijk een vergelijkbare tabel moet maken met de kolommen die u wilt opnemen. Dit kan repetitief en efficiënt zijn als u met een grote dataset werkt.

Methode 3: Kopieer de tabelstructuur

In andere gevallen kunt u gevallen tegenkomen waarin u geïnteresseerd bent in de tabelstructuur, zonder dat u de gegevens nodig heeft die in de tabel zijn opgeslagen.

In een dergelijk scenario kunt u de instructie CREATE TABLE als volgt gebruiken in combinatie met de LIKE-clausule:

MAAK TABEL new_table ( LIKE bron_tabel ) ;

Hierdoor zou een nieuwe tabel moeten worden aangemaakt met de opgegeven naam en een soortgelijke structuur als de “source_table” zonder de gegevens daadwerkelijk te kopiëren.

Het kopiëren van de tabellen tussen databases

Om de tabellen tussen verschillende databases te kopiëren, kunnen we de gegevens uit de brondatabase exporteren en in de doeldatabase importeren.

Meestal gaat het hierbij om het gebruik van bestandsgebaseerde formaten zoals CSV of databasespecifieke tools. U kunt de documentatie voor uw database raadplegen over hoe u dit kunt doen, aangezien dit kan variëren afhankelijk van de database-engine.

Methode 4: De gekoppelde servers gebruiken (SQL Server)

In SQL Server kunnen we de tabellen tussen databases kopiëren met behulp van gekoppelde servers.

Met gekoppelde servers kunnen we een verbinding tot stand brengen met een externe database en de gegevens daartussen opvragen of overdragen.

De syntaxis is als volgt:

INVOEGEN IN [ Gekoppelde servernaam ] . [ Database naam ] . [ Schemanaam ] . [ doel_tabel ]
SELECTEER * FROM bron_tabel;

Dit maakt de externe verbinding en gegevensoverdracht tussen externe servers mogelijk.

Conclusie

In deze zelfstudie hebben we geleerd hoe we verschillende methoden en technieken voor het kopiëren van een tabel in SQL kunnen gebruiken en ermee kunnen werken.