Insert ile Kayıt Ekleme

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?

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye