Veri türleri

SQLite'in yalnızca dört temel veri türü vardır: INTEGER, REAL, TEXT ve BLOB. Veritabanı değerlerini olarak object döndüren API'ler bu dört türden yalnızca birini döndürür. Ek .NET türleri Microsoft.Data.Sqlite tarafından desteklenir, ancak değerler sonuçta bu türlerle dört temel türden biri arasında zorunlu kalır.

.NET SQLite Açıklamalar
Boolean TAMSAYI 0 veya 1
Bayt TAMSAYI
Bayt[] BLOB
Char METİN UTF-8
DateOnly METİN yyyy-MM-dd
DateTime METİN yyyy-MM-dd HH:mm:ss. FFFFFFF
DateTimeOffset METİN yyyy-MM-dd HH:mm:ss. FFFFFFFzzz
Ondalık METİN 0.0########################### Biçim. REAL kayıp olur.
Çift GERÇEK
GUID METİN 00000000-0000-0000-0000-000000000000
Int16 TAMSAYI
Int32 TAMSAYI
Int64 TAMSAYI
SByte TAMSAYI
Tekli GERÇEK
String METİN UTF-8
TimeOnly METİN SS:mm:ss.fffffff
TimeSpan METİN d.hh:mm:ss.fffffff
UInt16 TAMSAYI
UInt32 TAMSAYI
UInt64 TAMSAYI Büyük değerler taşması

Alternatif türler

Bazı .NET türleri alternatif SQLite türlerinden okunabilir. Parametreler bu alternatif türleri kullanacak şekilde de yapılandırılabilir. Daha fazla bilgi için bkz . Parametreler.

.NET SQLite Açıklamalar
Char TAMSAYI UTF-16
DateOnly GERÇEK Jülyen gün değeri
DateTime GERÇEK Jülyen gün değeri
DateTimeOffset GERÇEK Jülyen gün değeri
GUID BLOB
TimeOnly GERÇEK Gün olarak
TimeSpan GERÇEK Gün olarak

Örneğin, aşağıdaki sorgu sonuç kümesindeki BIR REAL sütunundaki TimeSpan değerini okur.

command.CommandText =
@"
    SELECT name, julianday(finished) - julianday(started) AS length
    FROM task
    WHERE finished IS NOT NULL
";
using (var reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        var name = reader.GetString(0);
        var length = reader.GetTimeSpan(1);

        Console.WriteLine($"'{name}' took {length}.");
    }
}

Sütun türleri

SQLite, bir değerin türünün depolandığı sütunla değil değerle ilişkilendirildiği dinamik bir tür sistemi kullanır. İstediğiniz sütun türü adını kullanabilirsiniz. Microsoft.Data.Sqlite bu adlara ek semantik uygulamaz.

Sütun türü adı, tür benzini etkiler. Sık karşılaşılan sorunlardan biri, STRING sütun türü kullanmanın değerleri INTEGER veya REAL'e dönüştürmeye çalışmasıdır ve bu da beklenmeyen sonuçlara yol açabilir. Yalnızca dört ilkel SQLite türü adı kullanmanızı öneririz: INTEGER, REAL, TEXT ve BLOB.

SQLite uzunluk, duyarlık ve ölçek gibi tür modellerini belirtmenize olanak tanır, ancak veritabanı altyapısı tarafından uygulanmaz. Uygulamanız bunları zorunlu tutmaktan sorumludur.

Ayrıca bkz.