PostgreSQL Komut Rehberi

1. PostgreSQL Sürümünü Görüntüleme
SELECT version();

📌PostgreSQL sürümünü gösterir.

2. PostgreSQL’e Bağlanma
psql -U postgres

📌PostgreSQL’e bağlanır.

3. Belirli Veritabanına Bağlanma
psql -d mydb -U postgres

📌Belirtilen veritabanına bağlanır.

4. Tüm Veritabanlarını Listeleme
\l

📌Tüm veritabanlarını listeler.

5. Yeni Veritabanı Oluşturma
CREATE DATABASE mydb;

📌Yeni veritabanı oluşturur.

6. Veritabanını Silme
DROP DATABASE mydb;

📌Veritabanını siler.

7. Veritabanına Geçiş
\c mydb

📌Veritabanına geçiş yapar.

8. Tablo Listeleme
\dt

📌Veritabanındaki tabloları listeler.

9. Tablo Oluşturma
CREATE TABLE users (id SERIAL, name VARCHAR(50));

📌Yeni tablo oluşturur.

10. Tablo Silme
DROP TABLE users;

📌Tabloyu siler.

11. Tablo Yapısını Görüntüleme
\d users

📌Tablo sütun bilgilerini listeler.

12. Tabloya Veri Ekleme
INSERT INTO users (name) VALUES ('Ali');

📌Tabloya veri ekler.

13. Verileri Listeleme
SELECT * FROM users;

📌Tüm satırları listeler.

14. Şartlı Veri Listeleme
SELECT * FROM users WHERE name = 'Ali';

📌Koşullu sorgu yapar.

15. Veri Güncelleme
UPDATE users SET name='Ayşe' WHERE id=1;

📌Veriyi günceller.

16. Veri Silme
DELETE FROM users WHERE id=1;

📌Veriyi siler.

17. Satır Sayısı
SELECT COUNT(*) FROM users;

📌Satır sayısını verir.

18. Kullanıcı Oluşturma
CREATE USER myuser WITH PASSWORD 'mypassword';

📌Yeni kullanıcı oluşturur.

19. Kullanıcı Silme
DROP USER myuser;

📌Kullanıcıyı siler.

20. Kullanıcı Yetki Verme
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

📌Yetki verir.

21. Kullanıcı Yetkilerini Görme
\du

📌Tüm kullanıcı ve rollerin yetkilerini gösterir.

22. Şema Oluşturma
CREATE SCHEMA myschema;

📌Yeni şema oluşturur.

23. Şema Silme
DROP SCHEMA myschema CASCADE;

📌Şemayı siler.

24. Tabloya Primary Key Ekleme
ALTER TABLE users ADD PRIMARY KEY (id);

📌Primary key ekler.

25. Tabloya Unique Ekleme
ALTER TABLE users ADD UNIQUE (name);

📌Unique constraint ekler.

26. Sütun Ekleme
ALTER TABLE users ADD email VARCHAR(100);

📌Sütun ekler.

27. Sütun Silme
ALTER TABLE users DROP COLUMN email;

📌Sütun siler.

28. Sütun Adını Değiştirme
ALTER TABLE users RENAME COLUMN name TO full_name;

📌Sütun adını değiştirir.

29. Sütun Tipini Değiştirme
ALTER TABLE users ALTER COLUMN name TYPE TEXT;

📌Sütun tipini değiştirir.

30. Index Oluşturma
CREATE INDEX idx_name ON users(name);

📌Index ekler.

31. Index Silme
DROP INDEX idx_name;

📌Index siler.

32. Sequence Oluşturma
CREATE SEQUENCE myseq;

📌Sequence oluşturur.

33. Sequence Silme
DROP SEQUENCE myseq;

📌Sequence siler.

34. Sequence Değerini Görme
SELECT nextval('myseq');

📌Sequence değerini gösterir.

35. Serial Sütun Kullanma
CREATE TABLE logs (id SERIAL PRIMARY KEY);

📌Otomatik artan sütun oluşturur.

