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.