SQLite Tipe Data dengan Contoh: Int, Teks, Numerik, Nyata, Blob
Tipe data di SQLite berbeda dibandingkan dengan sistem manajemen basis data lainnya. Di dalam SQLite, Anda bisa mendeklarasikan tipe data secara normal, namun Anda tetap bisa menyimpan nilai apa pun dalam tipe data apa pun.
SQLite diketik lebih sedikit. Tidak ada tipe data, Anda dapat 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 tipe data integer, Anda hanya bisa memasukkan nilai tipe data integer. Namun, dalam tipe dinamis seperti di SQLite, jenis kolom ditentukan oleh nilai yang dimasukkan. Kemudian SQLite menyimpan nilai itu tergantung pada jenisnya.
SQLite Kelas Penyimpanan
In SQLite ada metode penyimpanan yang berbeda tergantung pada jenis nilainya, metode penyimpanan yang berbeda ini disebut kelas penyimpanan SQLite.
Berikut ini adalah kelas penyimpanan yang tersedia di SQLite:
- NULL – kelas penyimpanan ini digunakan untuk menyimpan nilai NULL apa pun.
- BILANGAN BULAT – nilai numerik apa pun disimpan sebagai nilai bilangan bulat bertanda (Dapat menampung nilai bilangan bulat positif dan negatif). Nilai INTEGER di SQLite disimpan dalam penyimpanan 1, 2, 3, 4, 6, atau 8 byte tergantung pada nilai nomornya.
- NYATA – kelas penyimpanan ini digunakan untuk menyimpan nilai floating point, dan disimpan dalam penyimpanan 8 byte.
- TEKS – menyimpan string teks. Ini juga mendukung pengkodean yang berbeda seperti UTF-8, UTF-16 BE, atau UTF-26LE.
- Gumpalan – digunakan untuk menyimpan file besar, seperti gambar atau file teks. Nilai disimpan sebagai array byte sama dengan nilai input.
SQLite Tipe Afinitas
Tipe afinitas adalah tipe data yang direkomendasikan yang disimpan dalam kolom. Namun, Anda tetap dapat menyimpan jenis data apa pun sesuai keinginan, jenis ini disarankan tidak diperlukan.
Jenis-jenis ini diperkenalkan pada SQLite untuk memaksimalkan kompatibilitas antar SQLite dan lainnya sistem manajemen basis data.
Kolom apa pun yang dideklarasikan dalam an SQLite database diberi afinitas tipe tergantung pada tipe data yang dideklarasikan. Di sini peningkatan afinitas tipe masuk SQLite:
- TEKS.
- NUMERIK.
- BILANGAN BULAT.
- NYATA.
- GUMPAL.
Begini caranya SQLite menentukan afinitas kolom dari tipe data yang dideklarasikan:
- Afinitas INTEGER ditetapkan jika tipe yang dideklarasikan berisi string "INT".
- Affinitas TEKS ditetapkan, jika kolom berisi salah satu string berikut pada tipe datanya “TEKS","ARANG, atau "KLOB“. Misalnya, tipe VARCHAR akan diberi afinitas TEXT.
- Afinitas BLOB ditetapkan jika kolom tidak memiliki tipe yang ditentukan atau tipe datanya adalah BLOB.
- Afinitas NYATA ditetapkan jika tipe tersebut berisi salah satu string berikut “GANDA","NYATA, atau "FLOAT".
- Afinitas NUMERIK ditetapkan untuk tipe data lainnya.
Ada juga tabel di halaman yang sama yang menunjukkan beberapa contoh pemetaan antara SQLite tipe data dan afinitasnya ditentukan oleh aturan berikut:
Contoh Menyimpan Tipe Data di SQLite
Menyimpan nomor dengan SQLite bilangan bulat
Setiap kolom tipe data berisi kata “INT”, maka akan diberi afinitas tipe INTEGER. Ini akan disimpan dalam kelas penyimpanan INTEGER.
Semua tipe data berikut ditetapkan sebagai afinitas tipe INTEGER:
- INTEGER, INTEGER, INTEGER.
- INT2, INT4, INT8.
- TINYINT, KECIL, INT MENENGAH.
Tipe afinitas INTEGER dalam SQLite dapat menampung bilangan bulat apa pun yang ditetapkan (positif atau negatif) dari 1 byte hingga maksimum 8 byte.
Menyimpan angka dengan SQLite NYATA
Angka RIIL merupakan angka dengan presisi titik mengambang ganda. SQLite menyimpan angka riil sebagai array 8 byte. Berikut adalah daftar tipe data dalam SQLite yang dapat Anda gunakan untuk menyimpan angka NYATA:
- NYATA.
- DOBEL.
- PRESISI GANDA.
- MENGAMBANG.
Menyimpan data berukuran besar dengan SQLite Gumpalan
Hanya ada satu cara untuk menyimpan file besar ke dalam a SQLite database, dan menggunakan tipe data BLOB. Tipe data ini digunakan untuk menyimpan file besar seperti gambar, file (dari jenis apa pun), dll. File tersebut diubah menjadi array byte dan 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 (salah) atau 1 (benar).
Menyimpan SQLite tanggal dan waktu
Anda dapat mendeklarasikan tanggal atau waktu tanggal SQLite menggunakan salah satu tipe data berikut:
- TANGGAL
- TANGGAL WAKTU
- URUTAN WAKTU
- WAKTU
Perhatikan bahwa, tidak ada kelas penyimpanan DATE atau DATETIME terpisah SQLiteSebaliknya, nilai apa pun yang dideklarasikan dengan salah satu tipe data sebelumnya disimpan pada kelas penyimpanan tergantung pada format tanggal dari nilai yang dimasukkan sebagai berikut:
- TEKS – jika Anda memasukkan nilai tanggal dalam format string ISO8601 (“YYYY-MM-DD HH:MM:SS.SSS”).
- NYATA – jika Anda memasukkan nilai tanggal ke dalam angka hari Julian, jumlah hari sejak tengah hari di Greenwich pada tanggal 24 November 4714 SM Maka nilai tanggal akan disimpan sebagai NYATA.
- BILANGAN BULAT as Unix Waktu, jumlah detik sejak 1970-01-01 00:00:00 UTC.
Ringkasan
SQLite mendukung berbagai tipe data. Namun, pada saat yang sama, ini sangat fleksibel mengenai tipe data. Anda dapat memasukkan tipe nilai apa pun ke dalam tipe data apa pun. SQLite juga memperkenalkan beberapa konsep baru dalam tipe data seperti afinitas tipe dan kelas penyimpanan, tidak seperti sistem manajemen basis data lainnya.