SQLite 轻量级数据库简介

SQLite 轻量级数据库简介

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,接口等
全文完.


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.建立C:\sqlite 目录,将解压的文件放入此文件夹中; 文件列表:2017-02-13 23:26 450,048 sqldiff.exe 2017-02-13 23:27 4,963 sqlite3.def 2017-02-13 23:27 845,402 sqlite3.dll 2017-02-13 23:27 701,952 sqlite3.exe 2017-02-13 23:27 1,974,784 sqlite3_analyzer.exe 2015-04-18 10:02 95,137 sqlite3命令方式操作大全.docx 2.添加系统环境变量, 在Path变量值后面添加 C:\sqlite;(英文分号不要忘记了) 3.命令行环境下即可运行sqlite3,运行后出现sqlite> 提示符 压缩包中内含:SQLite3命令操作大全(学习好助手!) 如:创建表: create table 表名(元素名 类型,…); 删除表: drop table 表名; 插入数据: insert into 表名 values(, , ,) ; 创建索引: create [unique] index 索引名on 表名(col….); 删除索引: drop index 索引名(索引是不可更改的,想更改必须删除重新建) 删除数据: delete from 表名; 更新数据: update 表名 set 字段=’修改后的内容’ where 条件; 增加一个列: Alter table 表名 add column 字段 数据类型; 选择查询: select 字段(以”,”隔开) from 表名 where 条件; 日期和时间: Select datetime('now') 日期: select date('now'); 时间: select time('now'); 总数:select count(*) from table1; 求和:select sum(field1) from table1; 平均:select avg(field1) from table1; 最大:select max(field1) from table1; 最小:select min(field1) from table1; 排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序) 分组:select 字段 from table1 group by 字段,字段… ; 限制输出:select 字段 from table1 limit x offset y; = select?字段?from?table1 limit y , x; ......

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值