SQL SELECT INTO Kullanımı
SELECT INTO ifadesi ile bir tablodaki verileri alıp yeni bir tablo
oluşturup içine kopyalayabiliriz. Sonuçta veritabanında yeni bir tablo
oluşturulacağı için veritabanı üzerinde işlem yapan kullanıcının yeni bir tablo
oluşturma yetkisine sahip olması gerekmektedir.
SELECT INTO Kullanım Biçimi
SELECT alan_ad(lari)
INTO yeni_tablo_adi [IN hedef_database]
FROM tablo1 |
NOT 1: Eğer yeni oluşturacağımız tablo aynı veritabanı içindeyse [IN
hedef_database] ifadesi kullanılmaz. Eğer farklı bir veritabanı içine kopyasını
alacaksak o zaman IN operatörü ile hedef veritabanını belirtmemiz gerekir.
NOT 2: Select Into yapısı ile yeni oluşturulacak olan tabloya, mevcut
tablomuzdaki alanlar veri tipleri ve içindeki verilerle birlikte aynen
kopyalanır. Eğer alan adını mevcut isminden farklı bir isimle oluşturmak
istersek o zaman AS yapısı kullanabiliriz.
SELECT id, ad_soyad AS isim, yasadigi_sehir AS sehir
INTO personel_yedek
FROM personel |
NOT 3: Eğer tablo içindeki verileri hariç tutup, sadece alan adları ve
veri tiplerini almak istersek WHERE 1=0 eklememiz gerekir.
SELECT id, ad_soyad, sehir
INTO personel_yedek
FROM personel
WHERE 1=0 |
Select Into Örnekleri:
- Farklı ve harici veritabanına kopyalama: Acces veritabanlarında
geçerli olan bir yapıdır. IN ifadesinden sonra belirtilen yoldaki veritabanına
tablomuz kopyalanır.
SELECT *
INTO personel_yedek IN 'c:\backup.mdb'
FROM personel |
- Aynı veritabanı içinde tablo kopyalama:
Veritabanımızdaki işlem kayıtlarını yıllara göre tuttuğumuzu varsayalım.
Her yeni yıl geldiğinde elimizde bulunan boş bir şablon veritabanını kullanarak
bir kopyasını yeni çalışma yılı için oluşturabiliriz. Bu örnekte islemler_sablon
isimli tablomuzun bir kopyası islemler_2014 adıyla oluşturuluyor. Böylece 2014
yılı için işlem kayıtlarının depolanacağı bir tablo elde etmiş oluruz.
SELECT *
INTO islemler_2014
FROM islemler_sablon |
- Belli kritere göre seçilen kayıtları yeni bir
tabloya kopyalama: Tablomuzda bulunan kayıtları istediğimiz bir
kritere göre seçerek yeni 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 yeni bir tabloya aktarılıyor.
SELECT ad_soyad
INTO istanbul_personelleri
FROM personel
WHERE sehir='istanbul' |
|