深入了解轻量级别数据库SQLite的主要特点

翻译|其它|编辑:郝浩|2008-01-14 11:35:03.000|阅读 857 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

轻量级别数据库SQLite的主要特点:

支持事件

不需要配置,不需要安装,也不需要管理员

支持大部分SQL92

一个完整的数据库保存在磁盘上面一个文件

同一个数据库文件可以在不同机器上面使用

最大支持数据库到2T

字符和BLOB的支持仅限制于可用内存

整个系统少于3万行代码,少于250KB的内存占用(gcc)

大部分应用比目前常见的 客户端/服务端 的数据库快

没有其它依赖

源代码开放, 代码95%有较好的注释

简单易用的API. 官方带有TCL的编译版本。其它的单独提供

php 从 5.x 开始默认内置编译了SQLite, 4.x 需要通过pear 来安装 pear install sqlite SQLite 常用于嵌入到程序, 为一些需要数据库,但是不必要安装中/大型的数据库,而且进行的是比较普通的操作(例如select/insert/delete之类的)

php的sqlite的例子:

以下为打开一个名叫sqlite.db的库, 如果不存在,会创建一个(需要目录可写)

$db_name='sqlite.db';
$db=new SQLiteDatabase($db_name, 0644, $error);
if ($error) exit($error);

创建一个表, 三个字段

user,主键,非空,长度100的varchar

pass,非空,长度100的varchar

date,非空,整型,索引

这里使用了queryExec 而不是 query.因为只是执行,不需要返回结果

注意:在SQLite里面query也是可以执行多行语句,但是如果有结果返回的,则只会有执行第一个有结果返回的命令。

执行失败将会返回FALSE.

$db->queryexec("
CREATE TABLE user (
user VARCHAR ( 100 ) NOT NULL PRIMARY KEY,
pass VARCHAR ( 100 ) NOT NULL,
date INTEGER NOT NULL,
);
CREATE INDEX user_date ON user(date);
");

插入一条数据

$db->query("INSERT INTO user (user, pass, date)
VALUES ('admin', 'password', 123456789)");
$db->query("INSERT INTO user (user, pass, date)
VALUES ('super', 'password2', 123456790)");

对某条记录进行更新


$db->query("UPDATE user SET
password='password1' WHERE user='admin'");
 
查询

PHP下面SQLite的查询有很多形式

sqlite_array_query 进行一个查询,直接将返回的结果放入array

sqlite_query 是个普通的执行命令,返回为handle


返回来的handle 可以通过以下来获取结果

sqlite_fetch_all 获取所有结果并且将每条结果作为array,然后放入一个大的array里面

sqlite_fetch_array 获取下一个结果作为array

sqlite_fetch_column_types — Return an array of column types from a particular table

sqlite_fetch_object 获取下一个结果返回一个对象(obj)

sqlite_fetch_single 只获取第一列结果,返回为字符变量

sqlite_fetch_string 等同于 sqlite_fetch_single


因此会很方便写数据库的查询

例子:


$r=$db->singleQuery("SELECT password FROM user WHERE user='admin'");
// $r 则为返回来的 password1 字符串

$q=$db->Query("SELECT * FROM user");
while ($r=$q->fetch()) {
  echo "User: $r[user]    Password: $r[pass]    Date: $r[date]n";
}

$r=$db->fetchAll("SELECT user, password FROM user");
print_r($r);

总结:

使用SQLite最大的好处是不用依赖使用其它DB,而且基本不需要担心DB server崩溃影响你的程序。另外的好处就是C/C++/delphi/java的可以把整个数据库引擎内嵌,不需要调用其它API,接口和等。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:赛迪网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP