Sqlite3(小型关系型数据库)官方版

Sqlite3(小型关系型数据库)官方版

官方

系统:Android

日期:2026-04-04

类别:电脑软件

版本:v3.50.4

  • 详情
  • 相关
  • 评论
    SQLite3这玩意儿真的挺神的,作为一个搞开发的,我觉得它简直是轻量级数据库的天花板。它不像MySQL那样需要装个庞大的服务端,直接就是一个文件,像Access一样方便,但功能却强大得多。现在很多PHP项目和嵌入式设备都在用,毕竟资源占用极低,跑在路由器或者小设备上毫无压力,连Firefox浏览器都用它来存数据,这含金量不用我多说了吧。 对于咱们开发者来说,SQLite3最爽的就是不用折腾环境,写个小程序直接打包带走,不用让人家额外装数据库引擎,这点真的太贴心了。它的语法跟标准SQL差不多,建表、增删改查这些操作都很直观,数据类型也支持整型、浮点、文本这些基础的,甚至还能处理日期时间。虽然它是个文件型数据库,但事务处理能力一点不弱,批量操作时开启事务速度飞快,这点在实际开发中能省不少事。 不过我也得吐槽一下,虽然它适合中小型项目,但要是搞那种高并发的大型系统,可能还是得上MySQL或者PostgreSQL。但总的来说,SQLite3在便携性和易用性上绝对是王者级别,特别是对于个人开发者或者快速原型开发,简直是神器。官方最近还修复了一些变量初始化的Bug,稳定性也越来越好了,真心推荐大家都去试试。

    开发软件的用户对于数据库都不会陌生,这款sqlite3官方版就是一款小巧切好用的关系型数据库,也是一款能够代替MySql的数据库,目前已经绑定到了PHP5.0上,就像我们的ASP和access结合一样。如果你是一位网页PHP开发人员,那么这个sqlite3就是你必须掌握使用的东西,并且这款软件的设计目标是嵌入式的设计,所以目前已经有很多嵌入式产品在使用这个数据库,而且由于软件的资源占用非常低,所以诸多嵌入设备都开始使用这个数据库来存储数据,让我们的嵌入式设备有更多的资源运行。

    sqlite3是目前世界最棒的小型数据库,大名鼎鼎的浏览器Firefox就是使用这个数据库,所以大家可不要小看这个数据库的潜力,而且还能够和众多的程序语言相结合,比如Tcl、PHP、JAVA等等。

    sqlite3官方版操作入门

    sqlite提供的是一些C函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数,sqlite 就会为你操作数据库。

    sqlite 跟MS的access一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引、触发器等等,但是,它实际上得到的就是一个文件。备份这个文件就备份了整个数据库。

    sqlite 不需要任何数据库引擎,这意味着如果你需要 sqlite 来保存一些用户数据,甚至都不需要安装数据库(如果你做个小软件还要求人家必须装了sqlserver 才能运行,那也太黑心了)。

    常用SQL语句

    创建表: 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;

    (备注:跳过y行,取x行数据)

    (操作仍待完善)…

    支持的数据类型介绍

    NULL 值为NULL

    INTEGER 值为带符号的整型,根据类别用1,2,3,4,6,8字节存储

    REAL 值为浮点型,8字节存储

    TEXT 值为text字符串,使用数据库编码(UTF-8, UTF-16BE or UTF-16-LE)存储

    BLOB 值为二进制数据,具体看实际输入

    但实际上,sqlite3也接受如下的数据类型:

    smallint 16 位元的整数

    interger 32 位元的整数

    decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值 ,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。

    float 32位元的实数。

    double 64位元的实数。

    char(n) n 长度的字串,n不能超过 254。

    varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。

    graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。

    vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000。

    date 包含了 年份、月份、日期。

    time 包含了 小时、分钟、秒。

    timestamp 包含了 年、月、日、时、分、秒、千分之一秒。

    如果将声明表的一列设置为 INTEGER PRIMARY KEY,则具有:

    1.每当你在该列上插入一NULL值时, NULL自动被转换为一个比该列中最大值大1的一个整数;

    2.如果表是空的, 将会是1;

    算术函数

    abs(X)返回给定数字表达式的绝对值。

    max(X,Y[,...])返回表达式的最大值。

    min(X,Y[,...])返回表达式的最小值。

    random(*)返回随机数。

    round(X[,Y])返回数字表达式并四舍五入为指定的长度或精度。

    字符处理函数

    length(X)返回给定字符串表达式的字符个数。

    lower(X)将大写字符数据转换为小写字符数据后返回字符表达式。

    upper(X)返回将小写字符数据转换为大写的字符表达式。

    substr(X,Y,Z)返回表达式的一部分。

    randstr()

    quote(A)

    like(A,B)

    确定给定的字符串是否与指定的模式匹配。

    glob(A,B)

    条件判断函数

    coalesce(X,Y[,...])

    ifnull(X,Y)

    nullif(X,Y)

    集合函数

    avg(X)返回组中值的平均值。

    count(X)返回组中项目的数量。

    max(X)返回组中值的最大值。

    min(X)返回组中值的最小值。

    sum(X)返回表达式中所有值的和。

    其他函数

    typeof(X)返回数据的类型。

    last_insert_rowid()返回最后插入的数据的 ID 。

    sqlite_version(*)返回 SQLite 的版本。

    change_count()返回受上一语句影响的行数。

    last_statement_change_count()

    二.有关事务的操作

    (成批操作的时候,启动事务,比不启动事务快n倍)

    开始事物处理

    BEGIN TRANSACTION;

    …………..

    进行对数据库操作

    …………..

    事物提交

    COMMIT;

    具体事例如下:

    假设有一个 t1 表,其中有 "a", "b", "c" 三列, 如果要删除列 c ,以下过程描述如何做:

    BEGIN TRANSACTION;

    CREATE TEMPORARY TABLE t1_backup(a,b);

    INSERT INTO t1_backup SELECT a,b FROM t1;

    DROP TABLE t1;

    CREATE TABLE t1(a,b);

    INSERT INTO t1 SELECT a,b FROM t1_backup;

    DROP TABLE t1_backup;

    COMMIT;

    更新日志

    v3.50.4版本

    1、修复在模糊情况下使用未初始化变量的两个长期案例。

    展开内容

    应用信息

    • 包名:
    • MD5:
    • 需要网络

    评分及评论

    4.5满分5.0分

    点击星星用来评分

    评论需审核后才能显示
    同类排行