Data Manipulation Language(DML)

Data Manipulation Language – Veri İşleme Dili

Herkese merhaba,

Bu yazımda DML(Data Manipulation Language) komutlarını anlatmaya çalışacağım.

Veri tabanımızı bir önceki yazımda oluşturmuştuk. Henüz inceleme fırsatınız olmadıysa buradan inceleyebilirsiniz.

Data Manipulation Language/Veri İşleme Dili kısaca DML SELECT, INSERT, UPDATE ve DELETE komutlarını içerir. Şimdi tek tek hepsini inceleyelim. Bu yazıda kullanacağımız veri tabanı aşağıdaki gibidir:

Resim 1: Kullanılacak veri tabanı şeması

1)SELECT

Veri tabanı tablolarımızı belli şartlara göre listelememizi sağlar. Temel kullanımı aşağıdaki gibidir:

SELECT column_1, column_2, ...

FROM table_name

WHERE conditions;

Tablodaki bütün kolonları listelemek istersek “*” simgesini kullanırız.

Resim 2: Tüm kayıtları listeleyen select sorgusu

➤ Adedi 20 ile 30 arasında olan kitapları listelemek istersek:

Resim 3: Between operatörü kullanımı

Sorgumuzda kullandığımız “as” ifadesi (alias) ile tablolarımıza/kolonlarımıza takma isimler verebiliyoruz. “as” ifadesini kullanmadan yada köşeli parantez (“[ ]”) ile de takma isimler verebiliyoruz.

➤ ‘K’ harfi ile başlayan illerimizi listelemek istersek:

Resim 4: LIKE operatörü kullanımı

LIKE operatörü ile hangi harf ile başladığını, hangi harf ile bittiğini yada hangi harfleri içerdiğini anlatan sorgular yazabiliriz. Daha detaylı olarak aşağıdaki tabloyu inceleyebilirsiniz.

Resim 5: LIKE operatörü detaylı kullanımı

➤ İl adı “M” harfi ile başlayan veya içinde “ny” harfleri yan yana geçen ve CountryId değeri 180 olan kayıtları listelemek istersek:

Resim 6: AND ve OR operatörü birlikte kullanılması

AND operatörü tüm koşullar doğru olduğunda doğru, diğer durumlarda yanlıştır. OR operatörü koşullardan hepsi yanlış olduğunda yanlış, diğer durumlarda doğrudur. Aşağıdaki tablodan detaylı bir şekilde inceleyebilirsiniz.

Resim 7: AND ve OR operatörleri doğruluk tablosu

➤ CityId değeri 6, 34 ve 42 olan şehirleri listelemek istersek:

Resim 8: IN operatörü kullanımı

“IN” operatörü ile WHERE koşul ifadesinde belirttiğimiz kolon değeri ile birden fazla değer döndürebiliriz. Aynı örneği “OR” operatörü ile de yapabiliriz.

➤ Türkiye’deki il ve ilçe sayılarını bulalım. Bunun için klasik il tablosundaki kayıtları saymak yerine ilçe tablosundaki CityId kolonlarının benzersiz değerlerini alırsak il sayısına ulaşmış oluruz. İlçe sayısını ilçe tablosundaki kayıtları sayarak bulabiliriz.

Resim 9: COUNT ve DISTINCT kullanımı

DISTINCT komutu bir kolondaki farklı kayıtları(benzersiz) listelemek için kullanılır. COUNT komutu ile komut içinde belirttiğimiz tablo kolonunu sayabiliriz.

➤ Son olarak Countries(Ülkeler) tablosundan ülke adı ‘Türkiye’ olan kaydımızı bulmak istersek:

Resim 10: TOP, ORDER BY komutu

Toplam kaç adet kayıt listeleyeceğimizi belirtmek için “TOP” ifadesini kullanırız.

ORDER BY komutunu sıralama yapmak için kullanırız. Varsayılan olarak küçükten büyüğe sıralama (artan) yapılır ve ASC (ascending) yazarak istediğimiz kolonu küçükten büyüğe sıralamış oluruz. Büyükten küçüğe (azalan) sıralama yapmak istersek DESC(descending) ifadesini kullanırız.

2)INSERT

Veri tabanında tabloya yeni bir kayıt eklemek için “INSERT” komutunu kullanırız. Temel kullanımı aşağıdaki gibidir.

INSERT INTO table_name(column_1, column_2, ..) VALUES(value_1, value_2,...)

Örnek olarak adres ve müşteriler tablomuza kayıt ekleyelim.

Resim 11: INSERT komutu kullanımı

Kayıt ekleme işleminde müşteriler tablosunda Id, CreatedDate ve Status kolonlarına değer vermedik. Bunun sebebi Id kolonun Identity olmasıdır. Identity kolonlar otomatik olarak her kayıt eklendiğinde artar. Örnek olarak IDENTITY(1, 1) yazarsak 1′ den başlar ve 1′ er er artar. CreatedDate kolonu tablo oluşturulurken varsayılan değer olarak GETDATE() verilmiştir. Yani kayıt eklenirken biz ayrıca CreatedDate kolonuna değer vermezsek otomatik olarak kayıt eklediğimiz tarih ve saat eklenir. SQL Server’ da kullandığımız diğer tarih fonksiyonlarını buradan inceleyebilirsiniz.

Status kolonu da aynı şekilde bit olarak ayarlandı ve default değeri 1 olarak verildi.

Resim 12: INSERT komutu kullanımı

3)UPDATE

Tablodaki kayıtları güncellemek için “UPDATE” komutunu kullanırız. Temel olarak koşul kullanmadığımızda tablodaki bütün kayıtlar güncellenir. Önce güncellemek istediğimiz kaydı listeleyip daha sonra UPDATE komutu yazarsak yanlışlıkla tüm tabloyu güncellemenin önüne geçebiliriz. Temel kullanımı aşağıdaki gibidir.

UPDATE table_name SET column_1=value_1, column_2=value_2, ...

WHERE conditions;

Örnek olarak Countries tablosundaki Country_Name alanı “Turkey” olan kaydı “Türkiye” olarak güncellemek istersek:

Resim 13: UPDATE komutu kullanımı

4)DELETE

Tablodaki kayıtları silmek için “DELETE” komutunu kullanırız. Koşul vermediğimiz takdirde tablodaki tüm kayıtlar silinir. Temel kullanımı aşağıdaki gibidir:

DELETE FROM table_name

WHERE conditions;

Tabloda delete komutunu çalıştırdığımızda otomatik artan kolon değeri son kaldığı yerden itibaren devam eder. Bir önceki yazımda Truncate komutu ile arasındaki farkı anlatmıştım. Şimdi örnek olarak kategori adında “market” geçen kayıtları silelim.

Resim 14: DELETE komutu kullanımı

Bu yazımda Data Manipulation Language/Veri İşleme Dili(DML) komutlarından detaylı bir şekilde bahsetmeye çalıştım. Umarım faydalı olur. Bir sonraki yazıda görüşmek üzere.

Sağlıcakla kalın… 😊

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.