$sqlite - 轻量数据库

  • 更新时间:2025-12-13 11:58:46

轻量数据库

线程安全,支持并发编程,本地轻量级数据库存储,存储的文件会随着应用的卸载而清空。

创建新对象()

创建新对象

创建一个新的数据库对象,你可以用这个对象来操作其他数据库

  • 返回 : {this} 自己

定义 数据库操作对象 = $小数据库.创建新对象();
定义 打开成功 = 数据库操作对象.打开("我的数据2");
如果(打开成功){
    日志("链接成功");
}

打开(库名称, 是否存于外部存储)

打开数据库

如果数据库文件存在则会加载数据库,如果不存在则先创建后加载

  • 参数 : 库名称 {字符串} 数据库名称

  • 参数 : 是否存于外部存储 {布尔值} 是否存于外部存储(默认:否)

  • 返回 : {布尔值} 是否连接成功

//第二个参数的含义:
//否:保存到内部存储:无需后缀,只需要取一个数据库名称即可,应用卸载后数据会被删除
//是:保存到外部存储:需全路径,包括文件名和后缀,应用卸载后数据不会被删除
定义 打开成功 = $小数据库.打开("/sdcard/mData.db",);
如果(打开成功){
    日志("链接成功");
}

打开(库名称)

打开数据库

如果数据库文件存在则会加载数据库,如果不存在则先创建后加载

  • 参数 : 库名称 {字符串} 数据库名称

  • 返回 : {布尔值} 是否连接成功

//无需后缀,只需要取一个数据库名称即可
定义 打开成功 = $小数据库.打开("我的数据");
如果(打开成功){
    日志("链接成功");
}

创建表(表名, 列名)

创建数据表

注意:不管你的数据是什么类型都用字符串类型存储

  • 参数 : 表名 {字符串} 表名称

  • 参数 : 列名 {字符串列表[]} 列名称

  • 返回 : {布尔值} 是否执行成功

定义 创建成功 = $小数据库.创建表("表1",["姓名","性别","年龄"]);
如果(创建成功){
    日志("建表成功");
}

添加(表名, 数据)

添加数据

注意:不管你的数据是什么类型都用字符串类型存储,默认使用自增id作为主键

  • 参数 : 表名 {字符串} 表名

  • 参数 : 数据 {对象} 数据对象

  • 返回 : {布尔值} 是否执行成功

//其实此函数等价于 $小数据库.执行("INSERT INTO 表1 (姓名, 性别, 年龄) VALUES ('张三', '男', 20)");
定义 添加成功 = $小数据库.添加("表1",{
    姓名:"张三",
    性别:"男",
    年龄:20
});
如果(添加成功){
    日志("添加成功");
}

更新(表名, 数据, 条件语句)

更新数据

  • 参数 : 表名 {字符串} 表名称

  • 参数 : 数据 {对象} 数据对象

  • 参数 : 条件语句 {字符串} 条件语句

  • 返回 : {布尔值} 是否执行成功

//更新数据
定义 更新成功 = $小数据库.更新("表1", {
    姓名: "张三",
    性别: "女",
    年龄: 20
},"姓名='张三'");
如果 (更新成功) {
    日志("更新成功");
}

罗列(表名)

罗列数据

注意:不管你的数据是什么类型,查询出来的必是字符串类型,即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空

  • 参数 : 表名 {字符串} 表名称

  • 返回 : {数据列表[]} 数据集合对象

//即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空
定义 结果集 = $小数据库.罗列("表1");
循环(定义 数据 关于 结果集){
    日志(数据);
}

罗列()

罗列数据

查询数据库中的所有表名并且返回表名列表

  • 返回 : {表名列表[]} 表名列表

//罗列数据库中的表
定义 结果集 = $小数据库.罗列();
循环(定义 数据 关于 结果集){
    日志(数据);
}

查询(sql语句)

执行查询语句

注意:不管你的数据是什么类型,查询出来统一是字符串类型。

  • 参数 : sql语句 {字符串} sql查询语句

  • 返回 : {数据列表[]} 执行结果

//即使是报错也不会返回null,而是返回空列表,因此可以不用判断数据是否为空
定义 结果列表 = $小数据库.查询("select * from table1");
循环(定义 数据 关于 结果列表){
    日志(数据);
}

有表(表名称)

判断表是否存在

  • 参数 : 表名称 {字符串} 表名称

  • 返回 : {布尔值} 是否存在该表

如果($小数据库.有表("我的表格")){
    日志("存在表");
} 否则 {
    日志("不存在表");
}

执行(sql语句)

执行SQL语句

  • 参数 : sql语句 {字符串} sql语句

  • 返回 : {布尔值} 是否执行成功

//删除表
$小数据库.执行("drop table if exists table1");

删除数据库(外部数据)

删除数据库

我将直接删除本地数据库的存储文件,那么你将丢失所有数据

  • 参数 : 外部数据 {布尔值} 是否是外部数据,如果是外部数据则库名就是外部数据的路径

  • 返回 : {布尔值} 是否执行成功

//无需打开数据库,直接就能删除数据库文件
定义 删除成功 = $小数据库.删除数据库(true);
如果(删除成功){
    日志("删库成功");
}

删除数据库(库名, 外部数据)

删除数据库

我将直接删除本地数据库的存储文件,那么你将丢失所有数据

  • 参数 : 库名 {字符串} 数据库名称

  • 参数 : 外部数据 {布尔值} 是否是外部数据,如果是外部数据则库名就是外部数据的路径

  • 返回 : {布尔值} 是否执行成功

//无需打开数据库,直接就能删除数据库文件
定义 删除成功 = $小数据库.删除数据库("我的数据");
如果(删除成功){
    日志("删库成功");
}

删除数据库(库名)

删除数据库

我将直接删除本地数据库的存储文件,那么你将丢失所有数据

  • 参数 : 库名 {字符串} 数据库名称

  • 返回 : {布尔值} 是否执行成功

//无需打开数据库,直接就能删除数据库文件
定义 删除成功 = $小数据库.删除数据库("我的数据");
如果(删除成功){
    日志("删库成功");
}

删除表(表名)

删除表

  • 参数 : 表名 {字符串} 表名

  • 返回 : {布尔值} 是否执行成功

定义 删除成功 = $小数据库.删除表("表1");
如果(删除成功){
    日志("删除表成功");
}

关闭()

关闭数据库

当你操作完毕后可以关闭数据库链接,释放资源。

  • 返回 : {布尔值} 是否关闭成功

定义 成功关闭 = $小数据库.关闭();
如果(成功关闭){
    日志("结束操作");
}