logo
eng-flag

PostgreSQL Notları ve İpuçları

İçindekiler

  1. Temel Komutlar
  2. Veritabanı İşlemleri
  3. Tablo İşlemleri
  4. Veri Manipülasyonu
  5. Veri Sorgulama
  6. Join'ler
  7. Toplamalar
  8. İndeksleme
  9. İşlemler
  10. Görünümler
  11. Fonksiyonlar ve Prosedürler
  12. Tetikleyiciler
  13. Kullanıcı Yönetimi
  14. Yedekleme ve Geri Yükleme
  15. Performans Ayarları

Temel Komutlar

PostgreSQL'e Bağlan

psql -U kullanıcı_adı -d veritabanı_adı

Tüm veritabanlarını listele

l

Mevcut veritabanındaki tüm tabloları listele

dt

Bir tabloyu tanımla

d tablo_adı

psql'den çık

q

Veritabanı İşlemleri

Yeni bir veritabanı oluştur

CREATE DATABASE veritabani_adı;

Bir veritabanını sil

DROP DATABASE veritabani_adı;

Bir veritabanının adını değiştir

ALTER DATABASE eski_ad RENAME TO yeni_ad;

Tablo İşlemleri

Yeni bir tablo oluştur

CREATE TABLE tablo_adı (
    sütun1 veri_tipi1 kısıtlamalar,
    sütun2 veri_tipi2 kısıtlamalar,
    ...
);

Örnek:

CREATE TABLE calisanlar (
    id SERIAL PRIMARY KEY,
    ad VARCHAR(50) NOT NULL,
    soyad VARCHAR(50) NOT NULL,
    eposta VARCHAR(100) UNIQUE,
    işe_giriş_tarihi DATE,
    maas NUMERIC(10, 2)
);

Tabloyu değiştir

-- Bir sütun ekle
ALTER TABLE tablo_adı ADD COLUMN sütun_adı veri_tipi;

-- Bir sütunu sil
ALTER TABLE tablo_adı DROP COLUMN sütun_adı;

-- Bir sütunun adını değiştir
ALTER TABLE tablo_adı RENAME COLUMN eski_ad TO yeni_ad;

-- Sütun veri tipini değiştir
ALTER TABLE tablo_adı ALTER COLUMN sütun_adı TYPE yeni_veri_tipi;

Bir tabloyu sil

DROP TABLE tablo_adı;

Veri Manipülasyonu

Veri ekle

INSERT INTO tablo_adı (sütun1, sütun2, ...)
VALUES (değer1, değer2, ...);

Örnek:

INSERT INTO calisanlar (ad, soyad, eposta, işe_giriş_tarihi, maas)
VALUES ('John', 'Doe', 'john.doe@example.com', '2023-01-15', 50000.00);

Veriyi güncelle

UPDATE tablo_adı
SET sütun1 = değer1, sütun2 = değer2, ...
WHERE koşul;

Örnek:

UPDATE calisanlar
SET maas = 55000.00
WHERE id = 1;

Veriyi sil

DELETE FROM tablo_adı
WHERE koşul;

Örnek:

DELETE FROM calisanlar
WHERE id = 1;

Veri Sorgulama

Temel SELECT

SELECT sütun1, sütun2, ...
FROM tablo_adı
WHERE koşul;

Örnek:

SELECT ad, soyad, maas
FROM calisanlar
WHERE maas > 50000;

ORDER BY

SELECT sütun1, sütun2, ...
FROM tablo_adı
ORDER BY sütun1 [ASC|DESC], sütun2 [ASC|DESC], ...;

Örnek:

SELECT ad, soyad, maas
FROM calisanlar
ORDER BY maas DESC, soyad ASC;

LIMIT ve OFFSET

SELECT sütun1, sütun2, ...
FROM tablo_adı
LIMIT satır_sayısı OFFSET başlangıç_satırı;

Örnek:

SELECT *
FROM calisanlar
LIMIT 10 OFFSET 20;

DISTINCT

SELECT DISTINCT sütun1, sütun2, ...
FROM tablo_adı;

Örnek:

SELECT DISTINCT departman
FROM calisanlar;

Join'ler

INNER JOIN

SELECT sütun1, sütun2, ...
FROM tablo1
INNER JOIN tablo2 ON tablo1.sütun_adı = tablo2.sütun_adı;

Örnek:

SELECT calisanlar.ad, calisanlar.soyad, departmanlar.ad
FROM calisanlar
INNER JOIN departmanlar ON calisanlar.departman_id = departmanlar.id;

