Agora Metin2 1
Agora Metin2
PrimeAC 1
PrimeAC
ShadowFon 1
ShadowFon
noisiv 1
noisiv
Manwe Work 1
Manwe Work
romegames 1
romegames
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Bvural41 1
Bvural41
NovaLst 1
NovaLst
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu SQL Tablolarında Klonlama Nasıl Yapılır?

Karadayı ✓

Karadayı ✓
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Deneme Mod
Ayın Üyesi
Katılım
21 May 2024
Konular
1,450
Mesajlar
2,452
Çözüm
7
Online süresi
3mo 25d
Reaksiyon Skoru
2,570
Altın Konu
1,027
Başarım Puanı
274
Yaş
51
MmoLira
36,922
DevLira
110
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

klonlama.png


SQL Tablolarında Klonlama Nasıl Yapılır?
Aynı sütunlara, özniteliklere, dizinlere, varsayılan değerlere vb. sahip bir tablonun tam bir kopyasına ihtiyaç duyduğunuz bir durum olabilir. Mevcut bir tablonun tam aynı sürümünü oluşturmaya zaman harcamak yerine, mevcut tablonun bir klonunu oluşturabilirsiniz.

SQL Klonlama İşlemi, mevcut bir tablonun tanımıyla birlikte tam kopyasını oluşturmanıza olanak tanır. Çeşitli RDBMS'lerde SQL kullanılarak üç tür klonlama mümkündür; bunlar aşağıda listelenmiştir.

  • Basit Klonlama
  • Sığ Klonlama
  • Derin Klonlama

MySQL'de Basit Klonlama

Basit klonlama işlemi, mevcut tablodan yeni bir kopya tablosu oluşturur ve yeni oluşturulan tablodaki tüm kayıtları kopyalar. Bu süreci parçalamak için, CREATE TABLE ifadesi kullanılarak yeni bir tablo oluşturulur; ve mevcut tablodaki veriler, SELECT ifadesinin bir sonucu olarak, yeni tabloya kopyalanır.

Burada, klon tablosu yalnızca orijinal tablodan NULL ayarları ve varsayılan değerler gibi temel sütun tanımlarını devralır. Endeksleri ve AUTO_INCREMENT tanımlarını devralmaz.

Sözdizimi

MySQL'de basit klonlama gerçekleştirmek için temel sözdizimi aşağıdadır:
CREATE TABLE new_table SELECT * FROM original_table;

Örnek

Bir sonraki birkaç yeni adımda klonlanacak olan mevcut CUSTOMERS tablosunu ele alalım.

İDİSİMYAŞADRESMAAŞ
1Rameş32Ahmedabad2000,00
2Hilan25Delhi1500,00
3Kauşik23Kota2000,00
4Çaytali25Bombay6500,00
5Sert27Bhopal8500,00
6Komal22Haydarabad4500,00
7Çirkin24Hindistan10000,00

Şimdi mevcut CUSTOMERS tablosunu kullanarak NEW_CUSTOMERS tablosunu oluşturmak için aşağıdaki SQL ifadesini kullanalım.

CREATE TABLE NEW_CUSTOMERS SELECT * FROM CUSTOMERS;

Çıktı şu şekilde görüntülenir:

Query OK, 7 rows affected (0.06 sec)
Records: 7 Duplicates: 0 Warnings: 0

Doğrulama

Tablonun başarıyla klonlanıp klonlanmadığını doğrulamak için aşağıdaki SELECT sorgusunu kullanabiliriz:

SELECT * FROM NEW_CUSTOMERS;

NEW_CUSTOMERS tablosu başarılı bir şekilde oluşturulursa, CUSTOMERS tablosunda bulunan tüm kayıtları almalıdır.

MySQL'de Sığ Klonlama

Sığ klonlama işlemi mevcut tablodan yeni bir kopya tablo oluşturur ancak yeni oluşturulan tabloya herhangi bir veri kaydı kopyalamaz, dolayısıyla yalnızca yeni ancak boş bir tablo oluşturulur.

Burada klon tablo sadece orijinal tablonun yapısını, indeksler ve AUTO_INCREMENT tanımı da dahil olmak üzere sütun özniteliklerini içerir.

Sözdizimi

MySQL RDBMS'de yüzeysel klonlama gerçekleştirmek için temel sözdizimi aşağıdadır:

CREATE TABLE new_table LIKE original_table;

Örnek

Aşağıda mevcut CUSTOMERS tablosunun yüzeysel bir klon kopyasını oluşturmaya yönelik bir örnek verilmiştir.

CREATE TABLE SHALL_CUSTOMERS LIKE CUSTOMERS;

Çıktı

Çıktı şu şekilde görüntülenir:

Query OK, 0 rows affected (0.06 sec)

Doğrulama

Tablonun başarıyla klonlanıp klonlanmadığını doğrulamak için aşağıdaki DESC table_name sorgusunu kullanabiliriz:

DESC SHALL_CUSTOMERS;

Bu, CUSTOMERS tablosunun yalnızca bir kopyası olan SHALL_CUSTOMERS tablosu hakkında aşağıdaki bilgileri görüntüler:

