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:
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.
➤ Adedi 20 ile 30 arasında olan kitapları listelemek istersek:
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:
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.
➤ İ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:
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.
➤ CityId değeri 6, 34 ve 42 olan şehirleri listelemek istersek:
“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.
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:
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.
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.
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:
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.
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… 😊