【手机端】看懂一个数据库
tasker吧
全部回复
仅看楼主
level 9
馊傻仔 楼主
首先手机要自备 sqlite3 binary for Android,也就是可执行的 sqlite3,如果要读取系统里的数据库,还要root,测试的时候最好用终端模拟器,比较方便。
直接正题,这里以手机联系人数据库为例,该数据库路径为 /data/data/com.android.providers.contacts/databases/contacts2.db :
2015年04月29日 04点04分 1
level 9
馊傻仔 楼主

sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db;
进入sqlite3命令行,并且读入数据库

sqlite> .headers on
打开表头显示,就是excel里面的列头的意思,方便后面查询时分析数据
2015年04月29日 04点04分 2
level 9
馊傻仔 楼主

sqlite> .tables
输出该数据的所有表的名:
_sync_state phone_lookup view_data_usage_stat
_sync_state_metadata photo_files view_entities
accounts properties view_groups
agg_exceptions raw_contacts view_raw_contacts
android_metadata search_index view_raw_entities
calls search_index_content view_stream_items
contacts search_index_docsize view_v1_contact_methods
data search_index_segdir view_v1_extensions
data_usage_stat search_index_segments view_v1_group_membership
default_directory search_index_stat view_v1_groups
deleted_contacts settings view_v1_organizations
directories status_updates view_v1_people
groups stream_item_photos view_v1_phones
mimetypes stream_items view_v1_photos
name_lookup v1_settings visible_contacts
nickname_lookup view_contacts voicemail_status
packages view_data
注:可以看到这里有非常多表,具体哪个表什么用,百度是最好的;
data 就是联系人的表,
calls 是通话记录
进一步,可以查询表
sqlite_master,里面的信息更详细
sqlite>select * from sqlite_master;
type|name|tbl_name|rootpage|sql
table|android_metadata|android_metadata|3|CREATE TABLE android_metadata (locale TEXT)
table|_sync_state|_sync_state|4|CREATE TABLE _sync_state (_id INTEGER PRIMARY KEY,account_name TEXT NOT NULL,account_type TEXT NOT NULL,data TEXT,UNIQUE(account_name, account_type))index|sqlite_autoindex__sync_state_1|_sync_state|5|
table|_sync_state_metadata|_sync_state_metadata|6|CREATE TABLE _sync_state_metadata (version INTEGER)
................
注:第一行就是表头,可以看到 name 就是表名
2015年04月29日 04点04分 3
level 13
其实我想说,太长不看[阴险]
2015年04月29日 14点04分 8
除开那些输出的数据不想截图,其实也挺少的,说明你还没用到数据库。
2015年04月29日 23点04分
level 10
恭喜你的文章成为精髓,希望朋友能提供一些复合的select语句知识教程(好懂易学的)。我要学习一下。
2015年04月30日 14点04分 10
level 10
下载WHATSTASKER插件之后,可以得到最新的SQLITE文件。
2015年05月02日 06点05分 12
如何得到 已经两小时 仍然无法安装sqlite
2016年08月27日 01点08分
已get
2016年08月27日 02点08分
1