Sütun Tipleri
Desteklenen Veri Tipleri
Tip adları büyük/küçük harf duyarsızdır. INT, int, Int — hepsi geçerlidir.
| SQL Tipi | Eşdeğerler | Boyut | Açıklama |
|---|---|---|---|
INT | INTEGER, INT32 | 4 byte | 32-bit tam sayı (-2^31 … 2^31-1) |
BIGINT | INT64 | 8 byte | 64-bit tam sayı |
SMALLINT | INT16 | 2 byte | 16-bit tam sayı (-32768 … 32767) |
TINYINT | INT8 | 1 byte | 8-bit tam sayı (-128 … 127) |
FLOAT | FLOAT64 | 8 byte | Çift hassasiyetli ondalıklı sayı |
FLOAT32 | — | 4 byte | Tek hassasiyetli ondalıklı sayı |
VARCHAR | TEXT, STRING | Değişken | UTF-8 metin |
BOOL | BOOLEAN | 1 bit | true / false |
DATE | — | 4 byte | Tarih (YYYY-MM-DD) |
TIMESTAMP | — | 8 byte | Zaman damgası (mikrosaniye hassasiyeti) |
TIMESTAMPTZ | — | 8 byte | Zaman damgası + UTC |
DECIMAL | — | 16 byte | 38 basamak, 10 ondalık |
BLOB | — | Değişken | İkili veri |
UUID | — | 16 byte | 128-bit benzersiz tanımlayıcı |
Tip Eşanlamlıları
Aşağıdaki tip grupları dahili olarak aynı Arrow tipine eşlenir:
- VARCHAR / TEXT / STRING →
Utf8(performans ve depolama farkı yoktur) - INT / INTEGER / INT32 →
Int32 - BIGINT / INT64 →
Int64 - FLOAT / FLOAT64 →
Float64 - BOOL / BOOLEAN →
Boolean
NOT NULL Kısıtı
Sütun tanımlarına NOT NULL eklenebilir:
CREATE TABLE urunler (
id INT NOT NULL,
urun_adi VARCHAR NOT NULL,
fiyat FLOAT
)
NOT NULLkısıtı şema meta verilerinde korunur- Sunucu yeniden başlatıldığında da geçerli kalır
UUID Sütunları
UUID değerleri 16-byte sabit boyutlu binary olarak saklanır.
UUID Üretimi
MenzeletDB uuid() fonksiyonunu içerir. Bu fonksiyon UUID v4 formatında rastgele bir benzersiz tanımlayıcı üretir ve VARCHAR (metin) tipinde döner:
-- uuid() ile otomatik UUID üretimi
SELECT uuid() AS yeni_id
-- Sonuç: "c4a1f2e8-3b7d-4a9c-8f1e-6d2a5b8c9e0f"
Not:
uuid()fonksiyonu metin tipinde değer döner, ancak MenzeletDB UUID sütunlarını binary olarak saklar. Doğrudan INSERT için istemci tarafında dönüşüm gerekebilir.
UUID İndeksleme
UUID sütunlarında Hash ve BTree indeksleme desteklenir.
NULL Davranışı
| Durum | Davranış |
|---|---|
| Aggregate fonksiyonlar (SUM, AVG, MIN, MAX) | NULL değerleri atlar |
COUNT(*) | NULL dahil tüm satırları sayar |
COUNT(sütun) | NULL hariç sayar |
COALESCE(a, b, ...) | İlk NULL olmayan değeri döner |
NULLIF(a, b) | a = b ise NULL döner |
IS NULL / IS NOT NULL | NULL kontrolü |
-- NULL kontrolü örnekleri
SELECT * FROM urunler WHERE fiyat IS NOT NULL
SELECT COALESCE(fiyat, 0.0) AS fiyat FROM urunler
SELECT NULLIF(indirimli_fiyat, 0.0) FROM urunler
Tip Dönüşümü (CAST)
-- INT → VARCHAR
SELECT CAST(id AS VARCHAR) FROM urunler
-- VARCHAR → INT
SELECT CAST('42' AS INT)
-- FLOAT → INT (ondalık kısmı kesilir)
SELECT CAST(3.7 AS INT) -- Sonuç: 3
-- Tarih dönüşümleri
SELECT CAST('2024-01-15' AS DATE)
SELECT CAST('2024-01-15 10:30:00' AS TIMESTAMP)