Temel SQL Komutları (#1)

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Çağrı Ali Ceylan tarafından yazılmıştır.

[TR] Temel SQL Komutları (#1)​


Merhaba, bu yazımda sizlere temel SQL komutlarının yazımlarını gösterip, örneklerle birlikte açıklayacağım. Kısaca Veri Tabanı ve SQL kavramlarını açıklayıp, konuya girmek istiyorum. Başlayalım.

Veri Tabanı Nedir?​


Veri tabanı, birbiriyle ilişki halinde olan birden fazla verinin saklandığı yapıya verilen addır. Aklımıza gelebilecek teknolojiyle alakalı hemen her yerde veri tabanları karşımıza çıkmaktadır. Örneğin; bir e-ticaret mağazasından sepetimize eklediğimiz ürünler, biz uygulamayı veya sekmeyi kapatsak bile bir sonraki girişimizde hala sepetimizdedir. Başka bir örnek verecek olursak; sinemada istediğimiz bir film için bilet almamız gerektiğinde, gişedeki personel bize boş ve dolu koltukları gösterir. Genelde boş koltuklar yeşil, dolu koltuklar kırmızı renkte olur. Burada da dolu koltuk verilerinin tutulduğunu görebiliyoruz.

SQL Nedir?​


SQL ( Structured Query Language – Yapılandırılmış Sorgu Dili ) veri tabanındaki verilerin yönetimi için tasarlanmış bir yapısal sorgulama dilidir. Herhangi bir programlama dili değildir. SQL üzerinde yazılan ifadeler kod değil sorgu olarak adlandırılmaktadır. Ayrıca, SQL komutlarında büyük küçük harf duyarlılığı yoktur. Komutları açıklarken tekrar değineceğim.

SQL Komutları​


SQL komutları 4 ana gruba ayrılır, bu yazımda DML’den bahsedeceğim.

DML ( Data Manipulation Language – Veri İşleme Dili )​


DML komutları; istediğimiz bir tabloya veri eklemek, halihazırda var olan verileri silmek / güncelleme yapmak veya görüntülemek istediğimiz veriyi / verileri listelemeye yarayan SQL komutlarıdır. 4 adet DML komutu vardır. Bunları şu şekilde sıralayabiliriz;

  • Select
  • Insert
  • Update
  • Delete

Şimdi bu komutların nasıl yazıldığına, hangisinin ne anlama geldiğine bakalım.

Select Komutu​


Select; seç, listele anlamlarına gelmektedir. Mevcut veri tabanımızdaki verileri listelemek için bu komutu kullanırız. Yukarda da bahsettiğim gibi SQL komutlarında büyük küçük harf duyarlılığı yoktur. Yani SELECT ifadesini; SeLECT, Select, sELECET, sElEcT vb. şeklinde yazabiliriz. Bu konuda herhangi bir hata ile karşılaşmayız. Fakat sorgunun tamamını düşünürsek uymamız gereken kurallar vardır. Select komutunun yazım kuralına bakalım.

Select Sütun_Adi From Tablo_Adi WHERE … (şart ifadesi)

Bu sorguyla birlikte, seçtiğimiz tablodaki bir sütunu listelemiş olduk. From komutu İngilizce’de –den, -dan anlamına gelmektedir. Bizde burada “bu tablodan” demiş olduk. Burada where ifadesini kullanmak zorunlu değil. Where ifadesine birazdan detaylıca bakacağız.

Eğer bir tablodaki bütün sütunları listelemek istiyorsak, “ * “ sembolünü kullanırız.

Select * from Tablo_Adi

Şeklinde.

Hemen bir örnek yapalım;

Diyelim ki “Filmler” adında bir tablom var. Ben “Filmler” tablosundaki bütün sütunları görmek istiyorum. Yazacağım sorgu şu şekilde olmalı;

Select * From Filmler

selectfrom.png


Gördüğünüz gibi Filmler tablosundaki bütün sütunları görmüş olduk. Peki sadece FilmAdi sütununu görmek istiyorsak ne yapacağız? Önceki sorgumuzda “*” olan yere bu sefer görmek istediğimiz sütunun adını, yani “FilmAdi” yazacağız.

Select FilmAdi From Filmler

selectfilmadi.png

Where ile Şart Sorgusu​


Select komutu ile istediğimiz bir tablodan istediğimiz bir sütundaki verileri listeleyebilmiştik. Peki ya bir sütundaki bütün verileri değil de, istediğimiz verileri listelemek istiyorsak ne yapacağız? İşte burada ortaya Where ifadesi çıkıyor.

Select SütunAdi / * From TabloAdi WHERE SütunAdi = değer

Yukardaki Film tablosu örneğinden gidelim. Diyelim ki sadece süresi 2.5 saat olan Filmleri görmek istiyorum. Yazacağımız sorgu şu şekilde olmalı;

Select * From Filmler WHERE Süre = 2.5

wheresorgu.png


Gördüğünüz gibi Süresi 3.5 Saat olan IronMan filmi karşımıza çıkmadı.

Eğer Süresi 2.5 saat olan filmlerin bütün verilerini değil de, sadece adlarını görmek isteseydik şu sorguyu yazmamız gerekirdi;

Select FilmAdi From Filmler WHERE Süre = 2.5

where2.png


Film isimlerinin yazılı olduğu sütun adımız “FilmAdi” idi. Sadece FilmAdi Sütununun ve şartı sağlayan verilerin listelenmesini istedik.

Insert Komutu​


Insert; sokmak, eklemek anlamlarına gelmektedir. Bu komut ile istediğimiz tabloya yeni veri eklemesi yapabiliriz. Insert komutunun yazım kuralına bakalım.

Insert into Tablo_Adi (sütun1,sütun2,…) values (değer1,değer2,…)

Fark ettiyseniz, SELECT komutunda tablo seçmek için from kelimesini sorgumuza dahil etmiştik. Bu sorguda neden from kullanmamamız gerektiğini, sorguya bakınca anlayabiliriz. Eğer from kullansaydık, “bu tablodan ekle” tarzında bir anlam ortaya çıkacaktı. Ama biz verilerimizi bir tablodan değil, kendi ellerimizle gireceğiz. Bu yüzden, from yerine “içine” anlamına gelen “into” ifadesini kullanırız. Böylelikle sorgumuz, “şu tabloya ekle” anlamı kazanacaktır. Sonrada verilerin hangi sütunlara eklenmesini istiyorsak, tablonun o sütunlarını parantez içerisinde yazmamız gerek. Values yani değerler kısmından sonraki paranteze de, kendi verilerimizi girmemiz gerekiyor. Ancak sırayla yazmak önemli, değer1’e yazdığımız veri sütun1’e işlenecek. Önemli gördüğüm noktalardan biri de, Insert ve İnsert kelimelerinin aynı çıktıyı vermemesi. Evet, SQL’de büyük küçük harf duyarlılığı yoktur ama I ve İ farklı harflerdir. ( İ,ı ) ile yazılışlarda sorgu hata verir. Doğru yazılış; küçük i veya büyük I iledir.

Hemen bir örnek yapalım.

Filmler tablosuna yeni bir film eklemek istiyorum. Ancak bu filmi sadece Film Adını yazarak ekleyemem. Süreyi de yazmam lazım. Film ID’si veritabanı tarafından otomatik olarak verildiği için Film ID kısmına bir değer vermeme gerek yok. Şöyle bir sorgu yazmamız lazım;

insert into Filmler (FilmAdi,Süre) values ('Hulk',2.5)

Hulk kelimesini tek tırnak içinde yazmamızın sebebi, değerin bir metin olduğunu belirtmek. Sayısal değerler için tek tırnak (‘) işareti kullanmamıza gerek yoktur.

mesaj.png


SQL Management Studio’dan işlemimizin başarıyla gerçekleştiğine, 1 satırın yazdığımız sorgudan etkilendiğine dair mesajımızı aldık. Biz yine de tablomuzu kontrol edelim.

sElEct * fROM Filmler

basarili.png

Update Komutu​


Update; güncellemek, güncelleştirmek anlamlarına gelmektedir. Veri tabanımızdaki bir verinin değerini değiştirmek istediğimiz zaman bu komutu kullanırız. Update komutunun yazım kuralına bakalım.

Update TabloAdi set SütunAdi = deger1, SütunAdi2 = deger2,… where … (şart ifadesi)

Set, ayarlamak anlamına gelmektedir. Böylelikle istediğimiz bir tablodaki istediğimiz sütundaki verileri güncelleyebiliyoruz. Ancak where ifadesini kullanmazsak, güncelleme sütundaki bütün veriler için yapılacaktır. O yüzden şart belirtmek önemlidir.

Örneğimize bakalım;

Filmler tablosundaki IronMan filminin süresini 5.5 saat olarak değiştirmek istiyorum. Sorgumun şart ifadesinde, IronMan filmini kastettiğim bir ifadenin olması gerek. Mesela FilmID = 3 , FilmAdi = IronMan veya Süre = 3.5 diyebilirim. Dikkat etmemiz gereken nokta şu, yazdığımız koşul ifadesinin sadece istediğimiz veriyi karşılaması. Mesela başka bir filmin de süresi 3.5 olsaydı, şart ifadesine Süre = 3.5 yazamayacaktım. Çünkü elimde iki tane 3.5 süreli film var. Örneklerle pekiştirelim.

Update Filmler set Süre = 5.5 where Süre = 3.5

Update Filmler set Süre = 5.5 where FilmAdi = 'IronMan'

Update Filmler set Süre = 5.5 where FilmID = 3

sorguu2.png


Gördüğünüz gibi, bu 3 sorgu aynı şeyi ifade ediyor. Fakat şart kısmına (WHERE’den sonra) Süre = 2.5 yazsaydık bu durumdan 3 satır etkilenecekti.

Update Filmler set Süre = 4.5 where Süre = 2.5

333i-300x60.png


Evet, yazdığımız sorgu sonucunda 3 satır etkilendi. Bu satırlar, süresi 2.5 olan filmlere ait satırlar. Onların süresini 4.5 olarak güncelledik.

sorguuu.png


Yukarıda da bahsettiğim gibi, eğer UPDATE sorgumuzda WHERE ifadesini (şart) kullanmasaydık, sorgumuzdan sütundaki bütün veriler etkilenecekti. Deneyip görelim;

Update Filmler set Süre = 6.5

sartsiz.png




Gördüğünüz gibi; herhangi bir şart belirtmediğimiz için, Süre sütunundaki bütün verilere aynı ( 6.5 ) değeri verdi.

Delete Komutu​


Delete; Silmek anlamına gelmektedir. Veri tabanımızdaki herhangi bir veriyi silmek isteyebiliriz. Bu gibi durumlarda bu komutu kullanmamız gerekiyor. DELETE komutunun önemli noktası, sorguda mutlaka where ifadesinin bulunması. Eğer bulunmazsa, tüm verilerimiz elimizden gidebilir. Tıpkı UPDATE komutundaki belirttiğimiz sütunun tüm verilerinin değiştiği gibi. Bu yüzden DELETE ifadesi geçen sorgularda mutlaka şart belirtilmelidir.

Örneğin;

Delete From Filmler where Süre = 6.5

Böylece, süre kutucuğunda 6.5 yazan bütün satırları silmiş olduk. Zaten bütün satırlarımızda 6.5 yazıyordu. Bu durumda elimizde veri kalmadı
🙂


bos.png


Böylelikle, Data Manipulation Language komutlarını bitirmiş olduk. Bir sonraki yazımda DDL’den (Data Definition Language – Veri Kullanma Dili) bahsedeceğim. Okuduğunuz için teşekkür ederim. Hoşça kalın.
 
Moderatör tarafında düzenlendi:
Geri
Üst