PostgreSQL DML Komutları
Herkese merhaba,
Bugünkü yazımda sizlere PostgreSQL’ de Data Manipulation Language(Veri İşleme Dili) komutlarını anlatmaya çalışacağım.
Hazırsanız başlayalım.
1. SELECT
Verileri listelemek istediğimizde “SELECT” komutunu kullanırız.
Temel kullanımı aşağıdaki gibidir:
SELECT column1, column2, …
FROM table_name
WHERE conditions…
ORDER BY column_name ASC | DESC
LIMIT number
OFFSET number;
Tabloda ki tüm kolonları listelemek istersek “*” simgesini kullanırız.
Gerçek projelerde bütün kolonları listelemeyiz. Bütün kolonları listelemek sorgu süresini artırır. İstediğimiz kolonları getirmek için aşağıdaki gibi sorgumuzu değiştiririz.
Kolonları birleştirip tek bir ifade haline getirebiliriz. Kolonlar üzerinde matematiksel işlemler yapabiliriz.
Kolonlara takma isim vermek istediğimizde “AS” ifadesini kullanabiliriz yada kullanmadan takma ismini yazabiliriz. “ “ tırnak işareti içinde yazarsak büyük harfler geçerli olur. Aksi takdirde küçük harf ile yazılır
✔ Pipe işareti(|) ile string birleştirme yapabiliriz.
✔ Ek Bilgi: String birleştirme işlemini “CONCAT” fonksiyonu ile de yapabiliriz.
✔ Ek Bilgi: SQL Server’da string birleştirme yaparken “+” operatörü de kullanılabilir ancak PostgreSQL’de “+” operatörü sadece sayısal verileri toplamak için kullanılır.
WHERE
Belli bir koşula göre listeleme yapmak istediğimizde “WHERE” ifadesini kullanırız.
➡ Id bilgisi 1 olan pozisyonları listelemek istersek;
➡ Id bilgisi 75'e eşit veya 75'ten büyük olan illeri listelemek istersek;
Örnekleri çoğaltabiliriz. Aşağıdaki tabloda karşılaştırma operatörleri yer almaktadır.
LIKE
Bir sütunda belirtilen koşula göre arama yapmak istediğimizde “LIKE” ifadesini kullanırız.
➡ İl adı ‘K’ ile başlayan ve ‘A’ ile biten bütün kayıtları listelemek istersek;
Aynı sorguyu başka bir şekilde yazmak istersek;
Aşağıdaki tabloda LIKE operatörünün detaylı kullanımı gösterilmiştir.
ORDER BY
Kayıtları belli bir kritere göre sıralamak istediğimizde “ORDER BY” ifadesini kullanırız.
Temel olarak artan(ascending) ve azalan(descending) olmak üzere iki şekilde sıralama işlemi yapabiliriz.
Varsayılan olarak artan sırada(ASC) sıralama işlemi yapar.
Kolon adlarını yazmadan kolon sıra numaralarını da yazabiliriz.
Yukarıda ki örnekte birinci kolona göre(id) artan şekilde sıralama işlemi yapılmıştır. Varsayılan olarak birincil anahtara(primary key) göre artan şekilde sıralama yaptığı için “ASC” ifadesini kullanmamıza gerek yoktur.
Aynı sorguyu son yayınlama tarih bilgilerine göre azalan şekilde sıralamak istersek;
DISTINCT
Verileri tekilleştirmek istediğimizde “DISTINCT” ifadesini kullanırız.
➡ İş ilanları tablomuzda hangi illerden iş ilanları olduğu bilgisini öğrenmek istersek;
➡ Minimum maaş 10000'den büyük ve maksimum maaş 30000'den küçük olan kayıtları listelemek istersek;
Sorgularımızda “and”, “or”, “not” mantıksal operatörleri kullanabiliriz. Mantıksal operatörlerin doğruluk değerleri aşağıdaki tabloda verilmiştir.
BETWEEN
Başlangıç ve bitiş değerlerinin dahil olduğu kayıtları sorgulamak istediğimizde büyük eşit ve küçük eşit kullanmadan kullanabiliriz.
Yukarıda “AND” mantıksal operatörü ile yaptığımız örneği “BETWEEN” ifadesi ile yapmak istersek sorgumuz aşağıdaki gibi olacaktır.
➡ İl id bilgisi 34 veya 42 olan tüm kayıtları listelemek istersek;
Aynı sorguyu “IN” ifadesi kullanarak da yapabiliriz.
IN
Birden fazla kayıt içeren değerleri sorgulamak istediğimizde “IN” ifadesini kullanabiliriz.
LIMIT
Listeleme işlemi yaparken kaç adet kayıt listeleyeceğimizi kısıtlamak istediğimizde “LIMIT” ifadesini kullanırız.
✔ SQL Server’da kullandığımız TOP ifadesinin kullanımına benzetebiliriz.
OFFSET
Limit ifadesinden sonra kullanılır. Listeleme işlemine kaçıncı kayıttan sonra başlayacağımızı ifade eder.
➡ Maksimum maaş kolonu “NULL” olan kayıtları listelemek istersek;
➡ Maksimum maaş kolonu “NULL” olmayan kayıtları listelemek istersek;
2. INSERT
Tabloya yeni kayıt eklemek istediğimizde “INSERT” komutunu kullanırız.
Temel kullanımı aşağıdaki gibidir:
INSERT INTO table_name(column1, column2,…)
VALUES(values1, values2, …);
Genel olarak projelerde bazı kolonlar otomatik olarak ayarlanır. Örnek olarak bir şirket iş ilanı eklemek isterse employer_id bilgisi otomatik olarak ayarlanır. Boş geçilemeyen kolonlara ise veri tipine uygun değerler girilmelidir.
❕ Kayıt eklerken dikkate etmemiz gereken noktalardan birincisi otomatik artan kolonlara değer vermemize gerek yoktur.
❕ Tabloda ki kolonları hangi sıra ile yazdıysak değerleri de aynı sırada yazmalıyız. Aksi takdirde yanlış değeri yanlış kolona kaydetmeye çalışırız ve veri tipi uyuşmazlığından dolayı hatalarla karşılaşırız.
Aynı anda birden fazla kayıt eklemek istersek aşağıdaki gibi kodumuzu düzenleyebiliriz.
3. UPDATE
Kayıtları güncellemek istediğimizde “UPDATE” komutunu kullanırız.
Temel kullanımı aşağıdaki gibidir:
UPDATE table_name SET column1=value1
WHERE conditions;
✔ İlk olarak güncellenecek kayıt bulunursa tüm kayıtların “UPDATE” işleminden etkilenmesinin önüne geçmiş oluruz.
➡ Son başvuru tarihi 22 Şubat 2022 olan iş ilanlarını 22 Mart 2022 olarak güncellemek istersek;
Güncelleme işlemimizi yapalım.
4.DELETE
Tabloda var olan kayıtları silmek istediğimizde “DELETE” komutunu kullanırız. Temel kullanımı aşağıdaki gibidir:
DELETE FROM table_name
WHERE conditions;
➡ Maksimum maaşı “NULL” olan kayıtları silmek istersek;
İlk olarak silmek istediğimiz kayıtları buluruz daha sonra DELETE komutunu kullanarak sorgumuzu yazarız.
✔ DELETE komutunda birincil anahtar(primary key) değeri kaldığı yerden devam eder.
Zaman ayırıp okuduğunuz için teşekkür ederim. Umarım faydalı olmuştur. Bir sonraki yazıda görüşmek üzere…
Sağlıcakla kalın.😊