Jenis data di SQLite berbeda dibandingkan dengan sistem manajemen basis data lainnya. Di SQLite, Anda dapat mendeklarasikan tipe data secara normal, tetapi Anda masih dapat menyimpan nilai apa pun dalam tipe data apa pun.
Dalam tutorial ini, Anda akan belajar-
- Kelas Penyimpanan
- Jenis Afinitas
- Contoh penyimpanan tipe data di SQLite
SQLite diketik lebih sedikit. Tidak ada tipe data, Anda bisa menyimpan tipe data apa pun yang Anda suka di kolom mana pun. Ini disebut tipe dinamis.
Dalam tipe statis, seperti dalam sistem manajemen basis data lainnya, jika Anda mendeklarasikan kolom dengan bilangan bulat tipe data, Anda hanya dapat memasukkan nilai bilangan bulat tipe data. Namun, dalam tipe dinamis seperti di SQLite, tipe kolom ditentukan oleh nilai yang dimasukkan. Dan kemudian SQLite menyimpan nilai itu tergantung pada tipenya.
Kelas Penyimpanan SQLite
Di SQLite, ada metode penyimpanan yang berbeda tergantung pada jenis nilainya, metode penyimpanan yang berbeda ini disebut kelas penyimpanan di SQLite.
Berikut ini adalah kelas penyimpanan yang tersedia di SQLite:
- NULL - kelas penyimpanan ini digunakan untuk menyimpan nilai NULL apa pun.
- INTEGER - nilai numerik apa pun disimpan sebagai nilai integer bertanda (Dapat menampung nilai integer positif dan negatif). Nilai INTEGER di SQLite disimpan di penyimpanan 1, 2, 3, 4, 6, atau 8 tergantung pada nilai nomornya.
- REAL - kelas penyimpanan ini digunakan untuk menyimpan nilai floating point, dan disimpan dalam penyimpanan 8-byte.
- TEXT - menyimpan string teks. Ini juga mendukung pengkodean yang berbeda seperti UTF-8, UTF-16 BE, atau UTF-26LE.
- BLOB - digunakan untuk menyimpan file besar, seperti gambar atau file teks. Nilai disimpan sebagai array byte sama dengan nilai input.
Jenis Afinitas SQLite
Jenis afinitas adalah jenis data yang direkomendasikan yang disimpan dalam kolom. Namun, Anda tetap dapat menyimpan jenis data apa pun sesuai keinginan, jenis ini disarankan tidak diperlukan.
Jenis ini diperkenalkan di SQLite untuk memaksimalkan kompatibilitas antara SQLite dan sistem manajemen database lainnya.
Setiap kolom yang dideklarasikan dalam database SQLite diberi afinitas tipe bergantung padanya tipe data yang dideklarasikan. Berikut peningkatan jenis afinitas di SQLite:
- TEKS.
- NUMERIK.
- BILANGAN BULAT.
- NYATA.
- GUMPAL.
Berikut cara SQLite menentukan afinitas kolom dari tipe datanya yang dideklarasikan:
- Afinitas INTEGER diberikan jika tipe yang dideklarasikan berisi string " INT ".
- Afinitas TEXT ditetapkan, jika kolom berisi jenis datanya salah satu string berikut " TEXT ", " CHAR , atau" CLOB ". Misalnya, jenis VARCHAR akan diberi afinitas TEXT.
- Afinitas BLOB diberikan jika kolom tidak memiliki tipe yang ditentukan atau tipe datanya adalah BLOB.
- Afinitas REAL ditetapkan jika jenisnya berisi salah satu string berikut " DOUB ", " REAL , atau" FLOAT ".
- Afinitas NUMERIK ditetapkan untuk tipe data lainnya.
Ada juga tabel di halaman yang sama yang menunjukkan beberapa contoh pemetaan antara tipe data SQLite dan afinitasnya yang ditentukan oleh aturan berikut:
Contoh Menyimpan tipe Data di SQLite:
Menyimpan nomor dengan bilangan bulat SQLite:
Setiap kolom tipe data berisi kata "INT", itu akan diberi afinitas tipe INTEGER. Ini akan disimpan dalam kelas penyimpanan INTEGER.
Semua tipe data berikut ditetapkan sebagai afinitas tipe INTEGER:
- INT, INTEGER, BESAR.
- INT2, INT4, INT8.
- TINYINT, SMALLINT, MEDIUM INT.
Afinitas tipe INTEGER di SQLite dapat menampung bilangan bulat yang ditetapkan (positif atau negatif) dari 1 byte hingga maksimum 8 byte.
Menyimpan angka dengan SQLite REAL:
Bilangan NYATA adalah bilangan dengan presisi titik mengambang ganda. SQLite menyimpan bilangan real sebagai array 8 byte. Berikut adalah daftar tipe data di SQLite yang dapat Anda gunakan untuk menyimpan nomor NYATA:
- NYATA.
- DUA KALI LIPAT.
- KETEPATAN GANDA.
- MENGAPUNG.
Menyimpan data besar dengan SQLite BLOB:
Hanya ada satu cara untuk menyimpan file besar ke dalam database SQLite, dan itu menggunakan tipe data BLOB. Tipe data ini digunakan untuk menyimpan file berukuran besar seperti gambar, file (dari tipe apapun), dll. File tersebut diubah menjadi byte array kemudian disimpan dalam ukuran yang sama dengan file input.
Menyimpan SQLite Boolean:
SQLite tidak memiliki kelas penyimpanan BOOLEAN terpisah. Namun, nilai BOOLEAN disimpan sebagai INTEGER dengan nilai 0 (sebagai salah) atau 1 (sebagai benar).
Menyimpan tanggal dan waktu SQLite:
Anda dapat mendeklarasikan tanggal atau waktu tanggal di SQLite menggunakan salah satu tipe data berikut:
- TANGGAL
- TANGGAL WAKTU
- TIMESTAMP
- WAKTU
Perhatikan bahwa, tidak ada kelas penyimpanan DATE atau DATETIME yang terpisah di SQLite. Sebagai gantinya, nilai apa pun yang dideklarasikan dengan salah satu tipe data sebelumnya disimpan di kelas penyimpanan bergantung pada format tanggal dari nilai yang dimasukkan sebagai berikut:
- TEXT - jika Anda memasukkan nilai tanggal dalam format string ISO8601 ("YYYY-MM-DD HH: MM: SS.SSS").
- NYATA - jika Anda memasukkan nilai tanggal dalam nomor hari Julian, jumlah hari sejak tengah hari di Greenwich pada 24 November 4714 SM Kemudian nilai tanggal akan disimpan sebagai NYATA.
- INTEGER sebagai Unix Time, jumlah detik sejak 1970-01-01 00:00:00 UTC.
Ringkasan:
SQLite mendukung berbagai tipe data. Namun, pada saat yang sama, sangat fleksibel terkait tipe data. Anda dapat meletakkan tipe nilai apa pun dalam tipe data apa pun. SQLite juga memperkenalkan beberapa konsep baru dalam tipe data seperti jenis afinitas dan kelas penyimpanan, tidak seperti sistem manajemen database lainnya.