SQLite学习笔记1 点击:411 | 回复:1



xilinxue

    
发表于:2010-02-17 09:33:41
楼主
SQLite 是 D. Richard Hipp 用 C 语言编写的开源嵌入式数据库引擎。它是完全独立的,不具有外部依赖性。它是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括Google在内的公司在其桌面软件中亦使用 sqlite 存储用户数据。它支持多数SQL92标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。
SQLite特 *** SQLite特 ***
1、零配置―无需安装和管理配置
2、存储在单一磁盘文件中的一个完整的数据
3、数据库文件可以在不同字节顺序的机器间自由
共享
4、支持数据库大小至2TB5、比目前流行的大多数据库运行速度快
6、提供了对事务功能和并发处理的支持
  ★技术上的优点和特性
  SQLite是一个轻量级、跨平台的关系型数据库。既然号称关系型数据库,支持SQL92标准中常用的玩意儿(比如视图、事务、触发器等)就是理所当然的了,咱今天就不细说了。今天主要聊聊一些有点特色的玩意儿。

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

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

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

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

  ◇内存数据库(in-memory database)
  这年头,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存(服务器就更甭提了)。这时候,SQLite的内存数据库特性就越发显得好用。
  SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘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这个是SQLite在Windows下的库文件,sqlite-source- 3.6.17.zip这个是SQLite的windows下源码文件。由于sqlite只提供了DLL和DEF文件,开发起来并不方便,所以要自己生成lib文件,这可以利用VS里面的工具LIB.exe来实现。
2、解压sqlitedll- 3.6.17.zip把得到的sqlite3.def和sqlite3.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.exe到VC\Bin\下即可解决。随后就生成了可以使用的sqlite3.lib和sqlite3.exp了。
3、sqlite3的基本使用:
创建数据库:#sqlite3 d:\test.db;这样就在D盘生成了一个test.db数据库,同时也使sqlite3挂上了这个test.db。
查看创建的表格:.table
查看表的结构:.schema
查看目前挂的数据库:.database
把查询输出到文件:.output 文件名 查询语句;
把查询输出到屏幕:.output stdout
把表格结构输出,同时索引也输出:.dump 表名


楼主最近还看过

SSI ļʱ