LEFT JOIN

SELECT sütun1, sütun2, ...
FROM tablo1
LEFT JOIN tablo2 ON tablo1.sütun_adı = tablo2.sütun_adı;

RIGHT JOIN

SELECT sütun1, sütun2, ...
FROM tablo1
RIGHT JOIN tablo2 ON tablo1.sütun_adı = tablo2.sütun_adı;

FULL OUTER JOIN

SELECT sütun1, sütun2, ...
FROM tablo1
FULL OUTER JOIN tablo2 ON tablo1.sütun_adı = tablo2.sütun_adı;

Toplamalar

COUNT

SELECT COUNT(sütun_adı)
FROM tablo_adı
WHERE koşul;

Örnek:

SELECT COUNT(*) as toplam_calisan
FROM calisanlar;

SUM

SELECT SUM(sütun_adı)
FROM tablo_adı
WHERE koşul;

Örnek:

SELECT SUM(maas) as toplam_maas
FROM calisanlar;

AVG

SELECT AVG(sütun_adı)
FROM tablo_adı
WHERE koşul;

MIN ve MAX

SELECT MIN(sütun_adı), MAX(sütun_adı)
FROM tablo_adı
WHERE koşul;

GROUP BY

SELECT sütun1, toplama_fonksiyonu(sütun2)
FROM tablo_adı
GROUP BY sütun1;

Örnek:

SELECT departman, AVG(maas) as ortalama_maas
FROM calisanlar
GROUP BY departman;

HAVING

SELECT sütun1, toplama_fonksiyonu(sütun2)
FROM tablo_adı
GROUP BY sütun1
HAVING koşul;

Örnek:

SELECT departman, AVG(maas) as ortalama_maas
FROM calisanlar
GROUP BY departman
HAVING AVG(maas) > 50000;

İndeksleme

İndeks oluştur

CREATE INDEX indeks_adı
ON tablo_adı (sütun1, sütun2, ...);

Örnek:

CREATE INDEX idx_soyad
ON calisanlar (soyad);

Benzersiz indeks oluştur

CREATE UNIQUE INDEX indeks_adı
ON tablo_adı (sütun1, sütun2, ...);

İndeksi sil

DROP INDEX indeks_adı;

İşlemler

İşlem başlat

BEGIN;

İşlemi onayla

COMMIT;

İşlemi geri al

ROLLBACK;

Görünümler

Görünüm oluştur

CREATE VIEW görünüm_adı AS
SELECT sütun1, sütun2, ...
FROM tablo_adı
WHERE koşul;

Örnek:

CREATE VIEW calisan_gorunumu AS
SELECT ad, soyad, maas
FROM calisanlar
WHERE maas > 50000;

Görünümü sil

DROP VIEW görünüm_adı;

Fonksiyonlar ve Prosedürler

Fonksiyon oluştur

CREATE FUNCTION fonksiyon_adı(parametreler) RETURNS veri_tipi AS $$
BEGIN
    -- Fonksiyonun içeriği
END;
$$ LANGUAGE plpgsql;

Fonksiyon çağır

SELECT fonksiyon_adı(parametreler);

Prosedür oluştur

CREATE PROCEDURE prosedur_adı(parametreler)
LANGUAGE plpgsql
AS $$
BEGIN
    -- Prosedürün içeriği
END;
$$;

Prosedürü çağır

CALL prosedur_adı(parametreler);

Tetikleyiciler

Tetikleyici oluştur

CREATE TRIGGER tetikleyici_adı
AFTER INSERT ON tablo_adı
FOR EACH ROW
EXECUTE FUNCTION fonksiyon_adı();

Tetikleyiciyi sil

DROP TRIGGER tetikleyici_adı ON tablo_adı;

Kullanıcı Yönetimi

Kullanıcı oluştur

CREATE USER kullanıcı_adı WITH PASSWORD 'şifre';

Kullanıcıyı yetkilendirme

GRANT yetki ON tablo_adı TO kullanıcı_adı;

Kullanıcıyı sil

DROP USER kullanıcı_adı;

Yedekleme ve Geri Yükleme

Yedekleme

pg_dump veritabani_adı > yedekleme_dosyası.sql

Geri yükleme

psql veritabani_adı < yedekleme_dosyası.sql

Performans Ayarları

Analiz ve İstatistik

ANALYZE tablo_adı;

Tabloyu yeniden düzenle

VACUUM FULL;

2024 © Tüm hakları saklıdır - buraxta.com