PostgreSQL'in Temelleri ve Püf Noktaları

PostgreSQL'in temellerine ve işe yarar püf noktalarına bir bakış atarak örnekler ile PostgreSQL'i derinlemesine inceliyoruz...
15 Nisan 2025 Salı - 18:20 (1 Hafta önce)

PostgreSQL (veya Postgres), açık kaynaklı, güçlü ve çok kullanılır bir ilişkisel veritabanı yönetim sistemidir. Özellikle veri bütünlüğüne verdiği önem, zengin sorgu dili ve gelişmiş özellikleri sayesinde hem bireysel geliştiriciler hem de kurumsal projeler için yaygın olarak tercih edilir. PostgreSQL'in temellerine ve işe yarar püf noktalarına bir bakış atmak için aşağıda anlattıklarımı okumaya devam edin.

1. PostgreSQL Kurulumu

Linux

sudo apt update
sudo apt install postgresql postgresql-contrib

macOS (Homebrew ile)

brew install postgresql

Windows

Kurulumdan sonra psql komut satırı aracıyla veritabanına erişim sağlanabilir:

sudo -u postgres psql

2. Temel Komutlar

Veritabanı Oluşturma

CREATE DATABASE deneme;

Veritabanına Bağlanma

\c deneme

Tablo Oluşturma

CREATE TABLE kullanicilar (
  id SERIAL PRIMARY KEY,
  ad VARCHAR(100),
  email VARCHAR(150) UNIQUE NOT NULL
);

Veri Ekleme

INSERT INTO kullanicilar (ad, email)
VALUES ('Ali', '[email protected]');

Verileri Listeleme

SELECT * FROM kullanicilar;

3. PostgreSQL Püf Noktaları

3.1 SERIAL ve BIGSERIAL

Otomatik artan sayılar için PostgreSQL'de SERIAL tipi kullanılır:

id SERIAL PRIMARY KEY

Bu alanlar PostgreSQL tarafından özel bir sequence (sıra) ile yönetilir.

3.2 RETURNING Kullanımı

Ekleme veya güncelleme işlemlerinden sonra ilgili satır bilgilerini almak için kullanılır:

INSERT INTO kullanicilar (ad, email)
VALUES ('Veli', '[email protected]')
RETURNING *;

3.3 JSON ve JSONB Desteği

PostgreSQL, JSON veri tipini destekler ve sorgulanabilir hale getirir:

CREATE TABLE loglar (
  id SERIAL PRIMARY KEY,
  detay JSONB
);

INSERT INTO loglar (detay)
VALUES ('{"ip":"127.0.0.1", "durum":"başarılı"}');

SELECT * FROM loglar WHERE detay->>'durum' = 'başarılı';

3.4 UPSERT (Güncelle ya da Ekle)

Aynı benzersiz (unique) veri zaten varsa günceller, yoksa ekler:

INSERT INTO kullanicilar (ad, email)
VALUES ('Can', '[email protected]')
ON CONFLICT (email) DO UPDATE
SET ad = EXCLUDED.ad;

3.5 WITH (CTE - Common Table Expression)

Alt sorguları daha okunabilir hale getirmek için kullanılır:

WITH aktif_kullanicilar AS (
  SELECT * FROM kullanicilar WHERE email IS NOT NULL
)
SELECT * FROM aktif_kullanicilar WHERE ad ILIKE 'a%';

4. PostgreSQL Öğrenme Stratejisi

1. Veri Tabanı Modelleme

  • Tablolar arası ilişkiler

  • Normalizasyon (1NF, 2NF, 3NF)

  • Foreign key, constraint yapıları

2. CRUD Pratiği

  • SELECT, INSERT, UPDATE, DELETE

  • Çoklu sorgular, filtreleme, sıralama

3. Gelişmiş SQL Kullanımı

  • JOIN, GROUP BY, HAVING, DISTINCT, LIMIT

  • Fonksiyonlar (string, tarih, aggregate)

4. Performans ve Optimizasyon

  • Index kullanımı

  • EXPLAIN ANALYZE ile sorgu planını görme

5. Gerçek Projelerde Kullanım

  • Laravel, Django, Node.js gibi framework'lerle entegrasyon

  • Migration yapısı, yedekleme ve geri yükleme

PostgreSQL, yalnızca SQL komutlarıyla veri işlemenin ötesine geçerek, gelişmiş veri tipleri (JSON, ARRAY), ileri seviye sorgular ve çoklu fonksiyonlar ile geliştiricilere esnek ve güvenilir bir platform sunar. Bu makale ile PostgreSQL öğrenmeye giriş yapabilir, devamında daha karmaşık sorgular ve uygulama bağlantılarına geçerek bilginizi ilerletebilirsiniz.


  • Postgresql
  • Veri Tabanı



Yorumlar
Sende Yorumunu Ekle
Kullanıcı
0 karakter