SQL INSERT INTO SELECT Kullanımı
INSERT INTO ifadesi ile bir tablodaki verileri alıp varolan bir tablo
içine kopyalayabiliriz. Hedefte belirttiğimiz tablonun var olması gerekmektedir.
Hedef tabloda var olan alanlar silinmez. Var olan alanların yanına yeni alanlar
eklenir.
INSERT INTO Kullanım Biçimi
INSERT INTO Hedef_tablo (alan_adi1,alan_adi2...)
SELECT alan_adi1,alan_adi2...
FROM tablo1 |
INSERT INTO Örnekleri:
- Tablomuzdaki bütün alanları kopyalama: Eğer tablomuzdaki bütün
alanların hepsini almak istersek alan adlarını tek tek belirtmemize gerek
yoktur. Aşağıdaki kod ile Personel tablomuzdaki bütün alanlar verileri ile
birlikte olduğu gibi alınarak personel_yedek tablosuna (mevcut alanlar
korunarak) eklenir.
INSERT INTO personel_yedek
SELECT *
FROM personel |
- Tablomuzdaki alanların adını değiştirerek
kopyalama: Tablomuzda bulunan alanları hedef tablomuza başka bir
isimle oluşturabiliriz. Aşağıdaki örnekte Personel tablosundaki ad_soyad alanı
Personel_yedek tablosuna isim olarak kopyalanıyor. Ancak Sehir alanı olduğu gibi
kopyalanıyor.
INSERT INTO personel_yedek (isim, sehir)
SELECT ad_soyad, sehir
FROM personel |
- Belli kritere göre seçilen kayıtları kopyalama:
Tablomuzda bulunan kayıtları istediğimiz bir kritere göre seçerek
başka bir tabloya kopyalayabiliriz. Aşağıdaki örnekte Personel tablosunda
bulunan kayıtlardan Sehir alanında İstanbul yazanlar seçiliyor. Bu seçilen
kayıtlardan sadece ad_soyad alanında bulunan kayıtlar istanbul_personelleri
isimli var olan tabloya isim olarak aktarılıyor.
INSERT INTO istanbul_personelleri (isim)
SELECT ad_soyad
FROM personel
WHERE sehir='istanbul' |