"insert" deyimine farklı açılardan bakmak
24 Ekim 2016 Pazartesi
Bir tabloya veri eklemek için INSERT deyimi kullanılır.Temelde 2 farklı yazım şekli vardır:
1- INSERT INTO tblAdı(kolon1, kolon2) SELECT değer1, değer2
2- INSERT INTO tblAdı(kolon1, kolon2) VALUES (değer1, değer2)
En çok tercih edilen yöntem 2. sırada belirttiğim yöntemdir. INSERT sözcüğünden sonra INTO kullanmayabilirsiniz ancak kodu dışardan okuyan kişinin algısında vurgu yapılması hasebiyle, yazmakta fayda olduğunu belirtmek isterim. Bunun dışında kolon adlarını yazmaz iseniz, SQL tüm kolonlara veri girişi yapacağınızı düşünür ve değerlerinizi buna göre yazarsanız. (PK otomatik artan değeri ve bazı kolonlarda önceden tanımlanmış default değerleri -getdate() gibi - bunların dışında tutuyorum.)
Şimdi kıyıdan bir miktar daha uzaklaşıp konunun derinlerine doğru yüzelim ve SQL Server'ın bizlere sunduğu yeniliklere bakalım. SQL Server 2008 sürümüne kadar her bir satır için tekrar'dan INSERT INTO komutu yazmak gerekiyordu. Ancak 2008 sürümü ile birlikte VALUES yan cümleciği geliştirilerek bir tablo gibi davranması sağlandı. Böylece VALUES cümleciğine birden fazla satır ekleyerek kayıt işlemlerimizi rahatlıkla yapar hale geldik. Hemen bir örnek yapalım o halde:
Bir seferde 4 satır ekleyelim:
Bakınız Resim-1.
VALUES yan cümleciğinin yetenekleri oldukça fazla. VALUES ile verilen değerlere, türetilmiş tablo gibi erişilebilir.
Bakınız Resim-2.
Select Into Komutu
Bu komut daha çok tabloların kopyalarını almak için kullanılır.Yazım şekli şöyledir:
SELECT sütun_isimleri
INTO yeni_tablo_adı
FROM tablo_ismi
Bu komutla INTO'dan sonra # diyip geçici tabloda oluşturmak mümkün. Ancak yukardaki örnek yazım şeklimde DB'de bir object olarak tablonuz yaratılır.
Insert ve Select Komutlarının Birlikte Kullanımı
Kimi zaman veri eklerken bazı alanlarınız için ihtiyaç duyduğunuz veriler farklı tablolardan geliyor olabilir. Bu durumda insert ve select deyimleri birlikte kullanılır. Örnek kullanım şekline bakalım :
INSERT INTO tblDemo (Ad, Yas) VALUES ('Dilek', (select yas from yasBilgisi where id= 1))
GO ifadesi ve insert deyimi
GO kelimesi T-SQL sorgularının bitişini işaret eder. Arka arkaya çalıştırılan SQL komutları bir batch oluştururlar ve GO ifadesi ile batch ın bittiği vurgulanır. SQL Server GO komutunu, script'i servera göndermek için bir işaret olarak algılar. Bizim bu başlık altında vurgulayacağımız husus ise GO komutunun insert aşamasında kullanıcının isteğine göre birden fazla kere kayıt edilebileceği. Örnek üzerinden yapacak olursak:
Bakınız Resim-3.
Burdaki örnekten'de anlaşılabileceği gibi GO komutunun yanına yazdığımız rakam kadar sorgu, bir döngüye girer ve aynı sorgu sonucu çalışarak bir değer üretir. Bu şekilde GO sözcüğünün insert deyimi ile nasıl kullanıldığını'da görmüş olduk.
Umarım faydalı bir yazı olmuştur. Bir sonraki makalemde görüşmek üzere..