SQLite - ประเภทข้อมูล

ชนิดข้อมูล SQLite เป็นแอตทริบิวต์ที่ระบุชนิดของข้อมูลของวัตถุใด ๆ แต่ละคอลัมน์ตัวแปรและนิพจน์มีชนิดข้อมูลที่เกี่ยวข้องใน SQLite

คุณจะใช้ชนิดข้อมูลเหล่านี้ในขณะสร้างตารางของคุณ SQLite ใช้ระบบประเภทไดนามิกทั่วไปมากขึ้น ใน SQLite ประเภทข้อมูลของค่าจะเชื่อมโยงกับค่าเองไม่ใช่กับคอนเทนเนอร์

คลาสพื้นที่จัดเก็บ SQLite

แต่ละค่าที่จัดเก็บในฐานข้อมูล SQLite มีคลาสหน่วยเก็บข้อมูลต่อไปนี้ -

ซีเนียร์ ประเภทการจัดเก็บและคำอธิบาย
1

NULL

ค่านี้เป็นค่า NULL

2

INTEGER

ค่านี้เป็นจำนวนเต็มที่มีลายเซ็นซึ่งเก็บไว้ใน 1, 2, 3, 4, 6 หรือ 8 ไบต์ขึ้นอยู่กับขนาดของค่า

3

REAL

ค่านี้เป็นค่าทศนิยมที่จัดเก็บเป็นเลขทศนิยม 8 ไบต์ IEEE

4

TEXT

ค่านี้เป็นสตริงข้อความที่จัดเก็บโดยใช้การเข้ารหัสฐานข้อมูล (UTF-8, UTF-16BE หรือ UTF-16LE)

5

BLOB

ค่านี้เป็นหยดข้อมูลที่จัดเก็บไว้ตรงตามที่ป้อนข้อมูล

คลาสหน่วยเก็บข้อมูล SQLite นั้นกว้างกว่าประเภทข้อมูลเล็กน้อย ตัวอย่างเช่นคลาสหน่วยเก็บข้อมูล INTEGER มีประเภทข้อมูลจำนวนเต็ม 6 ชนิดที่มีความยาวต่างกัน

SQLite Affinity Type

SQLite สนับสนุนแนวคิดของ type affinityบนคอลัมน์ คอลัมน์ใด ๆ ยังคงสามารถจัดเก็บข้อมูลประเภทใดก็ได้ แต่คลาสพื้นที่เก็บข้อมูลที่ต้องการสำหรับคอลัมน์นั้นเรียกว่าaffinity. แต่ละคอลัมน์ของตารางในฐานข้อมูล SQLite3 ได้รับการกำหนดความสัมพันธ์ประเภทใดประเภทหนึ่งต่อไปนี้ -

ซีเนียร์ ผู้สนใจและคำอธิบาย
1

TEXT

คอลัมน์นี้เก็บข้อมูลทั้งหมดโดยใช้คลาสการจัดเก็บ NULL, TEXT หรือ BLOB

2

NUMERIC

คอลัมน์นี้อาจมีค่าโดยใช้คลาสพื้นที่เก็บข้อมูลทั้งห้าคลาส

3

INTEGER

ทำงานเหมือนกับคอลัมน์ที่มีความสัมพันธ์แบบ NUMERIC โดยมีข้อยกเว้นในนิพจน์ CAST

4

REAL

ทำตัวเหมือนคอลัมน์ที่มีความสัมพันธ์แบบ NUMERIC ยกเว้นว่าจะบังคับให้ค่าจำนวนเต็มเป็นการแสดงจุดลอยตัว

5

NONE

คอลัมน์ที่มีความสัมพันธ์ NONE ไม่ชอบคลาสหน่วยเก็บข้อมูลหนึ่งมากกว่าอีกคลาสหนึ่งและไม่มีความพยายามที่จะบังคับข้อมูลจากคลาสหน่วยเก็บหนึ่งไปยังอีกคลาสหนึ่ง

SQLite Affinity และ Type Names

ตารางต่อไปนี้แสดงชื่อชนิดข้อมูลต่างๆซึ่งสามารถใช้ในขณะสร้างตาราง SQLite3 ด้วยความสัมพันธ์ที่ใช้ที่สอดคล้องกัน

ประเภทข้อมูล ความสัมพันธ์กัน
  • INT
  • INTEGER
  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • BIGINT
  • INT ขนาดใหญ่ที่ไม่ได้ลงนาม
  • INT2
  • INT8
จำนวนเต็ม
  • CHARACTER(20)
  • VARCHAR(255)
  • ตัวละครที่แตกต่างกัน (255)
  • NCHAR(55)
  • ตัวละครธรรมชาติ (70)
  • NVARCHAR(100)
  • TEXT
  • CLOB
TEXT
  • BLOB
  • ไม่ได้ระบุประเภทข้อมูล
ไม่มี
  • REAL
  • DOUBLE
  • ความแม่นยำสองเท่า
  • FLOAT
จริง
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
NUMERIC

ประเภทข้อมูลบูลีน

SQLite ไม่มีคลาสหน่วยเก็บข้อมูลบูลีนแยกต่างหาก แต่ค่าบูลีนจะถูกเก็บเป็นจำนวนเต็ม 0 (เท็จ) และ 1 (จริง)

ประเภทข้อมูลวันที่และเวลา

SQLite ไม่มีคลาสพื้นที่จัดเก็บแยกต่างหากสำหรับจัดเก็บวันที่และ / หรือเวลา แต่ SQLite สามารถจัดเก็บวันที่และเวลาเป็นค่า TEXT, REAL หรือ INTEGER

ซีเนียร์ คลาสการจัดเก็บและรูปแบบวันที่
1

TEXT

วันที่ในรูปแบบเช่น "YYYY-MM-DD HH: MM: SS.SSS"

2

REAL

จำนวนวันนับตั้งแต่เที่ยงในกรีนิชวันที่ 24 พฤศจิกายน 4714 ปีก่อนคริสตกาล

3

INTEGER

จำนวนวินาทีตั้งแต่ 1970-01-01 00:00:00 UTC

คุณสามารถเลือกจัดเก็บวันที่และเวลาในรูปแบบเหล่านี้และแปลงระหว่างรูปแบบได้อย่างอิสระโดยใช้ฟังก์ชันวันที่และเวลาในตัว