INSERT INTO komutu SQL 'de bir tabloya yeni bir veri, değer girmemizi sağlayan komuttur. INSERT INTO kullanarak istediğiniz her veriyi tablolaların içine aktarabilirsiniz. INSERT INTO komutunda hem sütun sayısı hem de değerler birbiriyle eşleşmelidir. Sütun belirtilmemişse, sütunun varsayılan değeri kullanılır. INSERT tarafından sağlanan değerler, geçerli tüm verilere uymalıdır.
INSERT INTO kullanarak tabloya veri eklemenin iki yolu vardır
-1- INSTERT INTO tablo_adi VALUES(deger1, deger2, 'deger3', deger4....) bu şekilde ekleme yaptığımızda sütün sırasına göre değerler atamamız gerecektir. Bu yöntemle sütun atlayamazsınız tüm sütunlara değer girmeniz gerekmektedir. Eğer siz deger2'yi boş bırakarak direkt deger3 için bir veri atarsanız o veri deger2'nin içine aktarılır.
-2- INSERT INTO tablo_adi (sütun1,sütun2,sütun3,sütun5) VALUES (deger1, deger2, deger3, 'deger4') Bu kullanımında ise dilediğimiz sütuna dilediğimiz değeri atayabiliriz. (Girdiğimiz sütunların ve atamak istediğimiz değerlerin sırası aynı olmalıdır.)
Sorgu Cümlecikleri
Ekleme Sorgusu - INSERT- Örnekleri
Aşağıda verdiğimiz 3 farklı tabloyu referans alarak örneklerimizi anlatacağız.
YAZARLAR | KİTAPLAR | YAYİNEVLERİ |
YzKod | KKod | YKod |
YzAd | KAd | YAd |
YzSoyad | KIsbn | YEposta |
YzTel | YKod | YWebadr |
YzEposta | YzKod | YTel |
Dyil | SayfaSayisi | KurulusYili |
USE kitap
kitap veritabanı seçilerek bu veritabanındaki tablolar üzerinde işlem yapılacağı belirtilir.
INSERT INTO yazarlar VALUES(10, 'Mirac', 'Ozhan', '212-121-4545', 'asd@outlook.com', 2002)
Yukarda anlattığımız ilk örneği somut bir tabloyla tekrardan yapmış olduk. Sizinde görmüş olduğunuz gibi atadığım değerleri tablodaki sıraya göre atamış oldum. Eğer bu sırayı korumasaydım örneğin mail adresini başa yazsaydım Mirac Ozhan adındaki yazarın yazar kodu yerine mail adresi girilmiş olacaktı.
INSERT INTO yazarlar(yzad, yzsoyad, dyil) VALUES('Mirac', 'Ozhan', '2002')
Bu cümlemizde ise sadece yazarlar tablosuna ad, soyad ve doğum yılı bilgisi eklemiş olduk. (diğer değerleri girmedğimiz için örneğin yazar kodunu listelersek null değeri alırız.)
INTO yazılmadan da kullanılabilir örneğin;
INSERT yazarlar(yzad, yzsoyadi) VALUES('Mirac', 'Ozhan')
INSERT yazarlar VALUES('10, 'Mirac', 'Ozhan', '212-121-4545', 'asd@outlook.com', 2002)
gibi
Insert sorgusunda tablo isminden sonra parantez işareti içerisinde ekleme yapılacak alanlar yazılır. Eğer alanlar yazılmazsa tüm alanlara ekleme yapılacağı varsayılır . Bu durumda VALUES den sonra parantez içinde virgül ile ayrılan ifadelerin sayısı alan sayısına eşit olmalıdır. Aşağıdaki yazım hatalıdır
INSERT yazarlar VALUES('fatih','topcu') alanlar belirtilmemiş values olarak sadece 2 değer girilmiş
INSERT INTO yazarlar (SELECT KKod,KAd,KIsbn,YKod,YzKod,SayfaSayisi from Kitaplar)
Kitaplar tablosundaki tüm kayıtları Yazarlar tablosuna ekler. Values kelimesi kullanılmadığına dikkat edin. Bir tablodaki tüm kayıtları bir tabloya eklemek için kullanılır.
Sizde Örnek Olarak Kitaplar Tablosuna Kendi vereceğini Değerleri Giren Bir SQL Cümlesi Yazıp Pekiştirebilirsiniz.