SQL'de tablolara veri eklemek için INSERT komutu yazılır. Bu komutun işleyişini aşağıdan birlikte öğrenelim.
SQL'de tablolara veri eklemek için INSERT komutu yazılır. Bu komutun işleyişini aşağıdan birlikte öğrenelim.
Sorgu Cümlecikleri
Ekleme Sorgusu - INSERT- Örnekleri
Ziyaretcidefteri veritabanı içerisindeki mesaj tablosu kayıt deseni aşağıdadır. (Örnekler için referans alınan tablo)
adi | soyadi | yas | mesaji | tarih | id (PK) |
nvarchar(30) | nvarchar(30) | tinyint | nvarchar(MAX) | smalldatetime |
USE ziyaretcidefteri
ziyaretcidefteri veritabanı seçilerek bu veritabanındaki tablolar üzerinde işlem yapılacağı belirtilir
INSERT INTO mesaj(adi,soyadi) VALUES('fatih','topcu')
Mesaj tablosundaki adi fatih soyadi topcu olan yeni bi kayıt ekler.
Acaba bu durumda yas alanına ya da mesajı alanına hangi değeri ekler. Değer eklerse eklenen değer veri bütünlüğü mekanizmalarına aykırı olurm mu? Olursa kaydın kabulü veri bütünlüğünü bozmaz mı?
INSERT INTO mesaj(adi,soyadi,tarih) VALUES('fatih','topcu','01.01.2001')
Yukarıdaki sorgudan farkı tarih alanına 01.01.2001 değerini ekler
INTO yazılmadan da kullanılabilir
INSERT mesaj(adi,soyadi) VALUES('fatih','topcu')
INSERT mesaj(adi,soyadi,tarih) VALUES('fatih','topcu','01.01.2001')
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 mesaj VALUES('fatih','topcu') alanlar belirtilmemiş values olarak sadece 2 değer girilmiş
INSERT INTO mesaj(adi,soyadi,yas) (select adi,soyadi,yas from baskabirtablo)
baskabirtablodaki tüm kayıtlaro mesaj tablosuna ekler. Values kelimesi kullanılmadığına dikkat edin. Bir tablodaki tüm kayıtları bir tabloya eklemek için kullanılır
INSERT INTO mesaj(adi,soyadi,yas) (select adi,soyadi,yas from baskabirtablo where yas>25)
yasi 25 ten büyük olan baskabirtablodaki kayıtları mesaj tablosuna ekler
insert into da neden where clauses ve order by kullanılmaz?