SQLite 一个轻量级别数据库

转载 2006年05月18日 00:51:00
       
SQLite 一个轻量级别数据库, 具有很多不错的特点。
官方网站:http://www.sqlite.org/   中文社区:http://www.sqlite.com.cn/


转至:http://www.ugia.cn/?p=41

支持事件
不需要配置,不需要安装,也不需要管理员
支持大部分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_name0644$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,接口等


Android23之轻量级数据库存储(Sqlite)

Sqlite数据库:关系型数据库     一、特点与描述:                 1、Sqlite数据库,是一个非常轻量的关系型数据库(意思就是非常小,只占用内存的200多K),Andr...
  • whgk2014
  • whgk2014
  • 2016年05月30日 21:12
  • 416

Android学习之轻量级数据库SQLite

Android中对数据的存储有很多种方式,Google为Andriod中较大的数据处理提供了SQLite数据库,SQLite是一款轻型的数据库,它在管理、使用和维护上非常强大。当然最主要的特点还是它的...
  • qq_23940659
  • qq_23940659
  • 2016年03月21日 20:46
  • 1244

c#中使用轻量级数据库sqlite开发总结

首先简单说明下含义,sqlite数据库是一种轻量级的数据库,主要特点是免安装、免配置、简单小巧,在程序中的开发基本和sql数据库一致。 准备工具:system.data.sqlite.dll和sqli...
  • yangdayededaye
  • yangdayededaye
  • 2015年09月10日 16:12
  • 734

SQLite 一个轻量级别数据库

SQLite 一个轻量级别数据库, 具有很多不错的特点。 支持事件 不需要配置,不需要安装,也不需要管理员 支持大部分SQL92 一个完整的数据库保存在磁盘上面一个文件 同一个数据库...
  • u012768474
  • u012768474
  • 2016年01月03日 10:31
  • 156

轻量级开源内存数据库SQLite性能测试

from : http://tech.it168.com/a2012/1016/1408/000001408814_all.shtml 轻量级开源内存数据库SQLite性能测试  ...
  • Fybon
  • Fybon
  • 2015年07月10日 14:22
  • 1001

Sqlite轻量级数据库管理类·SQLite轻量级数据库

很多时候,都要用到数据库,为了方便有效的使用数据库,选择建立一个数据库管理类是一个很明智的选择...
  • a12331244
  • a12331244
  • 2017年04月27日 15:20
  • 161

SQLite 如何实现从一个数据库的某个表的记录复制到另一个数据库中

最近遇到了跨数据库复制表中记录问题
  • xxy0118
  • xxy0118
  • 2017年05月18日 10:39
  • 1176

SQLite做为本地缓存应注意的几大方面

今天我们要介绍的就是如何利用SQLite作为本地缓存的方法。其拥有适应于本地数据缓存和应用程序等诸多优点。 AD:【线下活动】三大新锐HTML 5企业汇聚51CTO—大话移动前端技术 ...
  • michaelKiven
  • michaelKiven
  • 2015年10月22日 16:54
  • 3169

轻量级数据库 ----SQLite

提到APP中的数据储存,我们第一个会想到的就是SQLite,因为它的简单方便以及体积小,使其跻身主流的数据库的行列。优点就不过多赘述,今天主要写一些SQLite中的简单的使用以及实用的方法。 SQL...
  • u013398490
  • u013398490
  • 2016年06月30日 11:45
  • 108

Sqlite的使用和一个简单的书籍管理系统(上)

虽然说app与网络打交道比较多但是sqlite还是有它很重要的责任那来一起学习一下sqlite吧 android的存储方式有如下几种sharedpreferences 文件存储 sqlite数据库 ...
  • tangsilian
  • tangsilian
  • 2016年04月24日 20:07
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLite 一个轻量级别数据库
举报原因:
原因补充:

(最多只允许输入30个字)