最近為了方便開發,經常需要檢視資料庫,但是每次都將db檔案匯出過程太繁瑣,於是便有了這篇文章,但是需要注意的是,我們需要手機的超級使用者許可權才能檢視本地資料庫,這裡也是乙個坑,大家可以自行搜尋相關資料。有了超級使用者許可權後,我們就可以開始下面的操作了。
首先,使用adb命令進入到手機系統當中,進入系統後執行su
命令,若此時手機root了在命令視窗就會出現#
號表示,擁有手機有用root許可權。
martindemacbook-pro:qmoorassistant martin$ adb shell
vince:/ # su
vince:/ #
vince:/data/data/com.martin.database/databases # ls
test.db test.db-journal
其中字尾名為journal的檔案是日誌檔案,我們不用管。直接使用sqlite命令去檢視資料庫,命令展示:
sqlite3 test.db
enter ".help" for usage hints.
sqlite> .help
.auth on|off show authorizer callbacks
.backup ?db? file backup db (default "main") to file
.bail on|off stop after hitting an error. default off
.binary on|off turn binary output on or off. default off
我們使用.help
幫助命令,會有很多系統命令,這裡我只介紹一些我平常開發中使用的。
首先進入資料庫中,肯定需要檢視資料庫中的表,命令展示:
sqlite> .table
android_metadata table_schema wxaccount wxmediafile
其中wxaccount
和wxmediafile
是我在專案中建立的表。平時我們在建立表的時候,肯定都給字段定義型別,這裡我們可以通過命令檢視。
命令:pragma table_info(table_name)
sqlite> pragma table_info(wxaccount) ;
0|id|integer|0||1
1|lastmsgid|text|0||0
2|wxuin|text|0||0
顯示很容易看,這裡就不多解釋了。這裡的顯示格式若不習慣的,sqlite也提供了顯示格式命令。
sqlite> .mode line
sqlite> pragma table_info(wxaccount);
cid = 0
name = id
type = integer
notnull = 0
dflt_value =
pk = 1
....
cid = 1
name = test1
type = text
notnull = 0
dflt_value =
pk = 0
這裡就會清楚很多,寫到這裡,我想大家應該很清楚如何進入本地資料庫了,下面是我使用sql檢視資料的操作,都比較簡單,若不敢興趣可以自行略過。
sqlite3支援基本的sql命令,sql命令不熟悉的可以去檢視這個鏈結sql 教程。
select column_name,column_name
from table_name;
sqlite> select * from wxaccount;
id = 1
lastmsgid =
lastoriginalmsgid =
lastthumbmsgid =
wxpassword =
wxuin =
test1 =
select column_name(s)
from table_name
where column_name like pattern;
select * from wxmediafile where thumbimgossid like '%.amr';
select * from wxmediafile where bigimgossid like '%.mp4';
insert into table_name (column1,column2,column3,...) values (value1,value2,value3,...);
insert into wxmediafile (type) values (3);
update table_name
set column1=value1,column2=value2,...
where some_column=some_value;
update wxaccount set lastmsgid='' where wxuin='1713258295';
迴圈修改select column_name(s)
from table_name
where column_name in (value1,value2,...);
1.首先查詢表中以***結尾的資料
2.通過id,迴圈修改thumbimgossid
為空
update wxmediafile set thumbimgossid='' where id in (select id from wxmediafile where thumbimgossid like '%.***');
delete from wxmediafile
-- 查詢所有記錄的條數
select count(*) from access_log;
-- 查詢websites 表中 alexa列中不為空的記錄的條數
select count(alexa) from websites;
-- 查詢websites表中 country列中不重複的記錄條數
select count(distinct country) from websites;
查詢資料庫中 bigimgossid不為null並且originalfileuploadflag=0的所有條數;
select count(*) from wxmediafile where bigimgossid is not null and originalfileuploadflag=0;
查詢資料庫中 bigimgossid不為null並且originalfileuploadflag=0的所有條數;
select count(*) from wxmediafile where thumbimgossid is not null and thumbfileuploadflag=0;
android中使用adb檢視sqlite資料庫
1.進入到控制台中,輸入adb shell,進入到命令模式的環境中 2.輸入cd data data 轉換到專案資料夾 3.選擇的專案檔案,比如我的com.android.homework,輸入命令 cd com.android.homework 4.可以使用ls l 命令檢視當前目錄中的檔案 5....
Android中使用全屏
在開發android研發時,最開始一般都會有個全屏顯示的閃屏,下面提供實現全屏的兩種方法 1 通過 實現 去掉標題欄 this.requestwindowfeature window.feature no title 全屏顯示 this.getwindow setflags windowmanage...
Android資料儲存和訪問之SQLite儲存
sqlite資料庫簡介 acid 資料庫事物正確執行的4個基本要素 1 原子性2 一致性3 隔離性4 永續性 資料的常用操作主要有以下 1 建立資料庫 2 新增資料庫 public void adddata view view 3 刪除資料 public void deletedata view v...