cmd下演示SQLite

来源:互联网 发布:石油钻井数据与油价 编辑:程序博客网 时间:2024/04/30 09:03

参考原文
最近在看几个大神的博客,看了之后觉得受益匪浅,跟着大神的博客动手实操一下,随便记一下笔记。
!!!如果在cmd中输入adb shell提示不是内部或外部命令,就要把adb.exe目录地址保存在系统环境变量的PATH中。

在cmd命令行中输入adb shell就可以进入控制台:
这里写图片描述
输入cd data/data进入/data/data目录
用ls可以看有多少子目录
这里写图片描述

这里写图片描述
进入com.android.providers.contacts目录下
这里写图片描述

再ls可以看到有databases、files、lib和shared_prefs这几个子目录。其中database肯定是用于存放数据库文件的,files是用于存放普通文本文件的,lib是用于存放so库的,shared_prefs则是用于存放shared文件的。这是Android数据持久化的几种可选择方式。
这里写图片描述
接着进入databases,再ls
这里写图片描述
后缀名为journal的文件使日志文件。contact2.db和profile.db才是真正的数据库文件。
可以用sqlite3命令来打开数据库。
这里写图片描述
这样就已经打开数据库了
我们可以输入.table命令来获取数据库中的表
这里写图片描述
是的,有很多张表,如果想知道某张表中有哪些列,我们可以使用“pragma table_info(TABLE_NAME);”这个命令来查表的结构
这里写图片描述

可以看到accounts表中有四列,我们可以输入.mode line切换显示模式,然后重新运行pragma命令
这里写图片描述

现在可以查一查accounts中的数据,用select语句就可以查了
这里写图片描述
由于模拟器里面没有账户信息,所以查询的结果为空,当然我们可以自己添加账户信息,添加后就可以查到我们添加的信息了

值得一提的是,每个SQLite数据库中都还有一个隐藏的sqlite_master表,这里记载了当前数据库中所有表建表语句,可以使用select * from sqlite_master命令进行查看,可以使用where语句来过滤出我们要查询的那部分内容:
这里写图片描述
CREATE TABLE accounts (_id INTEGER PRIMARY KEY AUTOINCREMENT, account_name TEXT, account_type TEXT, data_set TEXT)就是建表语句了。

0 0