一、Sqlite简介
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。
SQLite是一款轻量级的、基于文件的嵌入式数据库,实现自包容、零配置、支持事务的SQL数据库引擎。与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。第一个Alpha版本诞生于2000年5月,直到今天已经成为最流行的嵌入式数据库,包括Google在内的许多公司在其桌面软件中亦使用SQLite存储用户数据,由此看来,其稳定性毋庸置疑。
实际应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正扮演着越来越重要的角色。和很多其它嵌入式NoSQL数据库(如BerkeleyDB、MemBASE等)不同的是,SQLite支持很多关系型数据库的基本特征,如标准SQL语法、事务、数据表和索引等,这在数据移植、程序演示等应用中有着不可替代的优势。从官方文档中我们可以获悉到,SQLite支持的数据量和运行效率都是非常骄人的,因此在海量数据的解决方案中,SQLite可以作为数据预计算的桥头堡,从而显著减少存储在关系型数据库服务器中的数据数量,最终提高系统的查询效率和运行期效率,同时也可以显著的降低数据备份的磁盘开销。
二、下载
1、在github上下载Sqlite的3.38.0的版本
https://github.com/sqlite/sqlitehttps://github.com/sqlite/sqlite
三、tcl安装及配置
1、tcl简介
TCL是一种很通用的脚本语言,功能强大。最早称为“工具命令语言”"Tool Command Language",但是目前已经不是这个含义,不过我们仍然称呼它TCL,发音为"tickle”。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。
实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
Tcl数据类型简单。对Tcl来说,它要处理的数据只有一种——字符串。Tcl将变量值以字符串的形式进行存储,不关心它的实际使用类型。内嵌的Tk(toolkit)图形工具可以提供简单而又丰富的图形功能,让用户可以轻松的创建简单的图形界面。
Tcl的执行是交互式的,Tcl提供了交互式命令界面,界面有两种:tclsh和wish。tclsh只支持Tcl命令,wish支持Tcl和Tk命令。通过交互界面,我们就可以象执行UNIX shell命令一样,逐条命令执行,并即时得到执行结果。
Tcl/Tk可以提供跨平台的支持。Tcl语言可以运行于绝大多数当今流行的UNIX、WINDOWS和Macintosh等系统上,而且命令通用,只是启动的细节有些不同。
2、tcl下载
(1)、 ActiveTcl8.6.0.0b7.295590-win32-x86_64-threaded.exe
ActiveTcl-8.6.11.1.0000-MSWin32-x64-636b0c37.exehttps://camel-builds.s3.amazonaws.com/ActiveTcl/MSWin32-x64/20210816T194909Z/ActiveTcl-8.6.11.1.0000-MSWin32-x64-636b0c37.exe?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQ5FYQM547I2EFPRW%2F20220312%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220312T125105Z&X-Amz-Expires=21600&X-Amz-SignedHeaders=host&X-Amz-Signature=7797397c34237ae82295879368394b6acdf9365a82512c8efa2c9ab3d03161ffhttps://camel-builds.s3.amazonaws.com/ActiveTcl/MSWin32-x64/20210816T194909Z/ActiveTcl-8.6.11.1.0000-MSWin32-x64-636b0c37.exe?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQ5FYQM547I2EFPRW%2F20220312%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220312T125105Z&X-Amz-Expires=21600&X-Amz-SignedHeaders=host&X-Amz-Signature=7797397c34237ae82295879368394b6acdf9365a82512c8efa2c9ab3d03161ffActiveStatehttps://platform.activestate.com/
3、tcl安装
双击下一步即可
4、tcl配置
1、ActiveTcl8.6.0.0b7.295590的配置
(1)、设置path
添加C:\Tcl\bin
(2)设置TCLDIR
设置TCLDIR为C:\Tcl
2、 ActiveTcl-8.6.11.1.0000的配置
四、编译
1、32位编译
mkdir bld
cd bld
nmake /f ..\sqlite\Makefile.msc TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.c TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.dll TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.exe TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc test TOP=..\sqlite
2、64位编译
mkdir bld
cd bld
nmake /f ..\sqlite\Makefile.msc TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.c TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.dll TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc sqlite3.exe TOP=..\sqlite
nmake /f ..\sqlite\Makefile.msc test TOP=..\sqlite
五、json的存储
1、实例1
sqlite> sqlite3.exe testdb1;
sqlite> create table facts(sentenc JSON);sqlite> insert into facts values(json_object("mascot", "Our mascot is a dolphin name sakila"));
sqlite> SELECT sentenc"$.mascot" FROM facts;
查询结果:
{"mascot":"Our mascot is a dolphin name sakila"}
2、实例2
sqlite> sqlite3.exe testdb2;
sqlite> create table userj(userInfo JSON);sqlite> insert into userj values('{"id":"19", "name":"Lida"}');
sqlite> insert into userj values('{"id":"20", "name":"james"}');
sqlite> select * from userj;
查询结果:
{"id":"19", "name":"Lida"}
{"id":"20", "name":"james"}
sqlite> SELECT json_extract(userInfo,"$.name") FROM userj;
查询结果:
Lida
james