Kurs
Bir veritabanı, profesörler ve üniversiteler gibi gerçek hayattaki varlıkları tablolar halinde saklayarak modeller. Her tablo tek bir varlık türünden veri içerir. Bu, varlıkları yalnızca bir kez saklayarak yinelenmeyi azaltır. Örneğin, belirli bir şirkete ait ayrıntıları içeren yalnızca bir satır veriye ihtiyaç vardır. Son olarak, bir veritabanı varlıklar arasındaki ilişkiyi modellemek için de kullanılabilir.
SQL, İlişkisel (relational) bir veritabanında saklanan verileri depolamak, işlemek ve almak için kullanılan Yapılandırılmış Sorgu Dili'dir (Structured Query Language).
SQL, İlişkisel Veritabanı Sistemleri için standart dildir. MySQL, MS Access, Oracle, Sybase, Informix, Postgres ve SQL Server gibi tüm İlişkisel Veritabanı Yönetim Sistemleri (RDMS), standart veritabanı dili olarak SQL kullanır.
PostgreSQL Veritabanı
information_schema, mevcut veritabanınız hakkında bilgi tutan bir meta-veritabanıdır. PostgreSQL'e özgü değildir; MySQL veya SQL Server gibi diğer veritabanı yönetim sistemlerinde de bulunur. information_schema, bilinen SELECT * FROM sözdizimiyle sorgulayabileceğiniz birden fazla tablo içerir:
- tables: mevcut veritabanınızdaki tüm tablolar hakkında bilgi
- columns: mevcut veritabanınızdaki tüm tablolardaki tüm sütunlar hakkında bilgi
SELECT table_schema, table_name
FROM information_schema.tables;
table_schema | table_name
-------------------+------------------------------
pg_catalog | pg_statistic
pg_catalog | pg_type
pg_catalog | pg_policy
pg_catalog | pg_authid
pg_catalog | pg_shadow
public | university_professors
pg_catalog | pg_settings
...
SQL'deki Komutlar
Veri Tanımlama Dili (DDL)
- CREATE: Yeni bir tablo veya bir tablonun görünümünü oluşturur.
- ALTER: Mevcut tabloyu değiştirir.
- DROP: Veritabanındaki tüm tabloyu veya diğer nesneleri siler.
Veri İşleme Dili (DML)
- SELECT: Bir veya daha fazla tablodan belirli kayıtları çıkarır.
- INSERT: Mevcut tabloya bir kayıt ekler.
- UPDATE: Tablodaki mevcut kaydı değiştirir.
- DELETE: Tablodaki kayıtları ve hatta tüm tabloyu siler.
Belirli Bir Tabloyun Sütunlarına Bakma
information_schema, "columns" tablosunda sütunlar hakkında da bilgi tutar. Bir tablonun adını öğrendikten sonra, "columns" tablosuna erişerek o tablonun sütunlarını sorgulayabilirsiniz.
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'pg_config';
table_name | column_name | data_type
-----------+-------------+-----------
pg_config | name | text
pg_config | setting | text
Burada, sistem tablosu pg_config'in yalnızca iki sütunu olduğunu – muhtemelen ad-değer çiftlerini saklamak için – görüyorsunuz.
Etkileşimli Örnek
Bu alıştırmada yalnızca 'public' şemasındaki bilgiye ihtiyacınız olacak; bu, tables ve columns tablolarının table_schema sütunu olarak belirtilmiştir. 'public' şeması, kullanıcı tanımlı tablolar ve veritabanlarına ilişkin bilgileri tutar. Diğer table_schema türleri sistem bilgisi içerir – burada yalnızca kullanıcı tanımlı olanlarla ilgileniyoruz.
Sorgunuzu 'public' table_schema ile sınırlandırırken mevcut veritabanındaki tüm tablo adları hakkında bilgi alacaksınız.
## information_schema içinde doğru tabloyu sorgulayın
SELECT table_name
FROM information_schema.tables
## Doğru table_schema değerini belirtin
WHERE table_schema = 'public';
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu üretir:

SQL'de ilişkisel veritabanları hakkında daha fazla bilgi edinmek için kursumuzdaki şu videoya bakın: SQL'de İlişkisel Veritabanlarına Giriş.
Bu içerik, Timo Grossenbacher'ın SQL'de İlişkisel Veritabanlarına Giriş kursundan alınmıştır.
SQL'de Dizinlemeye Giriş eğitimimize göz atın.
