Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Sütun Tipleri

Desteklenen Veri Tipleri

Tip adları büyük/küçük harf duyarsızdır. INT, int, Int — hepsi geçerlidir.

SQL TipiEşdeğerlerBoyutAçıklama
INTINTEGER, INT324 byte32-bit tam sayı (-2^31 … 2^31-1)
BIGINTINT648 byte64-bit tam sayı
SMALLINTINT162 byte16-bit tam sayı (-32768 … 32767)
TINYINTINT81 byte8-bit tam sayı (-128 … 127)
FLOATFLOAT648 byteÇift hassasiyetli ondalıklı sayı
FLOAT324 byteTek hassasiyetli ondalıklı sayı
VARCHARTEXT, STRINGDeğişkenUTF-8 metin
BOOLBOOLEAN1 bittrue / false
DATE4 byteTarih (YYYY-MM-DD)
TIMESTAMP8 byteZaman damgası (mikrosaniye hassasiyeti)
TIMESTAMPTZ8 byteZaman damgası + UTC
DECIMAL16 byte38 basamak, 10 ondalık
BLOBDeğişkenİkili veri
UUID16 byte128-bit benzersiz tanımlayıcı

Tip Eşanlamlıları

Aşağıdaki tip grupları dahili olarak aynı Arrow tipine eşlenir:

  • VARCHAR / TEXT / STRINGUtf8 (performans ve depolama farkı yoktur)
  • INT / INTEGER / INT32Int32
  • BIGINT / INT64Int64
  • FLOAT / FLOAT64Float64
  • BOOL / BOOLEANBoolean

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 NULL kı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ışı

DurumDavranış
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 NULLNULL 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)