SQL Ders 4: Veri Girme/Silme/Güncelleme BPR205 Veritabanı
Yönetim. Sis. II
Bu Derste Öğrenecekleriniz:
1. Tabloya Yeni Kayıt Girme
2. Kayıt Silme
3. Kayıt Güncelleme
CREATE TABLE ÖĞRENCİLER
(
NUMARA INT PRIMARY KEY ,
ADI VARCHAR(25) NOT NULL,
SOYADI VARCHAR(25) NOT NULL,
TELEFON CHAR(16) NULL ,
CİNSİYET VARCHAR(5) CHECK(CİNSİYET IN('BAY', 'BAYAN')) NOT NULL,
ŞEHİR VARCHAR(20) DEFAULT 'BARTIN' NULL
)
Tabloya Veri (Kayıt) Girme
Yukarıdaki gibi tanımlanmış tablomuzu düşünelim. Görüldüğü gibi tabloda NUMARA, ADI, SOYADI,
TELEFON, CİNSİYET ve ŞEHİR alanları var. Bunlardan bazıları zorunlu, bazıları değil. Bu tabloya veri
girişi yapmak için en kolay yol aşağıdaki gibi olacaktır.
INSERT INTO ÖĞRENCİLER VALUES(100, 'ALİ', 'KARA', '0378-227-27-27', 'BAY', 'BARTIN')
Yukarıdaki kod ile öğrenciler tablosunun tüm alanlarına sırasını bozmadan verilen bilgileri gireceğiz
demektir (Alan belirtmeksizin tüm alanlara sırasıyla veri girişi yapılıyor). Boş bırakılabilir alanlara veri girişi
yapmak istemezsek bunun için iki seçeneğimiz var.
1- Boş bırakılabilir alanlara NULL yazarak veri girişi yapmak
2- Veri gireceğimiz alanları belirterek veri girişi yapmak
Şimdi birinci durum için örnek bir kod yazalım.
INSERT INTO ÖĞRENCİLER VALUES(101, 'VELİ', 'SARI', NULL, 'BAY', NULL)
Dikkat edilirse telefon ve şehir alanlarına veri yerine NULL yazılmış. Yani bu alanlar veri tabanında boş
bırakılacak, dolayısıyla yer tutmayacaklar. Şehir alanı için aslında bir varsayılan değer var. Eğer varsayılan
değer olsun istiyorsam şehir bilgisi yerine DEFAULT yazarız.
INSERT INTO ÖĞRENCİLER VALUES(102, 'CEM', 'KIRMIZI', NULL, 'BAY', DEFAULT)
Burada telefon boş bırakılmış, şehir ise veri tabanında tanımladığımız varsayılan şehir olacaktır.
İkinci durum için örnek yazacak olursak:
INSERT INTO ÖĞRENCİLER(NUMARA, ADI, SOYADI, CİNSİYET) VALUES(104, 'AYŞE', 'YEŞİL', 'BAYAN')
Burada dikkat edilirse öğrenciler tablosuna direkt olarak veri girişi yapılacak alanlar belirtilmiş ve her alanın
sırasına göre verisi girilmiştir. Böylece boş bırakılabilecek alanlar seçilmemiş, Dolayısıyla verileri de
girilmemiş oluyor. Burada bilinmesi gereken alanlar hangi sırada yazıldıysa veriler de o sırada girilmelidir.
INSERT INTO ÖĞRENCİLER(ADI, SOYADI, CİNSİYET, NUMARA) VALUES('OYA', 'MAVİ', 'BAYAN', 105)
Bu ikinci durum için bilinmesi gereken bir diğer husus ise; varsayılan değeri olan şehir alanı için veri
girilmediği için veri tabanında varsayılan değer girilmiş olacaktır.
Bartın MYO – Öğr. Gör. Bayram AKGÜL 1
SQL Ders 4: Veri Girme/Silme/Güncelleme BPR205 Veritabanı
Yönetim. Sis. II
Bu kayıtlar girildikten sonra veri
tabanını durumu yandaki gibi
olacaktır.
Not: Normalde boş bırakılamayan alanlara veri girilmek zorunluluğu vardır, dolayısıyla alan
belirterek veri girişi yapılan durumlarda NOT NULL olan alanların yazılması gerekiyor. Fakat
IDENTITY olan alanlar yazılmak zorunda değildir. Çünkü zaten onlar otomatik olarak üretilen
sayılardan oluşuyor. Fakat istenirse yinede yazılabilirler.
Tablodan Veri (Kayıt) Silme
Tabladan tüm kayıtları silmek için aşağıdaki kod kullanılır.
DELETE FROM ÖĞRENCİLER
Bu kod şartsız koşulsuz öğrenciler tablosundaki tüm kayıtları silecektir. Bir koşula bağlı olarak kayıt silmek
istersek aşağıdaki gibi kod yazmamız gerekecektir.
DELETE FROM ÖĞRENCİLER WHERE NUMARA = 100
Burada numarası 100 olan öğrenci tablodan silinecektir. Birden fazla koşul aranınca koşullar arasına AND,
OR ifadeleri konulabilir. Bunlara birleşik koşul ifadeleri deniliyor. Koşul ifadeleri daha sonra ayrıntılı olarak
işlenecektir.
DELETE FROM ÖĞRENCİLER WHERE NUMARA = 100 OR ADI = 'ALİ'
Burada numarası 100 veya adı ALİ olan öğrenciler silinecektir.
DELETE FROM ÖĞRENCİLER WHERE ADI = 'ALİ' AND SOYADI = 'KARA'
Burada da adı ALİ ve soyadı KARA olan öğrenciler silinecektir.
Tablodan Veri (Kayıt) Güncelleme
En basit güncelleme için aşağıdaki kod yazılabilir. Bu kod koşulsuz olarak tablodaki tüm isimleri CEMİL olarak
değiştirecektir.
UPDATE ÖĞRENCİLER SET ADI = 'CEMİL'
Genelde güncellemeler bir koşula bağlı olarak yapılır. Koşul ifadeleri WHERE anahtar sözcüğü ile beraber
kullanılır.
UPDATE ÖĞRENCİLER SET ADI = 'CEMİL' WHERE NUMARA = 100
Burada numarası 100 olan öğrencinin adı CEMİL olarak değiştirilecektir.
UPDATE ÖĞRENCİLER SET ADI = 'SALİH', SOYADI = 'SİYAH' WHERE NUMARA = 100
Burada da bir defada birden fazla alan bir defada güncellenmiştir.
Bartın MYO – Öğr. Gör. Bayram AKGÜL 2
SQL Ders 4: Veri Girme/Silme/Güncelleme BPR205 Veritabanı
Yönetim. Sis. II
Kayıt silmedeki gibi güncellemede de birleşik koşul ifadeleri kullanılabilir.
UPDATE ÖĞRENCİLER SET ADI = 'SALİH', SOYADI = 'SİYAH' WHERE NUMARA = 100 OR NUMARA > 105
Burada numarası 100 olan veya 105’ten büyük olan öğrencilerin adları SALİH soyadları da SİYAH olarak
güncellenecektir.
Tablodaki boş bırakılabilir bir alanı daha önce doldurmuş fakat sonra boş bırakmak istersek aşağıdaki kodu
yazabiliriz.
UPDATE ÖĞRENCİLER SET TELEFON = NULL WHERE NUMARA = 105
Numarası 105 olan öğrencinin telefonu tablodan silinecektir.
Varsayılan değeri olan bir alanı varsayılan değere getirmek için de aşağıdaki kod kullanılır.
UPDATE ÖĞRENCİLER SET ŞEHİR = DEFAULT WHERE NUMARA = 105
Numarası 105 olan öğrencinin şehri varsayılan olarak değiştirilecektir.
NOT: kendisine referans edilmiş bir kayıt güncellendiği veya silindiği zaman eğer referans
edilen alanlar CASCADE edilmiş ise onlarda otomatik olarak değiştirilir veya silinir.
Sonuç olarak;
Tabloya kayıt girilirken:
INSERT [INTO] tablo_adı(alanlar_listesi) VALUES(veriler)
veya
INSERT [INTO] tablo_adı VALUES(veriler)
Tablodan kayıt silinirken:
DELETE [FROM] tablo_adı *WHERE (koşul)+
Kayıt güncellenirken:
UPDATE tablo_adı SET alan = değer, alan2 = değer2, *,…n+ *WHERE (koşul)+
Bartın MYO – Öğr. Gör. Bayram AKGÜL 3