36. LIMIT Kullanımı
SELECT * FROM users LIMIT 5;

📌Sonuçları sınırlar.

37. OFFSET Kullanımı
SELECT * FROM users OFFSET 3;

📌Sonuçları atlatır.

38. DISTINCT Kullanımı
SELECT DISTINCT name FROM users;

📌Tekil kayıtları listeler.

39. ORDER BY Kullanımı
SELECT * FROM users ORDER BY name;

📌Sonuçları sıralar.

40. LIKE Kullanımı
SELECT * FROM users WHERE name LIKE 'A%';

📌LIKE ile arama yapar.

41. ILIKE Kullanımı
SELECT * FROM users WHERE name ILIKE 'a%';

📌Büyük/küçük harf duyarsız arama yapar.

42. BETWEEN Kullanımı
SELECT * FROM users WHERE id BETWEEN 1 AND 5;

📌Aralık sorgusu yapar.

43. IN Kullanımı
SELECT * FROM users WHERE name IN ('Ali', 'Ayşe');

📌Birden fazla değeri filtreler.

44. IS NULL Kullanımı
SELECT * FROM users WHERE email IS NULL;

📌Null değerleri bulur.

45. COALESCE Kullanımı
SELECT COALESCE(email, 'Yok') FROM users;

📌Null yerine değer döner.

46. NOW() Fonksiyonu
SELECT NOW();

📌Mevcut tarihi verir.

47. CURRENT_DATE Kullanımı
SELECT CURRENT_DATE;

📌Bugünün tarihini verir.

48. DATE_TRUNC Kullanımı
SELECT DATE_TRUNC('month', NOW());

📌Tarihi kırpar.

49. LENGTH Kullanımı
SELECT LENGTH(name) FROM users;

📌Karakter uzunluğunu verir.

50. SUBSTRING Kullanımı
SELECT SUBSTRING(name, 1, 3) FROM users;

📌Substring döner.

51. UPPER Kullanımı
SELECT UPPER(name) FROM users;

📌Metni büyük harfe çevirir.

52. LOWER Kullanımı
SELECT LOWER(name) FROM users;

📌Metni küçük harfe çevirir.

53. REPLACE Kullanımı
SELECT REPLACE(name, 'A', 'X') FROM users;

📌Metin değiştirir.

54. ROUND Kullanımı
SELECT ROUND(3.14159, 2);

📌Ondalıklı sayıyı yuvarlar.

55. FLOOR Kullanımı
SELECT FLOOR(3.9);

📌Aşağı yuvarlar.

56. CEIL Kullanımı
SELECT CEIL(3.2);

📌Yukarı yuvarlar.

57. RANDOM Kullanımı
SELECT RANDOM();

📌Rastgele sayı üretir.

58. SUM Kullanımı
SELECT SUM(id) FROM users;

📌Toplam değer verir.

59. AVG Kullanımı
SELECT AVG(id) FROM users;

📌Ortalama hesaplar.

60. MIN Kullanımı
SELECT MIN(id) FROM users;

📌Minimum değeri verir.

61. MAX Kullanımı
SELECT MAX(id) FROM users;

📌Maksimum değeri verir.

62. GROUP BY Kullanımı
SELECT name, COUNT(*) FROM users GROUP BY name;

📌Gruplama yapar.

63. HAVING Kullanımı
SELECT name, COUNT(*) FROM users GROUP BY name HAVING COUNT(*) > 1;

📌Gruplama üzerinde filtre uygular.

64. CASE Kullanımı
SELECT name, 
CASE WHEN id=1 THEN 'Admin' ELSE 'User' END AS role
FROM users;

📌Koşullu değer döner.

65. INNER JOIN Kullanımı
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;

📌Inner join yapar.

66. LEFT JOIN Kullanımı
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;

📌Left join yapar.

67. RIGHT JOIN Kullanımı
SELECT * FROM users RIGHT JOIN orders ON users.id = orders.user_id;

📌Right join yapar.

