Veritabanına kayıt eklemek için Insert into komutu kullanılır.
Tsql de DML (Data Manupulation Language) ifadelerinden biridir.
Insert Into Komutunun Genel Kullanımı
Insert into tablo_adi[(alan isimleri)] values(degerler)
Not:Köşeli parantez yazılmasa da olur manasındadır.
Bazı Kurallar ve Örnekler
Örnekler yukarıdaki kütüphane veritabanına göre yazılacaktır.
1) İçine veri girilecek alanlar virgül ile ayrılarak yazılır.
Örn: Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;
1 2 3 |
Insert into yazar(yazarad,yazarsoyad) values ('ali','dursun') |
2) Tüm alanları yazmaya gerek yoktur.
Örn: Adı Ayşe Bozkır olan bir öğrenciyi öğrenci tablosuna ekleyiniz.
Insert into ogrenci(ograd,ogrsoyad) values (‘ayşe’,’bozkır’)
Not: Veritabanında görüldüğü üzere öğrenci tablosunda başka alanlarda var fakat sadece adı soyadı bilgisi verilen öğrenci tabloya ekleniyor. Bu durumda diğer alanlar veritabanına null olarak kaydedilir. Bu kodun çalıştırılabilmesi için diğer bir husus alan boş geçilebilmesi için tablo oluşturulurken alanların boş geçilebilir tanımlanması gerekir. Boş geçilebilir izni tanımlanmayan alanlara veri girilmez ise hata ile karşılaşılır.
3) Alanları hangi sıra ile yazılırsa değerlerde aynı sıra ile yazılmalıdır.
Örn: Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;
1 2 3 |
Insert into yazar(yazarsoyad,yazarad) values ('dursun','ali') |
Not Özellikle yukarıdaki örnek ile aynı örneği kullandık. Görüldüğü üzere alanların sırası değiştiğinde değerlerin sırası da değişti.
4) Alanları veritabanındaki sıraya göre yazılması mecburi değildir istenilen sıra ile yazılabilir.
5) Otomatik artan sayı özelliğindeki alanlar alan isimlerine yazılmamalıdır.(mssql için)
Not Ms sql veritabanında birincil anahtar alanlar yazılmazken mysqlde istenilirse yazılabilir Fakat yazdığınız değerin bir önemi yoktur.
6) Tüm alanlara veri girilecekse alanlar yazılmasa da olur. Veritabanında tablonun yapısında alanlar hangi sıra ile tanımlı ise veriler aynı sıra ile girilir. Veri girmek istemediğimiz alanlar için null ifadesi yazılır.
Örn: Adı Ali Dursun olan yazarı yazarlar tablosuna ekleyelim;
Mssql–>
1 2 3 |
Insert into yazar values ('ali','dursun') |
Mysql–>
1 2 3 |
Insert into yazar values (Null,'ali','dursun') |
Not: Yazarno alanı otomatik artan sayı alanı olduğu için bu alan için mssql de bilgi girilmemiştir ama mysql de değer girilmelidir. Girilen değerin önemi yoktur. Her hangi bir sayı yazılabilir veya Null değeri yazılmalıdır.
7) Bir tabloya aynı anda birden fazla değer de eklenebilir.
Örn: Adı Yaşar Kemal ve Mahmut Demir olan iki yazarı yazar tablosuna tek sorgu ile ekleyiniz.
1 2 3 |
Insert into yazar(yazarad,yazarsoyad) values ('Yaşar','Kemal'),('Mahmut','Demir') |
Not: Görüldüğü üzere values ifadesinden sonra parantez ile yazılan kısım virgül ile ayrılarak tekrar ediliyor. Bu şekilde istenildiği kadar değer girilebilir.
8) Bir tabloya başka bir tablodan elde ettiğimiz verileri de ekleyebiliriz.
Örn: 10C sınıfı öğrencilerinin adını soyadını yazarlar tablosuna ekleyelim
1 2 3 |
Insert into yazar(yazarad,yazarsoyad) Select ograd,ogrsoyad from ogrenci where sinif = '10C' |
Not: Burada dikkat edilecek durum values yazılmamasıdır. eklenecek alan sayısı ile sorguda listelenen alan sayısı aynı olmalıdır. Aynı sıradaki alanların veri türleri de aynı olmalıdır.
[…] SQL Insert Into Komutu – SQL Kayıt Ekleme […]