Копирајте табелу у СКЛ-у

Kopirajte Tabelu U Skl U



Док је на површини, дуплицирање података може изгледати неефикасно; понекад може да игра веома кључну улогу у случајевима када треба да имате скоро тачну копију исте табеле.

У СКЛ-у можемо користити различите методе и технике да копирамо постојећу табелу и имамо нову табелу под новим именом, али са истим подацима. Ово може бити веома корисно у одређеним задацима као што су резервне копије, трансформација података, привремене измене података без утицаја на главну табелу и још много тога.







У овом водичу ћемо истражити ове методе и научити како можемо да копирамо табелу у СКЛ базе података. Због разлика у начину на који различити СКЛ мотори базе података рукују копирањем табеле, нећемо покривати све методе за сваку базу података.



Покушаћемо да покријемо најмање један за сваки механизам базе података, кад год је подржан, да бисмо вам показали како можете да копирате табелу за сваки подржани механизам базе података.



Метод 1: Глобално (користећи изјаву ЦРЕАТЕ ТАБЛЕ)

Најчешћи и најједноставнији метод копирања табеле је коришћење наредбе ЦРЕАТЕ ТАБЛЕ.





За разлику од нормалног исказа ЦРЕАТЕ ТАБЛЕ, ми прослеђујемо СЕЛЕЦТ наредбу која садржи структуру и податке изворне табеле.

Синтакса је следећа:



ЦРЕАТЕ ТАБЛЕ нев_табле АС
СЕЛЕЦТ * ФРОМ изворна_табела;

Ово нам омогућава да креирамо нову табелу са наведеним именом из изворне табеле.

Узмимо на пример базу података узорака Сакила. Претпоставимо да желимо да креирамо сличну табелу као табела за изнајмљивање.

Можемо користити претходну технику као што је приказано у следећем примеру упита:

ЦРЕАТЕ ТАБЛЕ рентал_цопи АС
СЕЛЕЦТ * ОД изнајмљивања;

Ово би требало да креира нову табелу под називом „рентал_цопи“ која садржи исту структуру и податке као табела за изнајмљивање.

Можете да проверите тако што ћете изабрати податке из табеле на следећи начин:

СЕЛЕЦТ * ИЗ копија_закупа;

Ово треба да садржи тачне податке као табелу за изнајмљивање.

Метод 2: Глобално (користећи ИНСЕРТ ИНТО изјаву)

Други метод који је глобално подржан од стране широког спектра СКЛ база података је коришћење ИНСЕРТ ИНТО наредбе.

Ова техника нам омогућава да копирамо из једне табеле у другу. За разлику од ЦРЕАТЕ ТАБЛЕ и СЕЛЕЦТ, овај метод нам омогућава да селективно преузимамо податке.

Ово је корисно када нам је потребна већа контрола у процесу копирања. Можемо користити синтаксу као што је приказано у наставку:

ИНСЕРТ ИНТО таргет_табле ( колона1, колона2, ... )
СЕЛЕЦТ колона1, колона2,...
ФРОМ изворна_табела;

У овом случају, можемо навести колоне које желимо да укључимо у нову табелу, а да заправо не преузмемо све из оригиналне табеле.

Узмите за пример следећи упит:

ИНСЕРТ
У
рентал_цопи ( рентал_ид,
датум_изнајмљивања,
Датум повратка )
СЕЛЕЦТ
рентал_ид,
датум_изнајмљивања,
Датум повратка
ИЗ
изнајмљивање р;

Један недостатак ове методе је што може захтевати да направите сличну табелу са колонама које желите да укључите. Ово може бити понављајуће и ефикасно када радите са великим скупом података.

Метод 3: Копирајте структуру табеле

У другим случајевима, можда ћете наићи на случајеве у којима сте заинтересовани за структуру табеле без потребе за подацима ускладиштеним у табели.

У таквом сценарију, можете користити наредбу ЦРЕАТЕ ТАБЛЕ у вези са клаузулом ЛИКЕ на следећи начин:

ЦРЕАТЕ ТАБЛЕ нев_табле ( ЛИКЕ изворна_табела ) ;

Ово би требало да креира нову табелу са наведеним именом и сличном структуром као „изворна_табела“ без стварног копирања података.

Копирање табела између база података

Да бисмо копирали табеле између различитих база података, можемо извести податке из изворне базе података и увести их у циљну базу података.

Ово обично укључује коришћење формата заснованих на датотекама као што су ЦСВ или алати специфични за базу података. Можете погледати документацију за своју базу података о томе како да то постигнете јер се може разликовати у зависности од механизма базе података.

Метод 4: Коришћење повезаних сервера (СКЛ сервер)

У СКЛ Серверу можемо копирати табеле између база података помоћу повезаних сервера.

Повезани сервери нам омогућавају да успоставимо везу са удаљеном базом података и тражимо или преносимо податке између њих.

Синтакса је следећа:

ИНСЕРТ ИНТО [ ЛинкедСерверНаме ] . [ Назив базе података ] . [ СцхемаНаме ] . [ таргет_табле ]
СЕЛЕЦТ * ФРОМ изворна_табела;

Ово омогућава даљинску везу и пренос података између удаљених сервера.

Закључак

У овом туторијалу научили смо како да користимо и радимо са различитим методама и техникама копирања табеле у СКЛ-у.