หลังจากไม่ได้ใช้ SQLite มา หลายปี พอมาเรียนอีกรอบ เลยมา Recap นิดหน่อย ตาม Code ด้านล่างเลยครับ
CREATE TABLE example_table ( id INTEGER PRIMARY KEY AUTOINCREMENT, -- Integer data type, auto-incremented text_column TEXT, -- Text data type integer_column INTEGER, -- Integer data type real_column REAL, -- Real number (floating point) data type blob_column BLOB, -- Blob data type for storing binary data numeric_column NUMERIC, -- Numeric data type, can store numbers with decimal points date_column DATE, -- Date data type (formatted as 'YYYY-MM-DD') datetime_column DATETIME -- DateTime data type (formatted as 'YYYY-MM-DD HH:MM:SS') ); -- Insert example data INSERT INTO example_table (text_column, integer_column, real_column, blob_column, numeric_column, date_column, datetime_column) VALUES ( 'Example Text', 123, 456.78, x'62696E6172792064617461', -- Binary data as hexadecimal string 789.01, '2025-01-25', '2025-01-25 04:25:25' ); -- Query to verify the insert SELECT * FROM example_table;
ปกติแล้ว SQLite จะมีสิ่งทีเรียกว่า Storage Class เข้ามา Handle Data Type ตามนี้
- NULL
- INTEGER signed integer โดยเก็บในรูปตัวเลข หรือ 8 bytes
- REAL เก็บ floating point value จัดเก็บในรูปแบบ 8-byte IEEE floating point number.
- TEXT เก็บตัวอักษรตาม database encoding (UTF-8, UTF-16BE or UTF-16LE).
- BLOB The value is a blob of data, stored exactly as it was input.
สำหรับ DateTime เราสร้าง ใน SQLite มันมองเหมือนเป็น Enum แล้วมี Function Date แปลง โดยจริงๆแล้วเก็บในรูปแบบ
- TEXT กำหนด Format ตาม ISO8601 "YYYY-MM-DD HH:MM:SS.SSS"
- REAL เก็บเป็นจำนวนวัน แบบ Julian day numbers (JDN) โดยเริ่มจากหลังเที่ยง Greenwich November 24, 4714 B.C.
- INTEGER เก็บ Unix Time, the number of seconds โดยวันแรกจะนับจาก 1970-01-01 00:00:00 UTC.
อีก Type ที่น่าสนใจ Boolean มันจะมองในรูปแบบ INTEGER 0 / 1 และตัว SQLite จะแปลง "TRUE" and "FALSE"
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.