SQLite Tipe Data: Int, Teks, Numerik, Riil, Blob

⚡ Ringkasan Cerdas

SQLite Tipe data bekerja berbeda dari basis data lainnya karena SQLite menggunakan tipe dinamisping, menyimpan nilai apa pun di kolom mana pun. Kelas penyimpanan, afinitas tipe, dan nama tipe yang dideklarasikan bersama-sama menentukan bagaimana setiap nilai disimpan secara fisik di disk.

  • 🧩 Tipe Dinamisping: SQLite Bersifat dinamis, sehingga nilai yang Anda masukkan, bukan definisi kolom, yang menentukan bagaimana data disimpan.
  • Kelas Penyimpanan: Lima kelas penyimpanan — NULL, INTEGER, REAL, TEXT, dan BLOB — menjelaskan bagaimana setiap nilai disimpan di disk.
  • 🎯 Afinitas Tipe: Setiap kolom menerima rekomendasi afinitas — TEXT, NUMERIC, INTEGER, REAL, atau BLOB — dari nama tipe yang dideklarasikan.
  • 🔢 Penyimpanan Angka: Tipe data apa pun yang dideklarasikan dan mengandung INT akan menjadi INTEGER, sedangkan REAL, DOUBLE, dan FLOAT menyimpan angka floating-point dalam delapan byte.
  • 📅 Tanggal dan Boolean: SQLite tidak memiliki kelas DATE atau BOOLEAN khusus dan menyimpan nilai-nilai tersebut sebagai TEXT, REAL, atau INTEGER.
  • 🤖 Bantuan AI: Asisten AI text-to-SQL dan GitHub Copilot menghasilkan SQLite Definisi kolom dan pilih tipe data dari bahasa Inggris yang mudah dipahami.

SQLite Jenis Data

Bagian-bagian di bawah ini menjelaskan bagaimana SQLite Materi ini membahas tipe data, dimulai dengan lima kelas penyimpanan, kemudian afinitas tipe dan aturan penugasannya, dan akhirnya contoh-contoh praktis penyimpanan bilangan bulat, bilangan riil, BLOB, Boolean, dan tanggal.

Tipe data di SQLite berbeda dengan yang ada di sistem manajemen basis data lainnya. Di SQLiteAnda dapat mendeklarasikan tipe data secara normal, tetapi Anda tetap dapat menyimpan nilai apa pun dalam tipe data apa pun.

SQLite Tipe data tidak tetap. Tidak ada tipe data yang baku; Anda dapat menyimpan tipe data apa pun yang Anda inginkan di kolom mana pun. Ini disebut tipe data dinamis.ping.

Pada tipe statis, seperti pada sistem manajemen basis data lainnya, jika Anda mendeklarasikan kolom dengan tipe data integer, Anda hanya dapat memasukkan nilai dengan tipe data integer. Namun, pada tipe dinamis, seperti pada SQLite, tipe kolom ditentukan oleh nilai yang dimasukkan, dan kemudian SQLite menyimpan nilai itu tergantung pada jenisnya.

SQLite Kelas Penyimpanan

In SQLite Terdapat berbagai metode penyimpanan yang berbeda tergantung pada jenis nilainya; berbagai metode penyimpanan 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 – setiap nilai numerik disimpan sebagai nilai bilangan bulat bertanda (dapat menyimpan nilai bilangan bulat positif dan negatif). Nilai INTEGER dalam 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 nilai tersebut disimpan dalam memori sebesar 8 byte.
  • TEKS – menyimpan string teks. Ia juga mendukung berbagai encoding seperti UTF-8, UTF-16BE, atau UTF-16LE.
  • Gumpalan – digunakan untuk menyimpan file berukuran besar, seperti gambar atau file teks. Nilainya disimpan sebagai larik byte, sama dengan nilai input.

SQLite Tipe Afinitas

Tipe afinitas adalah tipe data yang direkomendasikan untuk disimpan dalam sebuah kolom. Namun, Anda tetap dapat menyimpan tipe data apa pun sesuai keinginan; tipe-tipe ini hanya direkomendasikan, bukan diwajibkan.

Jenis-jenis ini diperkenalkan pada SQLite untuk memaksimalkan kompatibilitas antar SQLite dan lainnya sistem manajemen basis datas.

Kolom apa pun yang dideklarasikan dalam an SQLite Sebuah basis data diberi afinitas tipe tergantung pada tipe data yang dideklarasikan. Berikut adalah daftar afinitas tipe di SQLite:

  • TEKS.
  • NUMERIK.
  • BILANGAN BULAT.
  • NYATA.
  • GUMPAL.

Begini caranya SQLite Menentukan afinitas kolom berdasarkan tipe data yang dideklarasikan:

  • Afinitas INTEGER ditetapkan jika tipe yang dideklarasikan berisi string “INT”.
  • Afinitas TEXT ditetapkan jika kolom tersebut berisi salah satu string berikut dalam tipe datanya: “TEXT”, “CHAR”, atau “CLOB”. Misalnya, tipe VARCHAR akan diberi afinitas TEXT.
  • Afinitas BLOB ditetapkan jika kolom tidak memiliki tipe yang ditentukan atau tipe datanya adalah BLOB.
  • Afinitas REAL ditetapkan jika tipe tersebut berisi salah satu string berikut: “DOUB”, “REAL”, atau “FLOAT”.
  • Afinitas NUMERIK ditetapkan untuk tipe data lainnya.

Terdapat juga tabel di bawah ini yang menunjukkan beberapa contoh peta.ping antara SQLite tipe data dan afinitasnya ditentukan oleh aturan berikut:

Lokasiping antara SQLite Tipe data yang dideklarasikan dan afinitas tipe yang ditetapkan, menunjukkan contoh INT, CHAR, TEXT, BLOB, REAL, FLOAT, dan NUMERIC.

Contoh Menyimpan Tipe Data di SQLite

Menyimpan angka dengan SQLite BILANGAN BULAT

Jika ada kolom yang memiliki tipe data yang mengandung kata "INT", maka kolom tersebut akan diberi afinitas tipe INTEGER. Kolom tersebut akan disimpan dalam kelas penyimpanan INTEGER.

Semua tipe data berikut ini diberi afinitas tipe INTEGER:

  • INTEGER, INTEGER, INTEGER.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUMINT.

Tipe afinitas INTEGER dalam SQLite Dapat menyimpan bilangan bulat apa pun yang ditetapkan (positif atau negatif) mulai dari 1 byte hingga maksimum 8 byte.

Menyimpan angka dengan SQLite NYATA

Bilangan REAL adalah bilangan dengan presisi floating-point ganda. SQLite menyimpan bilangan riil sebagai larik 8-byte. Berikut adalah daftar tipe data di 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 berukuran besar di dalam SQLite Basis data tersebut menggunakan tipe data BLOB. Tipe data ini digunakan untuk menyimpan file berukuran besar seperti gambar atau file jenis apa pun. File tersebut dikonversi menjadi larik byte dan kemudian disimpan dengan ukuran yang sama seperti file input.

Menyimpan SQLite Boolean

SQLite tidak memiliki kelas penyimpanan BOOLEAN terpisah. Sebagai gantinya, nilai BOOLEAN disimpan sebagai INTEGER, dengan 0 mewakili false dan 1 mewakili true.

Menyimpan SQLite tanggal dan waktu

Anda dapat mendeklarasikan tanggal atau waktu tanggal di SQLite menggunakan salah satu tipe data berikut:

  • TANGGAL
  • TANGGAL WAKTU
  • URUTAN WAKTU
  • WAKTU

Perlu dicatat bahwa tidak ada kelas penyimpanan DATE atau DATETIME terpisah di SQLiteSebaliknya, nilai apa pun yang dideklarasikan dengan salah satu tipe data sebelumnya disimpan dalam kelas penyimpanan yang bergantung 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 sebagai nomor hari Julian, jumlah hari sejak tengah hari di Greenwich pada tanggal 24 November 4714 SM. Nilai tanggal tersebut kemudian disimpan sebagai REAL.
  • BILANGAN BULAT - sebagai Unix Waktu, jumlah detik sejak 1970-01-01 00:00:00 UTC.

Pertanyaan Umum Demo Slot

Kelas penyimpanan adalah bagaimana SQLite Secara fisik menyimpan nilai: NULL, INTEGER, REAL, TEXT, atau BLOB, yang ditentukan per nilai pada saat runtime. Afinitas tipe adalah kelas yang lebih disukai kolom, dipilih dari nama tipe yang dideklarasikan, yang SQLite mencoba untuk menerapkannya.

Nomor SQLite mengabaikan angka dalam tanda kurung, sehingga VARCHAR(50) dan VARCHAR berperilaku identik. Keduanya menerima afinitas TEXT karena nama tipenya mengandung CHAR, dan SQLite tidak memberlakukan batasan panjang kecuali nilai global SQLITE_MAX_LENGTH.

Gunakan fungsi typeof() dalam kueri, seperti SELECT typeof(column) FROM table. Fungsi ini mengembalikan kelas penyimpanan sebenarnya dari nilai tersebut — null, integer, real, text, atau blob — yang dapat berbeda dari tipe yang dideklarasikan pada kolom karena tipe dinamis.ping.

Tabel KETAT, ditambahkan di SQLite 3.37, matikan type affinity dan tolak nilai apa pun yang tidak sesuai dengan tipe yang dideklarasikan kolom. Hanya INT, INTEGER, REAL, TEXT, BLOB, dan ANY yang diizinkan, memberikan tipe yang kaku.ping ditemukan di basis data lain.

Simpan uang sebagai bilangan bulat (INTEGER) dalam satuan terkecil, seperti sen, untuk menghindari kesalahan pembulatan pada nilai bilangan floating-point (FLO) yang sebenarnya. Untuk presisi variabel atau sangat tinggi, tipe data TEXT mempertahankan string angka yang tepat. SQLite tidak memiliki jenis uang titik tetap khusus.

Pengaturan SQLITE_MAX_LENGTH membatasi nilai TEXT atau BLOB dan secara default bernilai satu miliar byte. Implementasi saat ini mendukung hingga 2,147,483,647 byte. Anda dapat menurunkan batas tersebut saat runtime dengan antarmuka sqlite3_limit() bila diperlukan.

Ya. Asisten AI teks-ke-SQL mengubah deskripsi bahasa Inggris biasa menjadi pernyataan CREATE TABLE, dengan memilih SQLite Kelas penyimpanan dan afinitas seperti INTEGER, TEXT, dan REAL. Menyediakan tipe kolom yang sudah ada akan meningkatkan akurasi, dan SQL yang dihasilkan harus ditinjau sebelum dijalankan.

Ya. Kopilot GitHub menyarankan definisi kolom dengan SQLite Tipe data seperti INTEGER, TEXT, REAL, dan BLOB tersedia langsung di editor seperti... VS Code. Program ini membaca skema dan kode migrasi di sekitarnya, sehingga penyelesaian otomatisnya menggunakan kembali nama tabel dan kolom asli Anda.

Ringkaslah postingan ini dengan: