Kopējiet tabulu SQL

Kopejiet Tabulu Sql



Atrodoties virspusē, datu dublēšana var šķist neefektīva; tai dažreiz var būt ļoti svarīga loma gadījumos, kad jums ir nepieciešama gandrīz precīza vienas un tās pašas tabulas kopija.

SQL mēs varam izmantot dažādas metodes un paņēmienus, lai kopētu esošu tabulu un izveidotu jauno tabulu ar jaunu nosaukumu, bet ar tiem pašiem datiem. Tas var būt ļoti noderīgi noteiktos uzdevumos, piemēram, dublējumkopijās, datu pārveidošanā, pagaidu datu izmaiņās, neietekmējot galveno tabulu, un citur.







Šajā rokasgrāmatā mēs izpētīsim šīs metodes un uzzināsim, kā mēs varam kopēt tabulu SQL datu bāzēs. Tā kā dažādie SQL datu bāzu dzinēji apstrādā tabulu kopēšanu, mēs neatklāsim visas metodes katrai datu bāzei.



Mēs centīsimies aptvert vismaz vienu katrai datu bāzes programmai, kad vien tas tiek atbalstīts, lai parādītu, kā varat kopēt tabulu katrai atbalstītajai datu bāzes programmai.



1. metode: globāls (izmantojot paziņojumu CREATE TABLE)

Visizplatītākā un vienkāršākā tabulas kopēšanas metode ir priekšraksta CREATE TABLE izmantošana.





Atšķirībā no parasta priekšraksta CREATE TABLE, mēs nododam priekšrakstu SELECT, kas satur avota tabulas struktūru un datus.

Sintakse ir šāda:



CREATE TABLE new_table AS
ATLASĪT * NO avota_tabulas;

Tas ļauj mums izveidot jaunu tabulu ar norādīto nosaukumu no avota tabulas.

Piemēram, Sakila paraugu datubāze. Pieņemsim, ka mēs vēlamies izveidot līdzīgu tabulu kā nomas tabulai.

Mēs varam izmantot iepriekšējo paņēmienu, kā parādīts šajā vaicājuma piemērā:

CREATE TABLE rental_copy AS
ATLASĪT * NO nomas;

Tam vajadzētu izveidot jaunu tabulu ar nosaukumu “rental_copy”, kurā ir tāda pati struktūra un dati kā nomas tabulā.

Jūs varat pārbaudīt, atlasot datus tabulā šādi:

ATLASĪT * FROM rental_copy;

Tajā jābūt precīziem datiem kā nomas tabulā.

2. metode: globāls (izmantojot INSERT INTO paziņojumu)

Vēl viena metode, ko visā pasaulē atbalsta dažādas SQL datu bāzes, ir priekšraksta INSERT INTO izmantošana.

Šis paņēmiens ļauj kopēt no vienas tabulas citā. Atšķirībā no CREATE TABLE un SELECT, šī metode ļauj mums selektīvi izgūt datus.

Tas noder, ja mums nepieciešama lielāka kontrole kopēšanas procesā. Mēs varam izmantot sintaksi, kā parādīts tālāk:

INSERT INTO target_table ( kolonna 1, kolonna 2, ... )
ATLASĪT 1. kolonnu, 2. sleju, ...
NO avota_tabulas;

Šajā gadījumā mēs varam norādīt kolonnas, kuras vēlamies iekļaut jaunajā tabulā, faktiski neiegūstot visu no sākotnējās tabulas.

Ņemiet, piemēram, šādu vaicājumu:

IEVIETOT
INTO
rental_copy ( rental_id,
rental_date,
atgriešanas_datums )
ATLASĪT
rental_id,
rental_date,
atgriešanas_datums
NO
noma r;

Viens no šīs metodes trūkumiem ir tāds, ka var būt nepieciešams izveidot līdzīgu tabulu ar kolonnām, kuras vēlaties iekļaut. Tas var būt atkārtoti un efektīvi, strādājot ar lielu datu kopu.

3. metode: kopējiet tabulas struktūru

Citos gadījumos jūs varat saskarties ar gadījumiem, kad jūs interesē tabulas struktūra, neizmantojot tabulā saglabātos datus.

Šādā gadījumā varat izmantot priekšrakstu CREATE TABLE kopā ar klauzulu LIKE šādi:

CREATE TABLE new_table ( LIKE source_table ) ;

Tam vajadzētu izveidot jaunu tabulu ar norādīto nosaukumu un līdzīgu struktūru kā “avota_tabula”, faktiski nekopējot datus.

Tabulu kopēšana starp datu bāzēm

Lai kopētu tabulas starp dažādām datu bāzēm, mēs varam eksportēt datus no avota datu bāzes un importēt tos mērķa datu bāzē.

Tas parasti ietver uz failiem balstītu formātu, piemēram, CSV, vai datubāzei specifisku rīku izmantošanu. Varat atsaukties uz savas datu bāzes dokumentāciju par to, kā to paveikt, jo tā var atšķirties atkarībā no datu bāzes programmas.

4. metode: saistīto serveru izmantošana (SQL Server)

SQL Server mēs varam kopēt tabulas starp datu bāzēm, izmantojot saistītos serverus.

Saistītie serveri ļauj mums izveidot savienojumu ar attālo datu bāzi un veikt vaicājumus vai pārsūtīt datus starp tiem.

Sintakse ir šāda:

INSERT INTO [ LinkedServerName ] . [ Datu bāzes nosaukums ] . [ Shēmas nosaukums ] . [ mērķa_tabula ]
ATLASĪT * NO avota_tabulas;

Tas nodrošina attālo savienojumu un datu pārsūtīšanu starp attālajiem serveriem.

Secinājums

Šajā apmācībā mēs uzzinājām, kā izmantot un strādāt ar dažādām metodēm un paņēmieniem tabulas kopēšanai SQL.