PostgreSQL'in Temelleri ve Püf Noktaları
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
-
https://www.postgresql.org/download/ adresinden kurulum sihirbazı yardımıyla PostgreSQL indirilebilir.
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ı
Tepkini Göster
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle