SQL Server DML Komutları
Merhabalar,
Günümüzde artık sıkça duyulan, gün geçtikçe önemi artan veri kavramı ve bu verilerin tutulduğu veritabanının yönetimi orta-büyük ölçekli firmaların temel ihtiyacı haline gelmiştir. SQL Server, sahip olunan bu verileri depolamak, yönetmek, anlamlandırmak ve performanslı sonuçlar elde etmek için en sık kullanılan veritabanı yönetim sistemlerinden birisidir. Bugün sizlere SQL üzerinde işlemler yapmamızı sağlayan DDL,DML,DCL komutlarından DML’i anlatacağım.
Açılımı ” Data Manipulation Language ” olan ve ” Veri İşleme Dili ” olarak çevrilen DML, tablolarımızda yer alan veriler üzerinde işlemler yapmamızı sağlar.
Bu komutlar ;
- SELECT Komutu
- INSERT Komutu
- UPDATE Komutu
- DELETE Komutu
olarak karşımıza çıkmaktadır.
1.SELECT Komutu
Select ; bir veya birden fazla tablo üzerinden veriler çekmemizi sağlayan komuttur. Tabloda yer alan verileri listelediği için herhangi bir değişikliğe sebep olmaz.
Genel kullanımı aşağıdaki şekildedir.
[php] SELECT Kolon_Adi , Kolon_Adi_1 , Kolon_Adi_2 FROM Tablo_Adi [/php]
SELECT : Verileri listeleme işlemi yapar.
Kolon_Adi : Tablodan hangi sütunları çekmek istiyorsak buraya sıralayabiliriz.
Tablo_Adi : Hangi tablodan verilerin gelmesini istiyorsak bu alana o tabloyu girmeliyiz.
Tablodaki bütün sütunları çekmek istediğimizde ,
[php] SELECT * FROM Tablo_adi [/php]
ile tüm kolonları listeyebiliriz.
Örnek verecek olursak eğer;
sorgusu ile CUSTOMER tablosundan tüm bilgileri listeleyebiliriz.
Örnek : CUSTOMER tablosundan sadece adı, soyadı ve yaş bilgilerini alalım.
[php] SELECT CUSTOMERNAME,AGE FROM CUSTOMER [/php]
Bazı durumlarda aramaları ya da verilerimizi özel koşullar altında arama ihtiyacı duyabiliriz. Sipariş tablosundan tüm verileri çekip arasında istediğimiz koşullara uyanları (Toplamı 1000 liradan fazla olanlar ya da son 3 gün gibi) bir kenara not almak oldukça uzun ve zahmetli olacaktır. İşte bu tarz durumlarda SQL’de SELECT ile birlikte sıkça kullanılan birtakım ifadeler var. Bu ifadeler, koşullar altında arama yapmamıza, sonuçları kümeler haline getirmeye ya da sıralama yapmamıza yardımcı olurlar.
Kısaca bunları açıklayıp birkaç örnek yapalım.
WHERE : Sorgularımızda gelecek sonuçlar için filtreleme yapmak istediğimizde kullanırız.
Örnek : Doğum tarihi 6 Mayıs 1994 olanları getirelim ;
Örnek : Yaşı 25 ile 80 arasında olan kadınların ID,CUSTOMERNAME,CITY ,GENDER ve AGE bilgilerini getirelim.
[php] SELECT ID, CUSTOMERNAME, CITY, GENDER, AGE FROM CUSTOMER WHERE (AGE >= 25 and AGE <= 80) AND GENDER= ’KADIN’ [/php]
Bu sorgu da yukarıdaki sonuçlar ile aynı verileri listeleyecektir.
GROUP BY : Bir ya da birden fazla tabloda arama yaparken, veriler arasında gruplama ihtiyacı doğabilmektedir. Bu gibi durumlarda GROUP BY kullanarak bu isteğimize çözüm üretebiliriz.
Örneğin ; Aynı doğum gününe sahip kaç kişinin olduğu , sporculardan basketbol oynayanların sayısı, kadın ve erkek sayısı gibi gruplama işlemi yapabiliriz.
Örnek : Customer tablosu üzerinde bulunan verileri ‘ GENDER ‘ sütununa göre gruplayalım ve bu gruplarda kaç kişi olduğunu görelim.
ORDER BY : Çektiğimiz verileri sıralama işlemlerinde kullanırız. Örnek vermek gerekirse yaş sıralaması, isimlerin baş harflerine göre sıralanması, sipariş tarihine göre sıralaması yapabiliriz.
ASC ile küçükten büyüğe ya da alfabetik sıraya göre, DESC ile büyükten küçüğe ya da alfabetik sıranın tersine göre sıralama yapılır.
NOT : Order by ile sıralama yaparken default olarak ASC kabul edilir ve ona göre sıralama yapar. Eğer bu şekilde bir sıralama yapılması isteniyorsa ASC yazılmasına gerek yoktur.
2.INSERT Komutu
Tablolara yeni veri girişi yapmak için kullanılır.
İstediğimiz bir ya da birden fazla kolona değer girip, diğer kolonlara dair bilgi girmek istemiyorsak aşağıdaki örnek bu kullanım için uygun olacaktır.
Örnek : Yazarlar tablomuza sadece Ad bilgisi girerek bir kayıt ekleyelim.
Eğer tablodaki tüm kolonlara değer girmek istiyorsak tüm kolon adlarını tek tek yazmaya gerek kalmadan ,
[php] INSERT INTO UYELER VALUES (deger_1,deger_2,deger_3) [/php]
şeklinde sorgumuzu yazabiliriz.
3.UPDATE Komutu
Tablolarımıza önceden girilmiş olan verilerimizi güncellemek için kullanılır.
NOT : WHERE koşulu eklenmediği sürece ilgili update tüm tabloyu etkileyecektir.
Genel kullanımı ;
[php] UPDATE tablo_adi SET kolon_adi=guncellenecek_deger WHERE koşullar [/php]
Örnek olarak öncelikle yaşı 76’dan büyük olanları listeleyip ardından bu kişilerin yaşlarını 80 olarak güncelleyelim.
Bu kayıtların yaşını güncelleyip tekrar listelemek istediğimizde aşağıdaki gibi bir sorgu ihtiyacımızı karşılayacaktır.
Başka bir örnek daha verecek olursak eğer ;
Customer tablosunda 20 yaşından küçük kadınların listesini görelim.
Şimdi bu kişilerin yaşlarını 2 artırıp , şehir bilgilerini de büyük harf olacak şekilde güncelleyelim.
4.DELETE Komutu
Tablolardan veri silmek için kullanılır. WHERE ile koşul belirtilemezse tablodaki tüm verileri siler.
Genel kullanımı;
[php]DELETE FROM Tablo_adi WHERE koşullar [/php]
Bir örnek ile nasıl uygulandığını görelim.
CUSTOMER tablosunda 44 yaşındaki erkekleri listeleyelim.
Şimdi ise bu kişileri silelim ve yeniden sorgumuzu execute edelim.
Görüldüğü üzere verdiğimiz koşula uyan kişileri sildik ve herhangi bir kayıt gelmedi.
Başka bir örnek üzerinden ilerleyelim.
Yazdığımız bu sorgu ile sadece ID’si 758 olan satır geldiği için tek satır silinecektir.
Evet, bu yazımda DML komutlarını örnekler üzerinden görmüş olduk. Birçok detaylı kullanımı olan DML komutlarını genel anlamıyla anlatmaya çalıştım.
Bir sonraki yazıda DDL komutları ile devam ediyor olacağım.
Umarım faydalı olmuştur.
Görüşmek üzere 😊
**Bu yazıda Ömer Çolakoğlu hocamın ETRADE veri tabanı kullanılarak örnekler hazırlanmıştır.