首页 > 代码库 > SQLite学习心得

SQLite学习心得

   SQLite是一款很有名气的小型开源跨平台数据库,作为目前最流行的开源嵌入式关系型数据库,在系统结构设计中正在扮演着越来越重要的角色。

   本文主要沿着 http://www.cppblog.com/weiym/archive/2012/10/16/193357.html 这篇文章里面的学习指导思想,来一步步学习SQLite,为的是快速在实际开发中利用好SQLite。

1. SQLite的优缺点以及适用场合

1. 1 优点

    轻量级:       与传统的C/S模式的数据库软件不同,它是进程内的数据库引擎,不存在客户端和服务器。使用SQLite,只需要带上一个几百K大小的动态库就可以:
    绿色组件:     SQLite的核心引擎本身不依赖第三方软件,即插即用。
    单一文件:      数据库中所有的信息(比如表、视图、触发器等)都保存在单个文件内,可以拷贝到其他地方,照用不误。
    跨平台 :        不仅仅支持主流操作系统(Windows/Linux),还支持很多小型嵌入式系统(Android,WP,Vxworks)。
    查询效率极高 : SQLite的API不区分当前数据库是保存在内存中还是在磁盘文件中,为了提高效率,可以切换为内存方式。只需要在开始时将数据库载入内存,读写完成后,再把内存数据库dump会磁盘文件上就可以,读写内存比读写磁盘快很多倍。  
    

1.2 缺点

    并发访问的锁机制: SQLite在并发读写方面的性能一直不太理想,在有大量insert,update访问时,不建议使用。

   SQL标准支持不全 :

1.3适用场合

    适合查询速度要求较高,内存占用较少的场合,尤其是嵌入式操作系统,如各种手机操作系统,低并发web(99.9%网站是低并发),php环境里原生支持SQLite,asp.net/.net winform里可以很方便的使用System.Data.SQLite.

    SQLite本身是C写的,自带的API接口也是C接口,所以用C/C++来使用是最直接的了。对于Java语言来说,可以通过SQLite的JDBC接口方式使用SQLite,对于Python,pysqlite是操作SQLite的首选,它已经是Python的标准库之一。

    SQLite使用的授权协议时Public Domain协议,可以大胆的使用。

2. SQL的核心组件

    SQL中有两个核心对象,分别为database_connectionprepared_statement 的使用。

    database_connection对象是通过sqllite3_open()接口函数创建并返回的,在应用程序使用任何其他SQLite接口函数之前,必须先调用该函数用于初始化。

    prepared_statement对象可以简单理解为编译后的SQL语句,所有和SQL语句执行相关的函数需要该对象作为输入参数用于完成指定SQL操作。

   

   SQL提供的核心接口函数有

   sqlite_open

   sqlite_prepare

   sqlite_step(评估prepared_statement对象)

   sqlite3_column(获取当前行指定列的数据)

   sqlite3_finalize  用于销毁prepared_statement对象

   sqlite_close     用于关闭database_connection对象

3. 在CodeBlock上集成SQLite

     首先去SQLite官网上面下载最新版的源码,http://www.sqlite.org/download.html,我下载的是sqlite-amalgamation-3080704.zip版本。

     解压此压缩包,得到如下几个文件:

     技术分享

     往你的项目里面添加上述文件(除了shell.c文件),然后按Ctrl+F9编译,就可以。

     这么强大的SQLite,真正起作用的,只有三个文件,不由得佩服开发者。通过阅读官网上的编译入门资料,得知源码有两种下载版本,一种是混合式的,上述下载的就是这样的,它在sqlite3.c中实现了全部的SQLite库中的内容,sqlite3.h定义了sqlite3.c的接口函数,很容易整合进所需要的工程文件中。

    

 

 

 

 

    常用的SQLite的Shell命令:

    .tables 查看当前的SQLite数据库命令

    .schema 查看创建SQLite数据库的命令                               

 

参考链接:

http://stackoverflow.com/questions/11574280/how-to-use-sqlite-in-c-program-using-codeblocks

 

   

 

 

附录:

SQLite的官方主页:
http://www.sqlite.org/

SQLite中文站:
http://www.sqlite.com.cn/

System.Data.SQLite:
http://sqlite.phxsoftware.com/

sql学习笔记之 嵌入式数据库(sqlite,firebird)
http://www.cnblogs.com/ljzforever/archive/2010/03/09/1681453.html

SQLite学习心得