SQLite介绍
SQLite 是一个实现自我依赖、纯客户端、零配置且支持事务的数据库引擎。
在使用的过程中,也无需创建用户和划分权限,SQLite 没有用户以及账户概念,而是根据文件系统确定所有数据库的权限
弱类型:和大多数支持静态类型的数据库不同的是,SQLite中的数据类型被视为数值的一个属性。因此对于一个数据表列而言,即便在声明该表时给出了该列的类型,我们在插入数据时仍然可以插入任意类型,
SQLite文件
sqlite3.exe 是SQLite数据库引擎,命令行工具,可以实现SQLite 各项基本操作
sqlite3_analyzer.exe 是SQLite数据库分析器,命令行数据库分析器,该分析器允许显示关于任何 SQLite 数据库当前状态的详细信息。
sqlite3.dll : 动态连接库文件,提供了标准API函数,需要编程调用,经过编译的软件可以动态链接到SQLite,这意味着需要SQLite功能是,应用程序会加载DLL,而不是将SQLite代码嵌入到应用程序。
数据库配置
SQLite没有配置文件,所有的配置都是使用编译指令来实验<pragma>,包括了运行信息等
控制字符串如何编码及存储在数据库文件中
sqlite编码方式由pragma encoding设定,只有以下几种
PRAGMA encoding; --查询当前编码方式,默认utf8
PRAGMA encoding = "UTF-8";
PRAGMA encoding = "UTF-16";
PRAGMA encoding = "UTF-16le";
PRAGMA encoding = "UTF-16be";
如果文件路径出现中文,就会导致打开失败.sqlite数据库使用的是UTF-8编码方式,而传入的字符串是ASCII编码或Unicode编码,导致字符串格式错误。解决方案是在调用sqlite接口之前,先将字符串转换成UTF-8编码,各种字符串编码转换函数。
常见命令
创建命令
创建数据库:
1. D:\>sqlite3 test.db
创建表
2. sqlite> CREATE TABLE person (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), age SMALLINT);
查看命令
.databases 命令用来查看当前所有数据库
sqlite> .databases
seq name file
--- --------------- ----------------------------------------------------------
0 main /home/yu/sqlite/test.db
1 temp
.tables 命令用来查看当前数据库的所有数据表
sqlite> .tables
data_txt_table
sqlite>
.schema 命令来查看指定的数据表的结构
sqlite> .schema data_txt_table
CREATE TABLE data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
sqlite>
select查看具体的数据
sqlite> select * from data_txt_table limit 3;
数据的导入和导出
数据的导入
1. 首先,确定导入的数据源,这里是待导入的,按固定格式的文本文件。
2. 然后,依照导入的文件格式,确定想导入的目标数据表,这个数据表如果没有,可以依照待导入的文本文件格式,创建一个相对应的数据表。
3. 最后,执行.import命令,将文本文件中数据导入数据表中。
从.sql文件导入数据:
1. sqlite> .read test.sql
从文本文件导入
sqlite> .import data.txt data_txt_table
数据导出
导出数据
sqlite> .output data.sql
数据库导出
qlite$ sqlite3 test.db ".dump" | sqlite3 test2.db
SQLite 数据类型
SQLite 数据类型是一个用来指定任何对象的数据类型的属性
存储类
SQLite Affinity :
Boolean 数据类型:SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)
Date 与 Time 数据类型:无单独类型,QLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。
其他
SQLite源代码
SQLite设计与概念:核心 C API以及扩展C API