- 简介
SQLite 是一种轻型嵌入式关系型数据库,它包含在一个相对小的 C 库中。SQLite 占用资源低,处理速度快,它支持 Windows、Linux、Unix 等多种主流操作系统,支持 Python、Java、C# 等多种语言,目前的版本已经发展到了 SQLite3
SQLite 是一个进程内的库,它实现了自给自足、无服务器、无需配置、支持事务。Python 可以通过 sqlite3 模块与 SQLite3 集成,Python 2.5.x 以上版本内置了 sqlite3 模块,因此,我们在 Python 中可以直接使用 SQLite
# 导入SQLite驱动:
>>> import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
>>> conn = sqlite3.connect('test.db')
# 创建一个Cursor:
>>> cursor = conn.cursor()
# 执行一条SQL语句,创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.Cursor object at 0x10f8aa260>
# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.Cursor object at 0x10f8aa260>
# 通过rowcount获得插入的行数:
>>> cursor.rowcount
1
# 关闭Cursor:
>>> cursor.close()
# 提交事务:
>>> conn.commit()
# 关闭Connection:
>>> conn.close()
>>> conn = sqlite3.connect('test.db')
>>> cursor = conn.cursor()
# 执行查询语句:
>>> cursor.execute('select * from user where id=?', ('1',))
<sqlite3.Cursor object at 0x10f8aa340>
# 获得查询结果集:
>>> values = cursor.fetchall()
>>> values
[(u'1', u'Michael')]
>>> cursor.close()
>>> conn.close()
-
SQLite 数据类型
在介绍使用之前,我们先了解下 SQLite 数据类型。
-
SQLite 采用动态数据类型,也就是说数据的类型取决于数据本身。
-
存储类型
存储类型就是数据保存成文件后的表现形式,存储类型有 5 种,如下所示
-
类型 描述 NULL 空值 INTEGER 有符号的整数类型 REAL 浮点数类型 TEXT 字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储 BLOB 二进制表示 -
亲和类型
亲和类型简单来说就是数据表列的数据对应存储类型的倾向性,当数据插入时,字段的数据将会优先采用亲缘类型作为值的存储方式,同样有 5 种,如下所示:
-
类型 描述 NONE 不做任何转换,直接以该数据所属的数据类型进行存储 NUMERIC 该列可以包含使用所有五个存储类型的值 INTEGER 类似于 NUMERIC,区别是在执行 CAST 表达式时 TEXT 该列使用存储类型 NULL、TEXT 或 BLOB 存储数据 REAL 类似于 NUMERIC,区别是它会强制把整数值转换为浮点类型 -
声明类型
声明类型也就是我们写 SQL 时字段定义的类型,我们看一下常用的声明类型与亲和类型的对应关系。
-
声明类型 亲和类型 INT/INTEGER/TINYINT/BIGINT INTEGER VARCHAR/TEXT/CLOB TEXT BLOB NONE DOUBLE/FLOAT REAL DECIMAL/BOOLEAN/DATE/DATETIME NUMERIC