SQLite数据库介绍

        最近研究了几个软件,不管是之前的 clip studio paint 还是今个刚开始的 davince resolve,都有用到 sqlite 数据库来存储应用内部的一些数据。以 clip studio paint 的快捷键配置为例:

lucas@lucasdeMacBook-Pro Shortcut % pwd
/Users/lucas/Library/CELSYS/CLIPStudioPaintVer1_5_0/Shortcut
lucas@lucasdeMacBook-Pro Shortcut % ll
total 200
-rw-r--r--  1 lucas  staff  24576  9 28 23:00 DefaultToolModifyKey.tomd
-rw-r--r--  1 lucas  staff  57344 12  1 17:33 default.khc
-rw-r--r--  1 lucas  staff  20480 12  1 17:25 dialogstate
lucas@lucasdeMacBook-Pro Shortcut % sqlite3 default.khc
SQLite version 3.32.3 2020-06-18 14:16:19
Enter ".help" for usage hints.
sqlite> .table
shortcutinfo  shortcutmenu
sqlite>

        执行 .table 命令即可查看当前库中所有表,表 shortcutmenu 就记录了 csp 的所有快捷键,查询语句同 mysql

sqlite> select count(1) from shortcutmenu;
722
sqlite> select * from shortcutmenu limit 3;
3617|advancedcommand|applicationabout|NULL|0
3618|advancedcommand|applicationversion|NULL|0
3619|advancedcommand|applicationpreference|K|4

        这样虽能查出数据,但并不知道各个数据含义,且样式不够美观,可以做如下设置:

sqlite> .headers on
sqlite> .mode column
sqlite> select * from shortcutmenu limit 3;
_PW_ID      menucommandtype  menucommand       shortcut    modifier
----------  ---------------  ----------------  ----------  ----------
3617        advancedcommand  applicationabout  NULL        0
3618        advancedcommand  applicationversi  NULL        0
3619        advancedcommand  applicationprefe  K           4

        如此看起来就舒服多了,如果查看表结构可执行 .schema 命令:

sqlite> .schema shortcutmenu
CREATE TABLE shortcutmenu(_PW_ID INTEGER PRIMARY KEY AUTOINCREMENT, menucommandtype TEXT DEFAULT NULL, menucommand TEXT DEFAULT NULL, shortcut TEXT DEFAULT NULL, modifier INTEGER DEFAULT NULL);

        .dump 可将其导出至文本文件:

sqlite> .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE shortcutmenu(_PW_ID INTEGER PRIMARY KEY AUTOINCREMENT, menucommandtype TEXT DEFAULT NULL, menucommand TEXT DEFAULT NULL, shortcut TEXT DEFAULT NULL, modifier INTEGER DEFAULT NULL);
INSERT INTO shortcutmenu VALUES(3617,'advancedcommand','applicationabout','NULL',0);
INSERT INTO shortcutmenu VALUES(3618,'advancedcommand','applicationversion','NULL',0);
...
COMMIT;
sqlite> .q
lucas@lucasdeMacBook-Pro Shortcut % sqlite3 default.khc .dump > testDb.txt
lucas@lucasdeMacBook-Pro Shortcut % ll
total 336
-rw-r--r--  1 lucas  staff  24576  9 28 23:00 DefaultToolModifyKey.tomd
-rw-r--r--  1 lucas  staff  57344 12  1 17:33 default.khc
-rw-r--r--  1 lucas  staff  20480 12  1 17:25 dialogstate
-rw-r--r--  1 lucas  staff  66012 12  6 20:50 testDb.txt

        常用命令就以上这些了,其他的 insertupdate 等等也基本类似于 mysql,需要时再查即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值