使用情景: 数据库
DDL
Data Definition Language
数据定义语言
数据库和表的操作都属于ddl, 比如: Create、Drop和Alter,
DDL所站的高度, 最低也比记录高一层
创建或打开数据库
const TableName = "IMGDATA";// 表名: IMGDATA// 字段1 id 整数 主键 自增// 字段2 name 字符串 不可为空// 字段3 img BLOBlet 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, null).all());log("第一个数据: ", db.rawQuery("SELECT * FROM " + TableName, null).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();
微信公众号 AutoJsPro教程

QQ群
747748653

文章转载自AutoJsPro教程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




