android中使用sqlite命令編輯資料庫

2021-09-21 18:22:24 字數 3779 閱讀 3459

最近為了方便開發,經常需要檢視資料庫,但是每次都將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

其中wxaccountwxmediafile是我在專案中建立的表。平時我們在建立表的時候,肯定都給字段定義型別,這裡我們可以通過命令檢視。

命令: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...