SQLite'deki veri türleri diğer veritabanı yönetim sistemlerine göre farklıdır. SQLite'de veri türlerini normal olarak bildirebilirsiniz, ancak yine de herhangi bir veri türünde herhangi bir değeri depolayabilirsiniz.
Bu eğitimde öğreneceksiniz-
- Depolama Sınıfları
- Yakın İlgi Alanı Türü
- Veri türlerini SQLite'da saklama örnekleri
SQLite daha az yazılır. Veri türü yoktur, istediğiniz herhangi bir tür veriyi herhangi bir sütunda saklayabilirsiniz. Buna dinamik türler denir.
Statik türlerde, diğer veritabanı yönetim sistemlerinde olduğu gibi, veri türü tamsayı olan bir sütun bildirdiyseniz, yalnızca veri türü tamsayı değerlerini ekleyebilirsiniz. Bununla birlikte, SQLite gibi dinamik türlerde, sütunun türü eklenen değere göre belirlenir. Ve sonra SQLite, türüne bağlı olarak bu değeri depolar.
SQLite Depolama Sınıfları
SQLite'de değerin türüne bağlı olarak farklı depolama yöntemleri vardır, bu farklı depolama yöntemlerine SQLite'da depolama sınıfları denir.
Aşağıdakiler, SQLite'da bulunan depolama sınıflarıdır:
- NULL - bu depolama sınıfı, herhangi bir NULL değerini depolamak için kullanılır.
- INTEGER - herhangi bir sayısal değer, işaretli bir tamsayı değeri olarak saklanır (Hem pozitif hem de negatif tam sayı değerlerini tutabilir). SQLite'daki INTEGER değerleri, sayının değerine bağlı olarak 1, 2, 3, 4, 6 veya 8 baytlık depoda saklanır.
- GERÇEK - bu depolama sınıfı, kayan nokta değerlerini depolamak için kullanılır ve 8 baytlık bir depolamada saklanır.
- METİN - metin dizelerini saklar. Ayrıca UTF-8, UTF-16 BE veya UTF-26LE gibi farklı kodlamayı da destekler.
- BLOB - resimler veya metin dosyaları gibi büyük dosyaları depolamak için kullanılır. Değer, girdi değeriyle aynı şekilde bayt dizisi olarak saklanır.
SQLite Benzeşme Türü
Tür benzeşimi, bir sütunda depolanan önerilen veri türüdür. Ancak yine de her türlü veriyi istediğiniz gibi saklayabilirsiniz, bu türlerin gerekli olmaması tavsiye edilir.
Bu türler, SQLite ve diğer veritabanı yönetim sistemleri arasındaki uyumluluğu en üst düzeye çıkarmak için SQLite'de tanıtıldı.
Bir SQLite veritabanında bildirilen herhangi bir sütuna, bildirilen veri türüne bağlı olarak bir tür benzeşimi atanır. İşte SQLite'deki tür yakınlıklarının artışı:
- METİN.
- SAYISAL.
- TAM.
- GERÇEK.
- BLOB.
SQLite, bildirilen veri türünden sütunun yakınlığını şu şekilde belirler:
- INTEGER yakınlığı, bildirilen tür " INT " dizesini içeriyorsa atanır .
- Sütun veri türünde " TEXT ", " CHAR veya" CLOB " dizelerinden birini içeriyorsa TEXT yakınlığı atanır . Örneğin, VARCHAR türüne TEXT yakınlığı atanır.
- Sütunun türü belirtilmemişse veya veri türü bir BLOB ise BLOB benzeşimi atanır.
- Tür aşağıdaki " DOUB ", " REAL veya" FLOAT " dizelerinden birini içeriyorsa GERÇEK yakınlık atanır .
- Diğer herhangi bir veri türü için NUMERIC yakınlık atanır.
Aynı sayfada, SQLite veri türleri ve bu kurallar tarafından belirlenen yakınlıkları arasındaki eşleme için bazı örnekler gösteren bir tablo da vardır:
Veri türlerini SQLite'de Saklama Örnekleri:
Sayıyı SQLite tamsayı ile saklama:
Herhangi bir veri türü sütunu "INT" sözcüğünü içerir, buna bir INTEGER türü yakınlık atanacaktır. Bir INTEGER depolama sınıfında saklanacaktır.
Aşağıdaki veri türlerinin tümü, INTEGER türü yakınlık olarak atanır:
- INT, INTEGER, BIGINT.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
SQLite'daki INTEGER türü yakınlığı, 1 bayttan maksimum 8 bayta kadar atanmış herhangi bir tam sayı (pozitif veya negatif) tutabilir.
Numaraları SQLite REAL ile saklama:
GERÇEK sayılar, çift kayan nokta hassasiyetine sahip sayıdır. SQLite, gerçek sayıları 8 baytlık bir dizi olarak sakladı. GERÇEK sayıları depolamak için kullanabileceğiniz SQLite veri türlerinin listesi:
- GERÇEK.
- ÇİFT.
- ÇİFT HASSASİYET.
- YÜZER.
SQLite BLOB ile büyük verilerin depolanması:
Büyük dosyaları bir SQLite veritabanında depolamanın tek bir yolu vardır ve bu, BLOB veri türünü kullanmaktır. Bu veri türü, resimler, dosyalar (her türden) vb. Gibi büyük dosyaları depolamak için kullanılır. Dosya bayt dizisine dönüştürülür ve ardından girdi dosyasıyla aynı boyutta saklanır.
SQLite Boole'lerini Saklama:
SQLite'ın ayrı bir BOOLEAN depolama sınıfı yoktur. Bununla birlikte, BOOLEAN değerleri, 0 (yanlış olarak) veya 1 (doğru olarak) değerleriyle TAM SAYISI olarak saklanır.
SQLite tarihlerini ve saatlerini saklama:
Aşağıdaki veri türlerinden birini kullanarak SQLite'da tarih veya tarih saatleri bildirebilirsiniz:
- TARİH
- DATETIME
- TIMESTAMP
- ZAMAN
SQLite'de ayrı bir DATE veya DATETIME depolama sınıfı olmadığını unutmayın. Bunun yerine, önceki veri türlerinden biriyle bildirilen değerler, eklenen değerin tarih biçimine bağlı olarak aşağıdaki gibi bir depolama sınıfında depolanır:
- METİN - tarih değerini ISO8601 dizesi biçiminde eklediyseniz ("YYYY-AA-GG SS: DD: SS.SSS").
- GERÇEK - Jülyen gün sayılarına tarih değerini eklerseniz, MÖ 24 Kasım 4714'te Greenwich'te öğleden sonraki günlerin sayısını eklerseniz, tarih değeri GERÇEK olarak saklanır.
- INTEGER Unix Time olarak, 1970-01-01 00:00:00 UTC'den bu yana geçen saniye sayısı.
Özet:
SQLite, çok çeşitli veri türlerini destekler. Ancak aynı zamanda veri türleri açısından çok esnektir. Herhangi bir değer türünü herhangi bir veri türüne koyabilirsiniz. SQLite ayrıca, diğer veritabanı yönetim sistemlerinden farklı olarak, tür benzeşimi ve depolama sınıfları gibi veri türlerinde bazı yeni kavramları da tanıttı.