一、数据类型

1、基本介绍  来自SQLite数据类型-开源中国

(1)大多数 SQL 数据库引擎 (据我们所知,除 SQLite 之外的所有 SQL 数据库引擎)都使用严格的静态类型。使用静态类型,值的类型便由它的容器 -- 存储值的特定的列 -- 来决定。

(2)SQLite 使用更通用的动态类型系统。在 SQLit 中,值的数据类型与值本身相关,而不是与它的容器。SQLite 的动态类型系统与其它数据库引擎的常用静态类型系统是向后兼容的,在这个意义上,工作在静态类型数据库上的 SQL 语句应该以同样的方式工作在 SQLite 中。然而,SQLite 中的动态类型允许它做传统的严格类型的数据库所不能做的事。

2、SQLite 所有存储类如下

存储类描述
NULL值是一个 NULL 值。
INTEGER值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
TEXT值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB值是一个 blob 数据,完全根据它的输入存储。

3、SQLite 亲和(Affinity)类型

SQLite支持列的亲和类型概念。任何列仍然可以存储任何类型的数据,当数据插入时,该字段的数据将会优先采用亲缘类型作为该值的存储方式。SQLite目前的版本支持以下五种亲缘类型


下表列出了当创建 SQLite3 表时可使用的各种数据类型名称,同时也显示了相应的亲和类型:4、SQLite 亲和类型(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

NUMERI

5、Boolean 数据类型

SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。

6、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 算起的秒数。

 

二、创建数据库一般流程

1、创建数据库

(1)创建名为my的数据库

//
$sqlite3 my.db
//

(2) 用.databases 命令来检查它是否在数据库列表中

//
sqlite>.databases
//

(3)如果不进行下面操作,可以使用 SQLite .quit 命令退出 sqlite 提示符,如下所示:

//
sqlite>.quit
//

2、数据库中创建表

(1)创建了一个USER 表,ID 作为主键,NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL:

//
sqlite> CREATE TABLE USER(
   ID INT PRIMARY KEY       NOT NULL,
   UID            CHAR(20)  NOT NULL,
   NAME           CHAR(20),
   SID            CHAR(20),
   NPW            CHAR(20)  NOT NULL,
   CPW            CHAR(20)
);
//

 

(2) .tables 命令来验证表是否已成功创建,该命令用于列出附加数据库中的所有表,如下图

 

(3) .schema 命令得到表的完整信息,如下所示:

3、往表中插入一条信息

(1)插入语法如下

//
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
//

(2)如在之前创建的table中插入一条信息如下:

//
INSERT INTO USER VALUES (0,'18435137036','xiaowang','1305014341','123456','123456');
//

4、用SELECT语句获取显示TABLE中的记录

(1)语句如下

//
sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM USER;
//

(2)结果如下

 

致谢

1、SQLite 教程(runoob)

2、SQLite官网

3、SQLite数据类型-开源中国

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