AlanTipHükümsüzAnahtarVarsayılanEkstra
İDtamsayı(11)HAYIRPRIHÜKÜMSÜZ
İSİMvarchar(20)HAYIRHÜKÜMSÜZ
YAŞtamsayı(11)HAYIRHÜKÜMSÜZ
ADRESkarakter(25)EVETHÜKÜMSÜZ
MAAŞondalık(18,2)EVETHÜKÜMSÜZ

MySQL'de Derin Klonlama

Derin klonlama işlemi basit klonlama ve yüzeysel klonlamanın birleşimidir. Sadece mevcut tablonun yapısını değil, aynı zamanda verilerini de yeni oluşturulan tabloya kopyalar. Bu nedenle, yeni tablo mevcut tablonun tüm içeriklerine ve dizinler ve AUTO_INCREMENT tanımları dahil tüm özniteliklere sahip olacaktır.

Sığ ve basit klonlamanın bir kombinasyonu olduğundan, bu tür klonlamanın yürütülmesi gereken iki farklı sorgusu olacaktır: biri CREATE TABLE ifadesiyle ve diğeri INSERT INTO ifadesiyle. CREATE TABLE ifadesi, var olan tablonun tüm özniteliklerini dahil ederek yeni tabloyu oluşturacaktır; ve INSERT INTO ifadesi, var olan tablodaki verileri yeni tabloya ekleyecektir.

Sözdizimi

MySQL RDBMS'de derin klonlama gerçekleştirmek için temel sözdizimi aşağıdadır:
CREATE TABLE new_table LIKE original_table;
INSERT INTO new_table SELECT * FROM original_table;

Örnek

Aşağıda mevcut CUSTOMERS tablosunun derin bir klon kopyasını oluşturmaya yönelik bir örnek verilmiştir. İlk adım mevcut tablonun yüzeysel bir klonunu oluşturmaktır.

CREATE TABLE DEEP_CUSTOMERS LIKE CUSTOMERS;

Çıktı şu şekilde görüntülenir:


Query OK, 0 rows affected (0.06 sec)

Şimdi ikinci adımımız CUSTOMERS tablosundaki tüm kayıtları DEEP_CUSTOMERS tablosuna kopyalamak olacak.

INSERT INTO DEEP_CUSTOMERS SELECT * FROM CUSTOMERS;

Çıktı

Çıktı şu şekilde görüntülenir:

Query OK, 7 rows affected (0.01 sec)
Records: 7 Duplicates: 0 Warnings: 0

Doğrulama

Tablonun başarıyla klonlanıp klonlanmadığını doğrulamak için aşağıdaki SELECT sorgusunu kullanabiliriz:

SELECT * FROM DEEP_CUSTOMERS;

DEEP_CUSTOMERS tablosu başarıyla klonlanırsa, CUSTOMERS'da bulunan tüm kayıtlar alınmalıdır.

SQL Server'da Tablo Klonlama

Ancak, bir SQL sunucusunda bir tabloyu tamamen klonlamanın doğrudan bir yolu yoktur. Ancak, durumu ele almak için bazı çözümlerimiz var.

SEÇ...BİLDİRİME GİR

MS SQL Server, yeni bir tablo oluşturmak ve verileri var olan bir tablodan içine kopyalamak için SELECT...INTO ifadesini kullanabilir . Ancak, bu komut yalnızca verileri kopyalar ve tanımını kopyalamaz, böylece kısıtlamaları, dizinleri vb. varsa atlar. Yeni tablolarında orijinal tablonun tam olarak aynı yapısına sahip olmak istenirse, bunların ayrı olarak eklenmesi gerekir.

Aynı veritabanındaki ve farklı veritabanları arasındaki bir tabloyu kopyalamak için SELECT...INTO komutunu kullanabilirsiniz.

Sözdizimi

Aşağıda SELECT...INTO ifadesinin temel sözdizimi yer almaktadır:

SELECT * INTO new_table FROM original_table;

Yukarıdaki SQL komutu, original_table yapısını kullanarak new_table adında bir tablo oluşturacak ve ardından original_table'daki tüm verileri new_table'a kopyalayacaktır.

Örnek

Bu bölümde klonlanacak olan mevcut CUSTOMERS tablosunu ele alalım.

İDİSİMYAŞADRESMAAŞ
1Rameş32Ahmedabad2000,00
2Hilan25Delhi1500,00
3Kauşik23Kota2000,00
4Çaytali25Bombay6500,00
5Sert27Bhopal8500,00
6Komal22Haydarabad4500,00
7Çirkin24Hindistan10000,00

Şimdi, bu tablonun verilerini yeni bir tablo olan NEW_CUSTOMERS'a kopyalamak istiyorsanız , aşağıda gösterildiği gibi şu SQL sorgusunu kullanalım:

SELECT * INTO NEW_CUSTOMERS FROM CUSTOMERS;

Çıktı

Çıktı şu şekilde görüntülenecektir:

(7 rows affected)


Doğrulama

Tüm verilerin yeni NEW_CUSTOMERS tablosuna kopyalanıp kopyalanmadığını doğrulamak için SQL SELECT ifadesini aşağıdaki gibi kullanacağız:

SELECT * FROM NEW_CUSTOMERS;

NEW_CUSTOMERS tablosu başarılı bir şekilde oluşturulursa, CUSTOMERS tablosunda bulunan tüm kayıtları almalıdır.
 
Son düzenleme:
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst