- 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
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!
SQL Tablolarında Klonlama Nasıl Yapılır?
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İM | YAŞ | ADRES | MAAŞ |
|---|---|---|---|---|
| 1 | Rameş | 32 | Ahmedabad | 2000,00 |
| 2 | Hilan | 25 | Delhi | 1500,00 |
| 3 | Kauşik | 23 | Kota | 2000,00 |
| 4 | Çaytali | 25 | Bombay | 6500,00 |
| 5 | Sert | 27 | Bhopal | 8500,00 |
| 6 | Komal | 22 | Haydarabad | 4500,00 |
| 7 | Çirkin | 24 | Hindistan | 10000,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:
| Alan | Tip | Hükümsüz | Anahtar | Varsayılan | Ekstra |
|---|---|---|---|---|---|
| İD | tamsayı(11) | HAYIR | PRI | HÜKÜMSÜZ | |
| İSİM | varchar(20) | HAYIR | HÜKÜMSÜZ | ||
| YAŞ | tamsayı(11) | HAYIR | HÜKÜMSÜZ | ||
| ADRES | karakter(25) | EVET | HÜKÜMSÜZ | ||
| MAAŞ | ondalık(18,2) | EVET | HÜ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İM | YAŞ | ADRES | MAAŞ |
|---|---|---|---|---|
| 1 | Rameş | 32 | Ahmedabad | 2000,00 |
| 2 | Hilan | 25 | Delhi | 1500,00 |
| 3 | Kauşik | 23 | Kota | 2000,00 |
| 4 | Çaytali | 25 | Bombay | 6500,00 |
| 5 | Sert | 27 | Bhopal | 8500,00 |
| 6 | Komal | 22 | Haydarabad | 4500,00 |
| 7 | Çirkin | 24 | Hindistan | 10000,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:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 406
- Cevaplar
- 3
- Görüntüleme
- 265
- Cevaplar
- 0
- Görüntüleme
- 247
- Cevaplar
- 2
- Görüntüleme
- 197
- Cevaplar
- 2
- Görüntüleme
- 158




