SQLite学习笔记1

来源:互联网 发布:一卡多号软件下载 编辑:程序博客网 时间:2024/04/28 15:27

SQLite  D. Richard Hipp  C 语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性。它是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括Google在内的公司在其桌面软件中亦使用 sqlite 存储用户数据。它支持多数SQL92标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。


SQLite *** SQLite *** 
1
、零配置无需安装和管理配置
2
、存储在单一磁盘文件中的一个完整的数据
3
、数据库文件可以在不同字节顺序的机器间自由
共享
4
、支持数据库大小至2TB5、比目前流行的大多数据库运行速度快
6
、提供了对事务功能和并发处理的支持


  技术上的优点和特性
  SQLite是一个轻量级、跨平台的关系型数据库。既然号称关系型数据库,支持SQL92标准中常用的玩意儿(比如视图、事务、触发器等)就是理所当然的了,咱今天就不细说了。今天主要聊聊一些有点特色的玩意儿。

  轻量级
  先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的羽毛,来显摆它的轻飘飘。
  SQLiteC/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows487KBLinux347KB

  绿色软件
  SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要安装。所以在部署的时候能够省去不少麻烦。

  单一文件
  所谓的单一文件,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。

  跨平台/可移植性
  如果光支持主流操作系统,那就没啥好吹嘘的了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如AndroidWindows MobileSymbinPalmVxWorks等)的支持。

  内存数据库(in-memory database
  这年头,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存(服务器就更甭提了)。这时候,SQLite的内存数据库特性就越发显得好用。
  SQLiteAPI不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换的时候,操作SQLite的代码基本不用大改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。在这种情况下,前面提到的“online backup API”就派上用场了,聪明的同学应该明白我为啥这么期待backup功能了吧?


SQLite最大的特点在于其数据类型可为无数据类型。保存任何类型的数据到所想要保存的任何表的任何列中,无论这列声明的数据类型是什么。虽然在生成表结构的时候,要声明每个域的数据类型,但SQLite并不做任何检查。开发人员要靠自己的程序来控制输入与读出数据的类型。但是主键例外。


1、从http://www.sqlite.org/download.html下载最新版本:有好几个版本,要注意选好了。在linux下就选Source Code里面的sqlite-amalgamation-3.6.17.tar.gz包就可以了,不用选支持Tcl的(Tcl/Tk是一种跨平台脚本语言),对于windows下使用的话可以选择Precompiled Binaries For Windows里面的sqlite- 3.6.17.zip包。


Windows下很简单,直接解压后可以看到一个sqlite3.exe可执行文件,执行这个文件就OK了!Linux下同样简单:


#./configure&&make&&make install


注意不要下载Tcl的版本,否则可能出现编译错误的问题。


#sqlite3


如果看到sqlite的提示符:sqlite>说明安装成功。


这个独立的可执行文件是sqlite的命令行工具。但是如果要开发基于sqlite的程序的话还必须下几个文件:sqlitedll- 3.6.17.zip这个是SQLiteWindows下的库文件,sqlite-source- 3.6.17.zip这个是SQLitewindows下源码文件。由于sqlite只提供了DLLDEF文件,开发起来并不方便,所以要自己生成lib文件,这可以利用VS里面的工具LIB.exe来实现。


2、解压sqlitedll- 3.6.17.zip把得到的sqlite3.defsqlite3.dll拷贝到~\Microsoft Visual Studio 9.0\VC\bin下面,然后在DOS命令提示符下进入到\Microsoft Visual Studio 9.0\VC\bin目录下,执行LIB /DEF:sqlite3.def /machine:IX86,如果出现mspdb80.dll找不到的情况,Common7\IDE\下复制msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exeVC\Bin\下即可解决。随后就生成了可以使用的sqlite3.libsqlite3.exp了。


3sqlite3的基本使用:


创建数据库:#sqlite3 d:\test.db;这样就在D盘生成了一个test.db数据库,同时也使sqlite3挂上了这个test.db


查看创建的表格:.table


查看表的结构:.schema


查看目前挂的数据库:.database


把查询输出到文件:.output 文件名 查询语句;


把查询输出到屏幕:.output stdout


把表格结构输出,同时索引也输出:.dump 表名

0 0