autojs之数据库

简介: 作者: 牙叔使用情景: 数据库

作者: 牙叔

使用情景: 数据库


DDL(Data Definition Language)数据定义语言


数据库和表的操作都属于ddl, 比如: Create、Drop和Alter,


DDL所站的高度, 最低也比记录高一层


创建或打开数据库

const TableName = "IMGDATA";
// 表名: IMGDATA
// 字段1 id 整数 主键 自增
// 字段2 name 字符串 不可为空
// 字段3 img BLOB
let db = sqlite.open(
  "./data.db",
  { version: 1 },
  {
    onOpen: function (db) {
      db.execSQL(
        "CREATE TABLE IF NOT EXISTS " +
          TableName +
          "(" +
          "`id` INTEGER PRIMARY KEY AUTOINCREMENT, " +
          "`name` TEXT NOT NULL UNIQUE, " +
          "`img` BLOB" +
          ")"
      );
    },
  }
);


关闭数据库

db.close();


打印所有表

let db = sqlite.open("./data.db");
log("数据库所有表的信息: ", db.rawQuery("SELECT * FROM sqlite_master WHERE type='table'", null).all());


删除表

const TableName = "IMGDATA";
let db = sqlite.open(
  "./data.db",
  { version: 1 },
  {
    onOpen: function (db) {
      db.execSQL("drop TABLE " + TableName);
    },
  }
);


DML(Data Manipulation Language 数据操控语言)


操作的单位是记录, 增删改查都属于dml, 操作的单位是记录


增加

let img = images.read(files.join(files.getSdcardPath(), "test.jpg"));
let r = db.insert(TableName, {
  name: "test",
  img: img,
});
log(r);


删除

log("删除name的值为test的记录: ", db.delete(TableName, "name = 'test'", null));


修改

// 修改符合条件name=test的记录, 字段name的改为测试
log("修改: ", db.update(TableName, { name: "测试" }, "name = ?", ["test"]));
log("修改后: ", db.rawQuery("SELECT * FROM " + TableName + " WHERE name = ?", ["测试"]).single());


条件查询

log("条件查询: ", db.rawQuery("SELECT * FROM " + TableName + " WHERE name = ?", ["测试"]).single());


事务

const TableName = "IMGDATA";
let db = sqlite.open("./data.db");
db.transaction(function () {
  db.update(TableName, { name: "测试改名字" }, "name = '测试'", null);
})
  .on("begin", function (t) {
    log("事务开始: ", t);
  })
  .on("commit", function (t) {
    log("事务完成: ", t);
  })
  .on("rollback", function (t) {
    log("事务回滚: ", t);
  })
  .on("end", function (t) {
    log("事务结束: ", t);
  })
  .on("error", function (e) {
    console.error(e);
  });
db.close();


获取version

let db = android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(files.cwd() + '/testTable.db', null)
log(db.getVersion())
db.close()


























相关文章
|
SQL JavaScript 数据库
autojs使用nodejs调用sqlite数据库
autojs先加载nodejs, 导入SQLiteDatabase, nodejs再去调用SQLiteDatabase
619 0
|
28天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
64 3
|
1月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
2月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
22天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
23天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
23天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
22天前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
28天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
253 7
|
28天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
101 6

热门文章

最新文章