SQLite Veri Tipleri: Int, Text, Numeric, Real, Blob

⚡ Akıllı Özet

SQLite Veri türleri diğer veritabanlarından farklı çalışır çünkü SQLite dinamik tip kullanırpingHerhangi bir sütuna herhangi bir değer kaydedilebilir. Depolama sınıfları, tür yakınlığı ve tanımlanmış tür adları birlikte, her değerin diskte fiziksel olarak nasıl kaydedileceğini belirler.

  • 🧩 Dinamik Typing: SQLite Dinamik olarak tiplendirildiği için, sütun tanımı değil, eklediğiniz değer verilerin nasıl saklanacağına karar verir.
  • 🗄️ Depolama Sınıfları: Beş depolama sınıfı — NULL, INTEGER, REAL, TEXT ve BLOB — her bir değerin diskte nasıl saklandığını açıklar.
  • 🎯 Tür Yakınlığı: Her sütun, belirtilen tür adından TEXT, NUMERIC, INTEGER, REAL veya BLOB olmak üzere önerilen bir tür ataması alır.
  • 🔢 Sayı Depolama: İçinde INT bulunan herhangi bir tanımlanmış tür INTEGER olur, REAL, DOUBLE ve FLOAT ise sekiz baytlık kayan noktalı sayılar tutar.
  • 📅 Tarihler ve Mantıksal Değerler: SQLite Özel bir DATE veya BOOLEAN sınıfı içermez ve bu değerleri bunun yerine TEXT, REAL veya INTEGER olarak saklar.
  • 🤖 Yapay Zeka Yardımı: Yapay zekâ destekli metinden SQL'e dönüştürme asistanları ve GitHub Copilot, SQLite Sütun tanımlarını ve veri türlerini sade İngilizce'den seçin.

SQLite Veri tipleri

Aşağıdaki bölümler nasıl yapılacağını açıklamaktadır. SQLite Veri türlerini ele alan bu kitap, beş depolama sınıfıyla başlayıp, tür yakınlığı ve atama kurallarını inceliyor ve son olarak tamsayılar, gerçek sayılar, BLOB'lar, Boole değerleri ve tarihlerin depolanmasına ilişkin örnekler sunuyor.

Veri türleri SQLite Diğer veritabanı yönetim sistemlerindekilerden farklıdır. SQLiteVeri türlerini normal şekilde tanımlayabilirsiniz, ancak yine de herhangi bir veri türünde herhangi bir değeri saklayabilirsiniz.

SQLite Veri tipleri sabit değildir; istediğiniz veri türünü herhangi bir sütunda saklayabilirsiniz. Buna dinamik veri tipi denir.ping.

Statik veri tiplerinde, diğer veritabanı yönetim sistemlerinde olduğu gibi, bir sütunu tamsayı veri tipiyle tanımlarsanız, yalnızca tamsayı veri tipindeki değerleri ekleyebilirsiniz. Ancak, dinamik veri tiplerinde, SQLiteSütunun türü, girilen değere göre belirlenir ve daha sonra SQLite türüne bağlı olarak bu değeri saklar.

SQLite Depolama Sınıfları

In SQLite Değer türüne bağlı olarak farklı depolama yöntemleri vardır; bu farklı depolama yöntemlerine depolama sınıfları denir. SQLite.

Aşağıda, şu anda mevcut olan depolama sınıfları listelenmiştir: SQLite:

  • NULL – bu depolama sınıfı herhangi bir NULL değerini depolamak için kullanılır.
  • INTEGER – Herhangi bir sayısal değer, işaretli bir tamsayı değeri olarak saklanır (hem pozitif hem de negatif tamsayı değerleri tutabilir). INTEGER değerleri SQLite Sayının değerine bağlı olarak 1, 2, 3, 4, 6 veya 8 baytlık depolama alanında saklanır.
  • GERÇEK – Bu depolama sınıfı, kayan noktalı değerleri depolamak için kullanılır ve bu değerler 8 baytlık bir alanda saklanır.
  • METİN – Metin dizelerini saklar. Ayrıca UTF-8, UTF-16BE veya UTF-16LE gibi farklı kodlamaları da destekler.
  • BLOB – Görüntü veya metin dosyaları gibi büyük dosyaları depolamak için kullanılır. Değer, giriş değeriyle aynı şekilde bir bayt dizisi olarak saklanır.

