Bagikan melalui


Jenis data

SQLite hanya memiliki empat jenis data primitif: INTEGER, REAL, TEXT, dan BLOB. API yang mengembalikan nilai database sebagai object hanya akan mengembalikan salah satu dari empat jenis ini. Jenis .NET tambahan didukung oleh Microsoft.Data.Sqlite, tetapi nilai pada akhirnya dikoerasi antara jenis ini dan salah satu dari empat jenis primitif.

.JARING SQLite Komentar
Boolean (tipe data yang hanya memiliki dua nilai: true atau false) Bilangan Bulat 0 atau 1
Bita Bilangan Bulat
Byte[] GUMPALAN
Karakter TEKS UTF-8
TanggalSaja TEKS yyyy-MM-dd
Tanggal dan Waktu TEKS yyyy-MM-dd HH:mm:ss. FFFFFFF
Pengaturan Waktu & Tanggal TEKS yyyy-MM-dd HH:mm:ss. FFFFFFFzzz
Desimal TEKS 0.0########################### format. REAL akan rugi.
Dobel Nyata
Panduan TEKS 00000000-0000-0000-0000-000000000000
Int16 Bilangan Bulat
Int32 Bilangan Bulat
Int64 Bilangan Bulat
SByte Bilangan Bulat
Tunggal Nyata
string TEKS UTF-8
TimeOnly TEKS HH:mm:ss.fffffff
Rentang Waktu TEKS d.hh:mm:ss.fffffff
UInt16 Bilangan Bulat
UInt32 Bilangan Bulat
UInt64 Bilangan Bulat Nilai besar meluap

Jenis alternatif

Beberapa jenis .NET dapat dibaca dari jenis SQLite alternatif. Parameter juga dapat dikonfigurasi untuk menggunakan jenis alternatif ini. Untuk informasi selengkapnya, lihat Parameter.

.JARING SQLite Komentar
Karakter Bilangan Bulat UTF-16
TanggalSaja Nyata Nilai Hari Julian
Tanggal dan Waktu Nyata Nilai Hari Julian
Pengaturan Waktu & Tanggal Nyata Nilai Hari Julian
Panduan GUMPALAN
TimeOnly Nyata Dalam hari
Rentang Waktu Nyata Dalam hari

Misalnya, kueri berikut membaca nilai TimeSpan dari kolom REAL dalam tataan hasil.

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}.");
    }
}

Jenis kolom

SQLite menggunakan sistem jenis dinamis di mana jenis nilai dikaitkan dengan nilai itu sendiri dan bukan kolom tempat nilai disimpan. Anda bebas menggunakan nama jenis kolom apa pun yang Anda inginkan. Microsoft.Data.Sqlite tidak akan menerapkan semantik tambahan apa pun ke nama-nama ini.

Nama jenis kolom memang berdampak pada afinitas jenis. Salah satu gotcha umum adalah bahwa menggunakan jenis kolom STRING akan mencoba mengonversi nilai ke INTEGER atau REAL, yang dapat menyebabkan hasil yang tidak terduga. Sebaiknya gunakan empat nama jenis SQLite primitif: INTEGER, REAL, TEXT, dan BLOB.

SQLite memungkinkan Anda menentukan faset jenis seperti panjang, presisi, dan skala, tetapi tidak diberlakukan oleh mesin database. Aplikasi Anda bertanggung jawab untuk memberlakukan ini.

Lihat juga