Web SQL (web数据库)

三核心方法

Web SQL(web数据库)

#核心语法

openDatabase 创建新数据库或者打开现有的数据库

transaction 创建事务

executeSql 执行SQL

 

openDatabase 用法

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
var db = openDatabase('数据库名称', '版本号', '描述文本', '大小',回调方法);

transaction 事务执行

db.transaction((tx)=>{
  
}

executeSql SQL语句(增删改查)

需要注意的是事务的执行是异步的

创建名为LOGS 的表

unique 约束为唯一值

CREATE TABLE IF NOT EXISTS 表名 (列名称1 PRIMARY KEY,列名称2 UNIQUE ,列名称3)
db.transaction((tx)=>{
  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
}

增加条目

单条新增

INSERT INTO 表名 VALUES (?,?,?,?,?,?,?)
INSERT INTO 表名 (key1,key2) VALUES (value1,value2)  静态
INSERT INTO LOGS (id,log) VALUES (?,?)",[e_id,e_log]) 动态 
`INSERT INTO LOGS (id,log) VALUES (${e_id},${e_log})` ES6
//静态
db.transaction((tx)=>{
  tx.executeSql("INSERT INTO LOGS (id,log) VALUES (1,'今天')")
}
//动态
db.transaction((tx)=>{
  const e_id=2,e_log='明天'
  tx.executeSql("INSERT INTO LOGS (id,log) VALUES (?,?)",[e_id,e_log])  
  tx.executeSql(`INSERT INTO LOGS (id,log) VALUES (${e_id},${e_log})`)  //ES6
}

多条

INSERT INTO 表名 (key1,key2) VALUES (value1,value1),(value2,value2),(value3,value3)
db.transaction((tx)=>{
  tx.executeSql("INSERT INTO LOGS (id,log) VALUES (1,'昨天'),(2,'今天')(3,'明天')") 
})

删除表

DROP TABLE 表名
db.transaction((tx)=>{
  tx.executeSql('DROP TABLE LOGS')
}

清空表

'DELETE FROM 表名'
db.transaction((tx)=>{
  tx.executeSql('DELETE FROM LOGS')
}

删除条目

DELETE FROM 表名 WHERE id=1 静态
DELETE FROM 表名 WHERE id=?',[id] 动态
`DELETE FROM 表名 WHERE id=${id}` ES6
db.transaction((tx)=>{
   tx.executeSql('DELETE FROM LOGS WHERE id=1')
   tx.executeSql('DELETE FROM LOGS WHERE id=?',[id])
   tx.executeSql(`DELETE FROM LOGS WHERE id=${id}`)
}

批量修改

UPDATE LOGS SET key=内容 

单条需要加条件否则批量修改

UPDATE LOGS SET key=内容 WHERE id=2
//多条
db.transaction((tx)=>{
    tx.executeSql("UPDATE LOGS SET log='星期天'")
})
//单条
db.transaction((tx)=>{
    tx.executeSql("UPDATE LOGS SET log='星期天'  WHERE id=1 ")
})

SELECT * FROM LOGS //查表
db.transaction((tx)=>{
    tx.executeSql("SELECT * FROM LOGS ",[],function(tx,results){
    console.log(tx,results)
   })
})

查询有多重条件

%

2%表示 2开头

%2表示 2结尾

%2%表示 包含2

_下划线

_a表示 2位结尾是a

a_表示 2位开头是a

_a_表示三位中间是a

=> 大于小于

and 且

or 或

IN (1,2) 等于1或2

NOT IN (1,2) 不为1,或2

BETWEEN 1 AND 200 1 和200之间

 

你可能感兴趣的:(Web SQL (web数据库))