SQLite Yakın İlgi Alanı Türü

Veri türü yakınlığı, bir sütunda saklanması önerilen veri türüdür. Ancak, dilediğiniz herhangi bir veri türünü de saklayabilirsiniz; bu türler önerilir, zorunlu değildir.

Bu türler tanıtıldı SQLite arasındaki uyumluluğu en üst düzeye çıkarmak için SQLite ve diğeri veritabanı Yönetim sistemis.

Bir sütunda bildirilen herhangi bir sütun SQLite Veritabanına, belirtilen veri türüne bağlı olarak bir tür yakınlığı atanır. İşte tür yakınlıklarının listesi: SQLite:

  • METİN.
  • SAYISAL.
  • TAM SAYI.
  • GERÇEK.
  • BLOB.

İşte nasıl SQLite Bir sütunun veri türüne göre hangi türe bağlı olduğunu belirler:

  • Bildirilen tür aşağıdakileri içeriyorsa INTEGER benzeşimi atanır: dizi “INT”.
  • Sütun veri türünde "TEXT", "CHAR" veya "CLOB" dizelerinden birini içeriyorsa, TEXT uyumluluğu atanır. Örneğin, VARCHAR türüne TEXT uyumluluğu atanacaktır.
  • Sütunun türü belirtilmemişse veya veri türü bir BLOB ise BLOB benzeşimi atanır.
  • Eğer tür "DOUB", "REAL" veya "FLOAT" dizelerinden birini içeriyorsa, "REAL" uyumluluğu atanır.
  • NUMERIC benzeşimi diğer herhangi bir veri türü için atanır.

Aşağıda haritanın bazı örneklerini gösteren bir tablo da bulunmaktadır.ping arasında SQLite veri türleri ve bunların benzerlikleri bu kurallarla belirlenir:

Haritaping arasında SQLite INT, CHAR, TEXT, BLOB, REAL, FLOAT ve NUMERIC veri tipleri ve bunlara atanmış tür yakınlıkları örneklerini göstererek açıklanmıştır.

Veri türlerinin saklanmasına örnekler SQLite

Sayıları depolamak SQLite INTEGER

Eğer herhangi bir sütunda "INT" kelimesini içeren bir veri türü varsa, bu sütuna INTEGER türü atanacak ve INTEGER depolama sınıfında saklanacaktır.

Aşağıdaki veri tiplerinin tümüne INTEGER tipi uyumluluğu atanmıştır:

  • INT, TAM SAYI, BÜYÜK.
  • INT2, INT4, INT8.
  • TINYINT, SMALLINT, MEDIUMINT.

INTEGER türü benzeşimi SQLite 1 bayttan en fazla 8 bayta kadar, atanan herhangi bir tamsayıyı (pozitif veya negatif) saklayabilir.

Sayıları depolamak SQLite GERÇEK

Gerçek sayılar, çift hassasiyetli kayan noktalı sayılardır. SQLite Gerçek sayıları 8 baytlık bir dizi olarak saklar. İşte veri türlerinin listesi: SQLite GERÇEK sayıları depolamak için kullanabileceğiniz:

  • GERÇEK.
  • ÇİFT.
  • ÇİFT HASSASİYET.
  • BATMADAN YÜZMEK.

Büyük verileri depolamak SQLite BLOB

Büyük dosyaları saklamanın tek bir yolu var. SQLite Veritabanı, BLOB veri tipini kullanıyor. Bu veri tipi, resimler veya herhangi bir türdeki dosyalar gibi büyük dosyaları depolamak için kullanılır. Dosya bir bayt dizisine dönüştürülür ve ardından giriş dosyasıyla aynı boyutta saklanır.

saklama SQLite Booleans

SQLite Ayrı bir BOOLEAN depolama sınıfı bulunmamaktadır. Bunun yerine, BOOLEAN değerleri tamsayılar olarak saklanır; 0 yanlış, 1 ise doğru anlamına gelir.

saklama SQLite tarihler ve saatler

Tarih veya tarih-saat kombinasyonlarını şu şekilde tanımlayabilirsiniz: SQLite Aşağıdaki veri türlerinden birini kullanarak:

  • TARİH
  • tarih saat
  • TIMESTAMP
  • ZAMAN

DATE veya DATETIME için ayrı bir depolama sınıfı bulunmadığını lütfen unutmayın. SQLiteBunun yerine, önceki veri türlerinden biriyle tanımlanan tüm değerler, eklenen değerin tarih biçimine bağlı olarak aşağıdaki gibi bir depolama sınıfında saklanır:

  • METİN – Tarih değerini ISO8601 formatında (“YYYY-MM-DD HH:MM:SS.SSS”) girerseniz.
  • GERÇEK – Tarih değerini Jülyen gün numarası olarak girerseniz, bu değer MÖ 24 Kasım 4714 tarihinde Greenwich'te öğlen vaktinden bu yana geçen gün sayısıdır. Tarih değeri daha sonra REAL olarak saklanır.
  • INTEGER - gibi Unix Zaman, 1970-01-01 00:00:00 UTC'den bu yana geçen saniye sayısı.

SSS

Bir depolama sınıfı şöyledir: SQLite Bir sütunun fiziksel olarak sakladığı değer NULL, INTEGER, REAL, TEXT veya BLOB'dur; bu değer, çalışma zamanında her değer için ayrı ayrı belirlenir. Tür yakınlığı, bir sütunun tercih ettiği sınıftır ve bu sınıf, beyan edilen tür adından seçilir. SQLite Başvurmaya çalışıyor.

Hayır. SQLite Parantez içindeki sayıyı yok sayar, bu nedenle VARCHAR(50) ve VARCHAR aynı şekilde davranır. Her ikisi de tür adında CHAR bulunduğu için TEXT uyumluluğu alır ve SQLite SQLITE_MAX_LENGTH global değeri dışında herhangi bir uzunluk sınırlaması getirmez.

SELECT typeof(column) FROM table gibi bir sorguda typeof() fonksiyonunu kullanın. Bu fonksiyon, değerin gerçek depolama sınıfını (null, integer, real, text veya blob) döndürür; bu sınıf, dinamik tür nedeniyle sütunun belirtilen türünden farklı olabilir.ping.

Katı tablolar eklendi SQLite 3.37, tür yakınlığını kapatın ve bir sütunun tanımlanmış türüyle eşleşmeyen tüm değerleri reddedin. Yalnızca INT, INTEGER, REAL, TEXT, BLOB ve ANY'ye izin verilir, bu da katı bir tür yakınlığı sağlar.ping Diğer veritabanlarında da bulunabilir.

Para birimini, gerçek ondalık sayılardaki yuvarlama hatalarını önlemek için sent gibi en küçük birimde bir tamsayı olarak saklayın. Değişken veya çok yüksek hassasiyet için, TEXT tam sayı dizesini korur. SQLite Sabit faizli para birimi türü bulunmamaktadır.

SQLITE_MAX_LENGTH ayarı, bir TEXT veya BLOB değerini sınırlandırır ve varsayılan olarak bir milyar bayta ayarlanır. Mevcut uygulama 2,147,483,647 bayta kadar desteklemektedir. Gerektiğinde, çalışma zamanında sqlite3_limit() arayüzü ile sınırı düşürebilirsiniz.

Evet. Yapay zekâ destekli metinden SQL'e dönüştürme asistanları, sade İngilizce bir açıklamayı CREATE TABLE ifadelerine dönüştürerek seçim yapar. SQLite INTEGER, TEXT ve REAL gibi depolama sınıfları ve yakınlıkları. Mevcut sütun türlerinin sağlanması doğruluğu artırır ve oluşturulan SQL kodu çalıştırılmadan önce incelenmelidir.

Evet. GitHub Yardımcı Pilotu sütun tanımlarını önerir SQLite INTEGER, TEXT, REAL ve BLOB gibi veri tipleri, aşağıdaki gibi editörlerde satır içi olarak kullanılabilir: VS CodeÇevredeki şema ve geçiş kodunu okuduğu için, tamamlama işlemleri gerçek tablo ve sütun adlarınızı yeniden kullanır.

Bu yazıyı şu şekilde özetleyin: