INSERT INTO SELECT komutu, bir tablodaki verileri kopyalar ve başka bir tabloya ekler.
INSERT INTO SELECT, kaynak ve hedef tablolardaki veri türlerinin eşleşmesini gerektirir.
Hedef tablodaki mevcut verileri etkilemez.
INSERT INTO SELECT kullanımı:
Tüm tabloyu başka bir tabloya kopyalamak için:
INSERT INTO tablo2
SELECT * FROM tablo1
WHERE koşul;
Tablodaki sadece bazı sütunları başka bir tabloya kopyalamak için ;
INSERT INTO tablo2 (sütun1, sütun2, sütun3, ...)
SELECT sütun1, sütun2, sütun3, ...
FROM tablo1
WHERE koşul;
Örnek veri tabanı üzerinde gösterelim:
KullaniciID |
Ad |
Soyad |
Adres |
Sehir |
Postakodu |
Ulke |
1 |
Safa |
Dedeoğlu |
Necmettin Erbakan Cad. no 8/1 |
İstanbul |
34000 |
Türkiye |
2 |
Fatih |
Turab |
İskele Cad. hastane sok. |
Artvin |
08300 |
Türkiye |
3 |
John |
Doupoint |
Claremont Rd no:8/3 |
Newcastle |
NE2 4AA |
İngiltere |
4 |
Gustavo |
Alfaro |
Cuero y Caicedo, Quito |
New York |
170129 |
Amerika |
TedarikID |
TedarikciAdi |
CalisanAd |
Adres |
Sehir |
Postakodu |
Ulke |
1 |
MY Express |
Frank Cesanne |
Unnamed Road |
Pekin |
Jk07320 |
Çin |
2 |
DHL |
John Smith |
Shara Zaviya Dahmani PO:928 |
Doha |
243512 |
Katar |
3 |
YK |
Mehmet Efe |
Trudering-Riem 326/3 |
Münih |
81825 |
Almanya |
4 |
MNK |
Hans Müller |
Dagmada Waaberi 324/5 |
Moskova |
Jh09010 |
Rusya |
SQL INSERT INTO SELECT Örnekleri:
Aşağıdaki SQL komutu "Tedarikçiler" tablosunu "Müşteriler" tablosuna kopyalar.
NOT: Verilerle doldurulmayan sütunlar NULL içerecektir.
INSERT INTO Musteriler (Ad, Sehir, Ulke)
SELECT TedarikciAdi, Sehir, Ulke FROM Tedarikciler;
Aşağıdaki SQL komutu “Tedarikciler” tablosundaki belirtilen Sütunları “Musteriler” tablosuna kopyalar.
INSERT INTO Musteriler (Ad, Soyad, Adres, Sehir, PostaKodu, Ulke)
SELECT TedarikciAdi, CalisanAd, Adres, Sehir, PostaKodu, Ulke FROM Tedarikciler;
Aşağıdaki SQL kodu sadece Alman Tedarikçileri kopyalar.
INSERT INTO Musteriler (Ad, Sehir, Ulke)
SELECT TedarikciAdi, Sehir, Ulke FROM Tedarikciler
WHERE Ulke='Almanya';
İçerik: YUSUF ERDOĞAN