小型嵌入式,跟mysql差不多,但更小,功能也少

解决方案 »

  1.   

    真正开源的小型嵌入式数据库,支持事务、触发器器
    性能至少优于mysql4.1.0
    目前已被几乎所有的高级程序开发语言支持
    由于可以自定义数据库函数,尤其在php的扩展中可支持全部php函数,其性能可以说是无上限的
      

  2.   

    果然清凉级,似乎没有守护进程,跟access差不多
    ----------------------------------------------
    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,接口等
    全文完. 
    原作者
    hshh@Drl
      

  3.   

    最主要的是没有 Access 的界面
      

  4.   

    id INTEGER PRIMARY KEY
    就是自增字段了
      

  5.   

    “最主要的是没有 Access 的界”
    有很多用php开发的管理工具,与phpmyadmin的界面很相似
    我用的是SQLiteManager
      

  6.   

    SQLiteManager 超难用。也许是我用别的习惯了。
    上次我想在 Delphi 中嵌入一个 SQLite 。但后来发觉效果不咋的。还是用 Access了。
      

  7.   

    也许在 PHP  中 SQLite 可以接合的比较好。
      

  8.   

    楼上的,你用什么方式用access数据库的呢
    如果是adodb,那就要求客户端也有access
    但sqlite只需要带一个dll/lib就可以了。
      

  9.   

    那不是只要买个PHP5的空间就行了,不用再买数据库了?爽啊.
    不过那些空间服务商不是要哭了?
      

  10.   

    sqlite是跨平台的,而access不是
      

  11.   

    呵呵 mysql 已经够php开发了 为什么还要用sqlite呢
      

  12.   

    mysql需要安装
    sqlite不需要
      

  13.   

    呵呵 mysql 已经够php开发了 为什么还要用sqlite呢
    ---------
    版权问题
    楼上的,你用什么方式用access数据库的呢
    如果是adodb,那就要求客户端也有access
    ----------
    不会吧。只要服务器有 ODBC 连接就可以了。(只能用到 windows 主机)不过上次我用不是在Web系统中,是在一个本地系统上,想写一个日程管理的东东。听说 sqlite 不错,所以找来看了一看。我还没有 PHP 中用过。PHP5 中自己集成的sqlite 。但在 PHP4中,好象要自己安装了。
      

  14.   

    我有一个问题,不知道是不是我没设置好的原因。
    用工具SQLite Analyze可以打开的数据库,用PHP中的SQLITE函数就不行:
    $class_db = sqlite_open(DB_PATH . $dbname, 0666, $sqliteerror)
    ,而用PHP建立的SQLITE数据库,就不能用工具打开,提示为:
    file is encrypted or is not a database另外用SQLITE Manager的时候,总是不能增加另外的数据库,郁闷。
    哪位高人帮忙解决一下啊。
      

  15.   

    注意:php的sqlite函数是sqlite2的
    php5的pdo里面是sqlite3的
    不能通用的
      

  16.   

    小弟问个这样的问题不知道会不会让各位大虾感到无聊,如果我用的是PHP4编的程序,但空间商装的是PHP5,我该怎么办,照用吗!??
      

  17.   

    to qsdnet(我想学编程)
    通常情况下没有问题
      

  18.   

    用 ADODB_lite 支持 sqlite 的。
      

  19.   

    如果要界面的话,可以下载一个SQLiteSpy,支持对SQLite数据库的操作====CSDN 小助手====
    rexzhou#gmail.com
      

  20.   

    sqlite完全免费,即使用于商业目的
      

  21.   

    可惜MYSQL现在不是免费的了
    好可惜
      

  22.   

    强贴慕名。1、没发现唠叨老大竟然变五个星星了啊,什么时候?2、唠叨也用sqlite了,这个看来真的很好啊?楼上那位说抗压性不好是不是真的啊?一个10分钟在线2k的网站受不受的起?这个里面有没有长连接这些概念?3、我印象里这个类似文本数据库吧?4、说起来现在很多服务商都是php5了,这样岂不就不用另外买数据库了?
      

  23.   


    SQLite具体介绍:
    http://www-128.ibm.com/developerworks/cn/opensource/os-sqlite/使用PHP+SQLite来做开发,我写得:
    http://blog.csdn.net/heiyeshuwu/archive/2005/08/05/446810.aspx其实SQLite跟Mysql不是一个量级得数据库,SQLite只能算是一个小型的、嵌入式数据库,只能用于小型应用或者嵌入式产品。但是Mysql是个DBMS,是个关系型,基于C/S架构的完整数据库管理系统。他们两者都开源,开源不等于免费,授权方式不一样,其实在国内,呵呵,都一样。不要把两者搞混,更没有做比较的意义。至于PHP5默认支持SQLite,主要跟PHP的定位有关系,因为PHP你可以选择任何数据库,但是默认使用SQLite是因为授权的关系,并不是说SQLite比Mysql要好的缘故。对于开发者来讲,如果你做的项目足够小,是个个人站点,并且服务器支持SQLite的话,那么可以选择这个数据库,其实文本数据库也同样没有问题。但是如果你做的业务比较复杂,或者需要构建多台数据库服务器的话,那么使用Mysql或Oracle是你的正确选择。
      

  24.   

    1、没发现唠叨老大竟然变五个星星了啊,什么时候?
    这两天,社区改了登记标准。首页中有2、唠叨也用sqlite了,这个看来真的很好啊?楼上那位说抗压性不好是不是真的啊?一个10分钟在线2k的网站受不受的起?这个里面有没有长连接这些概念?
    sqlite较mysql稍慢,但sqlite是真正免费的3、我印象里这个类似文本数据库吧?
    如果把没有服务器端的都称做文本数据库的话,那也是可以的。严格的说应叫“文件数据库”
    已此推论access也是4、说起来现在很多服务商都是php5了,这样岂不就不用另外买数据库了?
    是的!php5把sqlite作为默认数据库
      

  25.   

    to zairwolfo(君子兰) :
    3、我印象里这个类似文本数据库吧?
    SQLite是个彻底的数据库,其实数据库最终还是存储在磁盘上的文件,只是存储方式不一样,文本数据库都是直接存储,数据库都是通过某些算法,在能够高效查找、插入、删除的情况下存储的。当然,在能够完成你业务逻辑的情况下,使用文本数据库或者SQLite都是没有问题的。
      

  26.   

    明白。
    如果使用通用sql语法写的语句,然后再改一下数据库类就可以轻松的由mysql转换成sqlite了,不知道这种看法对不对。应该正确吧。
      

  27.   

    mysql 和 SQLite 面向的应用不一样吧。mysql是集中存储,SQLite是分布存储。