# SQLite 數據類型
SQLite 數據類型是一個用來指定任何對象的數據類型的屬性。SQLite 中的每一列,每個變量和表達式都有相關的數據類型。
您可以在創建表的同時使用這些數據類型。SQLite 使用一個更普遍的動態類型系統。在 SQLite 中,值的數據類型與值本身是相關的,而不是與它的容器相關。
## SQLite 存儲類
每個存儲在 SQLite 數據庫中的值都具有以下存儲類之一:
| 存儲類 | 描述 |
| --- | --- |
| NULL | 值是一個 NULL 值。 |
| INTEGER | 值是一個帶符號的整數,根據值的大小存儲在 1、2、3、4、6 或 8 字節中。 |
| REAL | 值是一個浮點值,存儲為 8 字節的 IEEE 浮點數字。 |
| TEXT | 值是一個文本字符串,使用數據庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲。 |
| BLOB | 值是一個 blob 數據,完全根據它的輸入存儲。 |
SQLite 的存儲類稍微比數據類型更普遍。INTEGER 存儲類,例如,包含 6 種不同的不同長度的整數數據類型。
## SQLite Affinity 類型
SQLite 支持列上的_類型 affinity_ 概念。任何列仍然可以存儲任何類型的數據,但列的首選存儲類是它的 **affinity**。在 SQLite3 數據庫中,每個表的列分配為以下類型的 affinity 之一:
| Affinity | 描述 |
| --- | --- |
| TEXT | 該列使用存儲類 NULL、TEXT 或 BLOB 存儲所有數據。 |
| NUMERIC | 該列可以包含使用所有五個存儲類的值。 |
| INTEGER | 與帶有 NUMERIC affinity 的列相同,在 CAST 表達式中帶有異常。 |
| REAL | 與帶有 NUMERIC affinity 的列相似,不同的是,它會強制把整數值轉換為浮點表示。 |
| NONE | 帶有 affinity NONE 的列,不會優先使用哪個存儲類,也不會嘗試把數據從一個存儲類強制轉換為另一個存儲類。 |
## SQLite Affinity 及類型名稱
下表列出了當創建 SQLite3 表時可使用的各種數據類型名稱,同時也顯示了相應的應用 Affinity:
| 數據類型 | Affinity |
| --- | --- |
| INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 | INTEGER |
| CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB | TEXT |
| BLOB "no datatype specified" | NONE |
| REAL DOUBLE DOUBLE PRECISION FLOAT | REAL |
| NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME | NUMERIC |
## Boolean 數據類型
SQLite 沒有單獨的 Boolean 存儲類。相反,布爾值被存儲為整數 0(false)和 1(true)。
## Date 與 Time 數據類型
SQLite 沒有一個單獨的用于存儲日期和/或時間的存儲類,但 SQLite 能夠把日期和時間存儲為 TEXT、REAL 或 INTEGER 值。
| 存儲類 | 日期格式 |
| --- | --- |
| TEXT | 格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。 |
| REAL | 從公元前 4714 年 11 月 24 日格林尼治時間的正午開始算起的天數。 |
| INTEGER | 從 1970-01-01 00:00:00 UTC 算起的秒數。 |
您可以以任何上述格式來存儲日期和時間,并且可以使用內置的日期和時間函數來自由轉換不同格式。
- SQL基礎
- SQL 簡介
- SQL 語法
- SQL SELECT 語句
- SQL SELECT DISTINCT 語句
- SQL WHERE 子句
- SQL AND & OR 運算符
- SQL ORDER BY 子句
- SQL INSERT INTO 語句
- SQL UPDATE 語句
- SQL DELETE 語句
- SQL高級
- SQL TOP 子句
- SQL LIKE 操作符
- SQL 通配符
- SQL IN 操作符
- SQL BETWEEN 操作符
- SQL Alias(別名)
- SQL JOIN
- SQL INNER JOIN 關鍵字
- SQL LEFT JOIN 關鍵字
- SQL RIGHT JOIN 關鍵字
- SQL FULL JOIN 關鍵字
- SQL UNION 和 UNION ALL 操作符
- SQL SELECT INTO 語句
- SQL CREATE DATABASE 語句
- SQL CREATE TABLE 語句
- SQL 約束 (Constraints)
- SQL NOT NULL 約束
- SQL UNIQUE 約束
- SQL PRIMARY KEY 約束
- SQL FOREIGN KEY 約束
- SQL CHECK 約束
- SQL DEFAULT 約束
- SQL CREATE INDEX 語句
- SQL 撤銷索引、表以及數據庫
- SQL ALTER TABLE 語句
- SQL AUTO INCREMENT 字段
- SQL VIEW(視圖)
- SQL函數
- SQL Date 函數
- SQL NULL 值
- SQL NULL 函數
- SQL 數據類型
- SQL 服務器 - RDBMS
- SQL 函數
- SQL AVG 函數
- SQL COUNT() 函數
- SQL FIRST() 函數
- SQL LAST() 函數
- SQL MAX() 函數
- SQL MIN() 函數
- SQL SUM() 函數
- SQL GROUP BY 語句
- SQL HAVING 子句
- SQL UCASE() 函數
- SQL LCASE() 函數
- SQL MID() 函數
- SQL LEN() 函數
- SQL ROUND() 函數
- SQL NOW() 函數
- SQL FORMAT() 函數
- SQL 快速參考
- SQLite 基礎
- SQLite 簡介
- SQLite 安裝
- SQLite 命令
- SQLite 語法
- SQLite 數據類型
- SQLite 創建數據庫
- SQLite 附加數據庫
- SQLite 分離數據庫
- SQLite 創建表
- SQLite 刪除表
- SQLite Insert 語句
- SQLite Select 語句
- SQLite 運算符
- SQLite 表達式
- SQLite Where 子句
- SQLite AND/OR 運算符
- SQLite Update 語句
- SQLite Delete 語句
- SQLite Like 子句
- SQLite Glob 子句
- SQLite Limit 子句
- SQLite Order By
- SQLite Group By
- SQLite Having 子句
- SQLite Distinct 關鍵字
- SQLite 高級
- SQLite PRAGMA
- SQLite 約束
- SQLite Joins
- SQLite Unions 子句
- SQLite NULL 值
- SQLite 別名
- SQLite 觸發器(Trigger)
- SQLite 索引(Index)
- SQLite Indexed By
- SQLite Alter 命令
- SQLite Truncate Table
- SQLite 視圖(View)
- SQLite 事務(Transaction)
- SQLite 子查詢
- SQLite Autoincrement(自動遞增)
- SQLite 注入
- SQLite Explain(解釋)
- SQLite Vacuum
- SQLite 日期 & 時間
- SQLite 常用函數
- SQLite 接口
- SQLite - C/C++
- SQLite - Java
- SQLite - PHP
- SQLite - Perl
- SQLite - Python
- MySQL 教程
- MySQL 教程
- MySQL 安裝
- MySQL 管理
- MySQL PHP 語法
- MySQL 連接
- MySQL 創建數據庫
- MySQL 刪除數據庫
- MySQL 選擇數據庫
- MySQL 數據類型
- MySQL 創建數據表
- MySQL 刪除數據表
- MySQL 插入數據
- MySQL 查詢數據
- MySQL where 子句
- MySQL UPDATE 查詢
- MySQL DELETE 語句
- MySQL LIKE 子句
- MySQL 排序
- Mysql Join的使用
- MySQL NULL 值處理
- MySQL 正則表達式
- MySQL 事務
- MySQL ALTER命令
- MySQL 索引
- MySQL 臨時表
- MySQL 復制表
- MySQL 元數據
- MySQL 序列使用
- MySQL 處理重復數據
- MySQL 及 SQL 注入
- MySQL 導出數據
- MySQL 導入數據
- 免責聲明