YStudio Y++

SQLite类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → SQLite类。

类型名必须写完整「SQLite类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 类型名必须写「SQLite类」。本地库;高阶无 SQL 与原生 SQL 并存。
  2. 打开后记得关闭;写事务注意提交。

快速开始

SQLite类 db
// 打开 / 执行 / 查询:见下方命令介绍

SQLite类/创建

共 1 条。

创建SQLite

  • 签名:通用 创建SQLite()
  • 说明:本地 SQLite 数据库。日常用建表/插入/查询,无需手写 SQL。通常直接写「SQLite类 db」。

SQLite类/方法

共 28 条。

打开

  • 签名:逻辑 打开(文本 路径, [逻辑 只读=假], [文本 密码=""])
  • 说明:打开或创建数据库文件;只读=真时不创建新库。密码非空:整库 AES 加密(内存操作,关闭/保存时写盘)。
  • 参数一│文本 路径: 数据库文件路径
  • 参数二│[逻辑 只读=假]: 真=只读打开
  • 参数三│[文本 密码=”“]: 非空则启用 Y++ 库文件加密

关闭

  • 签名:逻辑 关闭()
  • 说明:关闭数据库连接;加密会话会先自动保存。

是否打开

  • 签名:逻辑 是否打开()
  • 说明:当前是否已打开数据库。

建表

  • 签名:逻辑 建表(文本 表名, 通用 字段)
  • 说明:按「字段信息」数组建表(推荐)。字段:名称、类型(#文本/#整数/#小数/#逻辑/#二进制/#主键)、主键、非空、默认值。兼容:第二参数也可传旧版列定义文本「id:主键,姓名:文本」。
  • 参数一│文本 表名
  • 参数二│通用 字段: 字段信息数组,或旧版列定义文本

删表

  • 签名:逻辑 删表(文本 表名)
  • 说明:删除整张表。
  • 参数一│文本 表名

清空表

  • 签名:逻辑 清空表(文本 表名)
  • 说明:删除表中全部行(保留表结构)。
  • 参数一│文本 表名

表是否存在

  • 签名:逻辑 表是否存在(文本 表名)
  • 说明:判断表是否存在。
  • 参数一│文本 表名

插入

  • 签名:逻辑 插入(文本 表名, 文本 列名, 文本 值)
  • 说明:按 CSV 列名与值插入一行。列名/值均为逗号分隔,可用引号包字段。
  • 参数一│文本 表名
  • 参数二│文本 列名: CSV,如 “姓名,年龄”
  • 参数三│文本 值: CSV,如 “张三,20”

插入批量

  • 签名:逻辑 插入批量(文本 表名, 文本 列名, 通用 值行)
  • 说明:批量插入多行。值行为文本数组,每元素一行 CSV。未在事务中时自动 BEGIN/COMMIT;已在外层事务中则用 SAVEPOINT。
  • 参数一│文本 表名
  • 参数二│文本 列名: CSV
  • 参数三│通用 值行: 文本数组,如 [“张三,20”,”李四,21”];也可单行文本

保存

  • 签名:逻辑 保存()
  • 说明:加密会话:立即把内存库 AES 写回磁盘(不关闭)。明文库无需调用。

更新

  • 签名:逻辑 更新(文本 表名, 通用 置值, [通用 条件=""])
  • 说明:按条件更新。置值如 “年龄=21” 或 [“年龄=21”,”备注=你好”];条件同查询(「列=值」或文本数组 AND)。条件空则更新全表。
  • 参数一│文本 表名
  • 参数二│通用 置值: 文本或文本数组,元素形如 列=值
  • 参数三│[通用 条件=”“]: 文本或文本数组

删除

  • 签名:逻辑 删除(文本 表名, 通用 条件)
  • 说明:按条件删除行。条件必填(防误删全表;清空请用清空表)。
  • 参数一│文本 表名
  • 参数二│通用 条件: 「列=值」或文本数组

查询

  • 签名:逻辑 查询(文本 表名, [通用 条件=""], [文本 列名=""], [文本 排序=""], [整数 限制行数=0])
  • 说明:无 SQL 查询并打开游标。条件:「id=1」或 [“id=1”,”年龄=20”](AND)。列名空=全部列;排序如「年龄 DESC」;限制行数<=0 不限制。成功后循环取下一行()。
  • 参数一│文本 表名
  • 参数二│[通用 条件=”“]: 文本或文本数组
  • 参数三│[文本 列名=”“]: CSV,空=*
  • 参数四│[文本 排序=”“]: 如 “年龄 DESC”
  • 参数五│[整数 限制行数=0]

取下一行

  • 签名:逻辑 取下一行()
  • 说明:游标前进一行;有数据返回真,结束返回假。

取文本

  • 签名:文本 取文本(文本 列名或索引)
  • 说明:取当前行文本列;可用列名或从 0 起的索引文本。当前行内多次取文本安全(行缓存)。
  • 参数一│文本 列名或索引

取整数

  • 签名:整数 取整数(文本 列名或索引)
  • 说明:取当前行整数列。
  • 参数一│文本 列名或索引

取小数

  • 签名:小数 取小数(文本 列名或索引)
  • 说明:取当前行小数列。
  • 参数一│文本 列名或索引

取列数

  • 签名:整数 取列数()
  • 说明:当前结果集列数。

取列名

  • 签名:文本 取列名(整数 索引)
  • 说明:按索引取列名(从 0 起)。
  • 参数一│整数 索引

取行数

  • 签名:整数 取行数(文本 表名, [通用 条件=""])
  • 说明:COUNT(*);可选条件同查询。
  • 参数一│文本 表名
  • 参数二│[通用 条件=”“]: 文本或文本数组

执行SQL

  • 签名:逻辑 执行SQL(文本 SQL)
  • 说明:【高级】执行非查询 SQL(INSERT/UPDATE/DDL 等)。日常请用建表/插入等。
  • 参数一│文本 SQL

查询SQL

  • 签名:逻辑 查询SQL(文本 SQL)
  • 说明:【高级】执行查询 SQL 并打开游标,随后取下一行/取文本。日常请用查询()。
  • 参数一│文本 SQL

开始事务

  • 签名:逻辑 开始事务()
  • 说明:开始事务。

提交

  • 签名:逻辑 提交()
  • 说明:提交事务。

回滚

  • 签名:逻辑 回滚()
  • 说明:回滚事务。

取最后插入ID

  • 签名:整数 取最后插入ID()
  • 说明:最近一次插入/替换插入的 ID(RETURNING;无缓存时回退 lastval)。

取影响行数

  • 签名:整数 取影响行数()
  • 说明:最近一次写操作影响的行数。

取错误

  • 签名:文本 取错误()
  • 说明:取最近一次失败原因。

易错对照

错误 正确
类型写成 SQLite 必须「SQLite类」
忘记关闭 退出路径关闭连接

相关

MySQL类 · 文件操作