68. FULL JOIN Kullanımı
SELECT * FROM users FULL JOIN orders ON users.id = orders.user_id;

📌Full join yapar.

69. CROSS JOIN Kullanımı
SELECT * FROM users CROSS JOIN orders;

📌Cross join yapar.

70. UNION Kullanımı
SELECT name FROM users
UNION
SELECT name FROM customers;

📌Birleşik sonuç döner.

71. UNION ALL Kullanımı
SELECT name FROM users
UNION ALL
SELECT name FROM customers;

📌Tekrarlı birleşim yapar.

72. View Oluşturma
CREATE VIEW user_view AS SELECT * FROM users;

📌View oluşturur.

73. View Silme
DROP VIEW user_view;

📌View siler.

74. Function Oluşturma
CREATE FUNCTION add_nums(a INT, b INT) RETURNS INT AS $$
BEGIN
  RETURN a + b;
END;
$$ LANGUAGE plpgsql;

📌Fonksiyon oluşturur.

75. Function Çağırma
SELECT add_nums(5, 3);

📌Fonksiyon çalıştırır.

76. Function Silme
DROP FUNCTION add_nums(INT, INT);

📌Fonksiyon siler.

77. Stored Procedure Oluşturma
CREATE PROCEDURE test_proc()
LANGUAGE SQL
AS $$
  SELECT * FROM users;
$$;

📌Procedure oluşturur.

78. Procedure Çalıştırma
CALL test_proc();

📌Procedure çalıştırır.

79. Procedure Silme
DROP PROCEDURE test_proc;

📌Procedure siler.

80. Trigger Oluşturma
CREATE TRIGGER trig
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_changes();

📌Trigger oluşturur.

81. Trigger Silme
DROP TRIGGER trig ON users;

📌Trigger siler.

82. EXPLAIN Kullanımı
EXPLAIN SELECT * FROM users;

📌Sorgu planını gösterir.

83. VACUUM Kullanımı
VACUUM;

📌Tabloyu temizler.

84. ANALYZE Kullanımı
ANALYZE users;

📌İstatistik toplar.

85. TABLESPACE Oluşturma
CREATE TABLESPACE myspace LOCATION '/data/pg';

📌Yeni tablespace oluşturur.

86. TABLESPACE Silme
DROP TABLESPACE myspace;

📌Tablespace siler.

87. pg_dump ile Backup
pg_dump mydb > mydb.sql

📌Veritabanını yedekler.

88. pg_restore ile Restore
pg_restore -d mydb mydb.dump

📌Yedeği yükler.

89. psql Komut Dosyası Çalıştırma
psql -d mydb -f script.sql

📌SQL dosyası çalıştırır.

90. Host, Port ile Bağlanma
psql -h localhost -p 5432 -U postgres -d mydb

📌Bağlantı parametrelerini belirtir.

91. Bağlı Kullanıcıyı Görme
SELECT current_user;

📌Bağlı kullanıcıyı gösterir.

92. Mevcut Database’i Görme
SELECT current_database();

📌Aktif database’i gösterir.

93. pg_stat_activity Görüntüleme
SELECT * FROM pg_stat_activity;

📌Aktif bağlantıları gösterir.

94. Bağlantıları Sonlandırma
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='mydb';

📌Bağlantıyı sonlandırır.

95. Bağlantı Limitini Ayarlama
ALTER DATABASE mydb CONNECTION LIMIT 50;

📌Bağlantı limitini ayarlar.

96. pg_catalog Kullanımı
SELECT * FROM pg_catalog.pg_tables;

📌Sistem tablolarını listeler.

97. pg_indexes Kullanımı
SELECT * FROM pg_indexes WHERE tablename = 'users';

📌Tablonun indexlerini listeler.

98. COMMENT Kullanımı
COMMENT ON TABLE users IS 'Kullanıcı tablosu';

📌Tabloya açıklama ekler.

99. COMMENT Silme
COMMENT ON TABLE users IS NULL;

📌Tablo yorumunu siler.

100. psql'den Çıkış
\q

📌psql’den çıkar.