Kurs
PostgreSQL, en yaygın kabul gören açık kaynaklı RDBMS’lerden biridir. PostgreSQL’in varsayılan kurulumuyla birlikte, PostgreSQL’in terminal benzeri arayüzü olan bir psql istemi gelir. Öte yandan pgAdmin, PostgreSQL’de veritabanlarıyla çalışmak için grafiksel bir arayüz sunar. psql ile SQL sorguları çalıştırmanın yanı sıra, bu öğreticide öğreneceğiniz ek işlevler de elde edersiniz.
Önce bir PostgreSQL sunucusunda bulunan veritabanlarının listesini almayı öğrenecek, ardından yavaş yavaş daha orta düzey konulara ilerleyeceksiniz. Haydi başlayalım.
Not: Bu öğretici, SQL’e (RDBMS’lerle etkileşim için genel bir dil) ve PostgreSQL’e zaten aşina olduğunuzu varsayar. Temel bilgileri tazelemek isterseniz şu kaynaklara göz atabilirsiniz:
Her Şeyden Önce
Bu öğreticiyi takip etmek için önceden iyi yapılandırılmış bir veritabanına sahip olmak isteyebilirsiniz. Bu yedek dosyasını kullanıp PostgreSQL sunucunuza geri yükleyebilirsiniz. Bunu nasıl yapacağınızı öğrenmek isterseniz bu makaleyi okuyabilirsiniz.
psql’in ne olduğunu merak ediyorsanız; PostgreSQL’in resmi sitesindeki şu alıntı durumu gayet güzel özetliyor:
psql, PostgreSQL için terminal tabanlı bir ön uçtur. Sorguları etkileşimli olarak yazmanıza, PostgreSQL’e göndermenize ve sorgu sonuçlarını görmenize olanak tanır. Alternatif olarak, girdi bir dosyadan veya komut satırı argümanlarından da gelebilir. Buna ek olarak, psql; komut dosyaları yazmayı ve çok çeşitli görevleri otomatikleştirmeyi kolaylaştıran bir dizi meta-komut ve kabuk benzeri özellik sunar.
Belirtildiği gibi, bu öğreticide en yararlı on psql komutunu öğreneceksiniz. Devam etmeden önce PostgreSQL’in kurulu olduğundan emin olun (tercihen sürüm >= 9.4). PostgreSQL’i kurmanıza bu makale yardımcı olacaktır.
Bir sonraki adım şu isteme ulaşmaktır:

Windows’ta, Başlat Menüsü Arama Çubuğu’na psql yazmanız yeterlidir; oraya kolayca gidebilirsiniz. Buna, size psql istemini veren psql kabuğu denir. Gördüğünüz gibi, istem şu anda varsayılan postgres veritabanına ayarlanmış durumda. Bakalım bu yerel PostgreSQL sunucusunda başka veritabanları var mı.
1. Mevcut Veritabanlarını Listeleme
Tüm mevcut veritabanlarının listesini almak için \l komutunu kullanabilirsiniz.

Gördüğünüz gibi şu veritabanlarına sahibim:
- datacamp_tutorials
- postgres
Diğer girişleri yok sayabilirsiniz. Şimdi, geçerli veritabanındaki mevcut tabloların listesine bakalım.
2. Geçerli Veritabanındaki Mevcut Tabloları Listeleme
\dt bunu sizin için yapar -
![]()
Ne yazık ki postgres veritabanında oluşturulmuş herhangi bir tablo yok (veritabanı yönetimi literatüründe tablolara ilişki/relasyon denir). Başka bir veritabanına geçiş yapıp orada tablo olup olmadığına bakalım.
3. Başka Bir Veritabanına Geçiş
Bunun için sözdizimi: \c <database_name>. Diyelim ki datacamp_tutorials adlı bir veritabanına geçmek istiyorsunuz; bunu şu şekilde yapabilirsiniz -
`\c datacamp_tutorials`

Şimdi, \dt komutuyla tablo olup olmadığına bakalım -

Gördüğünüz gibi datacamp_tutorials veritabanında şu dört tablo var:
- countries
- route_table
- station_code
- train_table
Diyelim ki belirli bir tablonun yapısal ayrıntılarını görmek istiyorsunuz. Bu işleme genellikle tabloyu betimleme denir. Şimdi bunun nasıl yapılacağına bakalım.
4. Belirli Bir Tabloyu Betimleme
Genel sözdizimi \d <table_name> şeklindedir. Diyelim ki datacamp_tutorials veritabanındasınız ve countries adlı tabloyu betimlemek istiyorsunuz. Bu durumda komut \d countries olur -

Gördüğünüz gibi, \d countries size sütun adları, veri türleri, sütun değiştiricileri ve benzeri pek çok değerli bilgi verir. Mevcut PostgreSQL motorunuzun sürümünü de bilmek isteyebilirsiniz. Belki dokümantasyon amacıyla. Bunu nasıl yapabileceğinize bakalım.
5. PostgreSQL Sürümünü Öğrenme
SELECT version(); bunu yapmanızı sağlar -

Diyelim ki psql kabuğunda son çalıştırdığınız komutu aralarda unuttunuz ve bu önemli bir komuttu. Sorun değil! Bunu kolayca geri getirebilirsiniz.
6. Önceden Çalıştırılan Komutu Görme
\g bunun için vardır -

Gördüğünüz gibi \g önceki komutu otomatik olarak yürüttü. Daha da merak edip, çalıştırdığınız PostgreSQL motoru için mevcut tüm psql komutlarının listesini görmek isteyebilirsiniz. Şimdi buna bakalım.
7. Tüm Mevcut Komutları Listeleme
Tüm mevcut psql komutlarının listesini \? ile alabilirsiniz -

SELECT, ALTER, DROP gibi farklı veritabanı deyimlerinin sözdizimlerini bilmekle de ilgilenebilirsiniz. Bunu doğrudan psql isteminde yapabilirsiniz.
8. PostgreSQL Deyimlerinin Sözdizimlerini Öğrenme
Diyelim ki DROP deyimleri hakkında daha fazla bilgi edinmek istiyorsunuz. \h DROP TABLE bu konuda size yardımcı olabilir -

Diyelim ki sorguların yürütme sürelerini analiz etmek istiyorsunuz. Bunu psql kabuğundan nasıl yapabileceğimize bakalım.
9. Sorguların Yürütme Sürelerini Öğrenme
Bunu yapmak için \timing komutunu vermeniz gerekir. Diyelim ki aşağıdaki sorgunun yürütme süresini analiz etmek istiyorsunuz -
select * from train_table limit 10;
Önce \timing komutunu verin -
![]()
Zamanlama seçeneği etkinleştirildikten sonra sorgunuzu çalıştırabilirsiniz -

Gördüğünüz gibi sorgunun yürütülmesi 0.786 ms sürdü. Yürütme süresi makineden makineye değişebilir. Şimdi, son psql komutunu göreceksiniz; bu komut, daha önce çalıştırdığınız komutu/sorguyu bir metin düzenleyicide açar.
10. psql + metin düzenleyici
\e komutunu çalıştırırsanız, son çalıştırılan komutu/sorguyu bir metin düzenleyicide açar; ayrıca düzenlemenize ve yeniden çalıştırmanıza olanak tanır.

Gördüğünüz gibi, e komutu daha önce çalıştırılan sorguyla birlikte Not Defteri metin düzenleyicisini açıyor.
Sonuç
Bu öğreticide, günlük veritabanı işlemlerinizde kullanabileceğiniz on kullanışlı psql komutunu öğrendiniz. SQL hakkında daha fazla bilgi edinmek isterseniz, aşağıdaki DataCamp kurslarını deneyebilirsiniz:
