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: