б
제목 adb shell 에서 sqilte3 사용 하기
글쓴이 DreamyCnI 날짜 2018.08.17 11:40 조회 수 137

디버깅 중, DB 파일을 다뤄야 할 때가 많습니다.

유용한 PC 툴이 많이 있지만, 안드로이드의 adb 에서도 sqlite3 를 지원하고 있습니다.

해당 기능을 이용하면, DB 파일을 간단히 확인해야 할 때 특히 유용합니다.(따로 PC툴을 열거나 DB파일을 PC로 옮길 필요가 없음)

아래 예제를 보면서 사용하는 방법을 익혀보세요. 4,5번을 보시면 아시겠지만 일반 SQL 문이 그대로 적용됩니다.

1.  DB 파일로 접근하기

-> adb shell # sqlite3 <DB 파일 경로>

------------------------------------------------------------------------------------------------------------------------------

2|shell@android:/ # sqlite3 /data/data/com.lge.qremote/databases/qremotesettings.db
emote/databases/qremotesettings.db <
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

 

2. 기본 명령어 확인하기

sqlite> .help


3. 해당 DB의 table 확인하기

 

sqlite> .tables
.tables
android_metadata tblDevices tblRooms
tblBrandNames tblFavoriteChannels tblWiFiRemoteTvInfo
tblCustomRemoteInfo tblPreferences


4. 해당 table 내용 읽기

.headers on 을 미리 입력하면, table의 header 정보를 함께 보여줍니다.

------------------------------------------------------------------------------------------------------------------------------

 

sqlite> .headers on
.headers on
sqlite> select * from tblRooms;
select * from tblRooms;
room_id|room_name|icon|current_room
1|living_room|0|1
2|bed_room|6|0
3|sp_Kitchen_NORMAL|12|0
4|sp_Den_room_NORMAL|18|0
5|office|24|0

 

5. DB 수정하기

sqlite> update tblRooms set current_room=5 where room_id=4;
update tblRooms set current_room=5 where room_id=4;
sqlite> select * from tblRooms;
select * from tblRooms;
room_id|room_name|icon|current_room
1|living_room|0|1
2|bed_room|6|0
3|sp_Kitchen_NORMAL|12|0
4|sp_Den_room_NORMAL|18|5
5|office|24|0
sqlite>