PostgreSQL DML Komutları

Merve KÜÇÜKDOĞRU
Machine Learning Turkiye
5 min readJan 30, 2022

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.

Tablo 1: Karşılaştırma operatörleri

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.

Tablo 2: LIKE operatörü detaylı kullanımı

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.

Tablo 3: Mantıksal operatörler(NOT, AND, OR)

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.😊

--

--