Android SQLite 数据库常用命令

本文介绍了如何通过adb shell和sqlite3命令行工具直接查看和操作Android应用程序的SQLite数据库,包括打开数据库文件、查看表、执行CRUD操作、查看表结构和建表语句等,是Android开发者的一份实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处:https://blog.youkuaiyun.com/turtlejj/article/details/105015349,谢谢~

       最近在工作中,看到有一部分同事,在查看Android应用程序的数据库文件时,都要先通过adb pull命令,把db文件从手机拷贝到电脑端,再通过一些软件打开查看。这种方式虽然没有什么问题,但在执行某些操作后,数据库发生变化,如果想再次查看,又要再执行一次adb pull操作,很麻烦。

       其实,我们完全可以通过adb shell,使用sqlite3这个命令行工具,来查看我们db文件中的表、表结构以及表中存储的数据。

       本篇文章,既是我给自己写的一份备忘,也希望能为不熟悉sqlite3工具的同学提供一份命令速查手册,方便大家在使用的时候,不用再去各个地方查找资料。

       当然,由于篇幅原因,我们这里并不会列出sqlite3的所有命令,但对于Android应用的开发和调试来说,完全可以满足。

 

一、Android应用程序的database目录

       Android应用程序,如果需要使用数据库来对数据进行持久化,一定会在应用的目录下生成一个database文件夹,用以存放db文件,如下所示。

       其中,.db文件,为应用程序进行数据持久化的数据库文件;而.db-journal文件,则是系统自动生成的日志文件,用于数据库在进行事务时的回滚操作,一般情况下,该文件的大小为0。

pixel:/data/data/com.example.demo/databases # ls -al
total 60
drwxrwx--x 2 u0_a215 u0_a215  4096 2020-03-14 10:25 .
drwx------ 6 u0_a215 u0_a215  4096 2020-03-14 10:25 ..
-rw-rw---- 1 u0_a215 u0_a215 49152 2020-03-14 10:40 demo.db
-rw-rw---- 1 u0_a215 u0_a215     0 2020-03-14 10:40 demo.db-journal

 

二、使用sqlite3打开db文件

       使用sqlite3打开db文件时,可以指定打开的方式为“可写模式”或“只读模式”。(某些旧版本的sqlite3可能没有readonly选项)

# 可写模式打开db文件
pixel:/data/data/com.example.demo/databases # sqlite3 demo.db 
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
sqlite> 

# 只读模式打开db文件
pixel:/data/data/com.example.demo/databases # sqlite3 -readonly demo.db 
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
sqlite> 

 

三、退出sqlite3模式

       退出sqlite3有三种方式,我们这里比较推荐前两种

# 使用".exit"
sqlite>.exit
pixel:/data/data/com.example.demo/databases # 


# 使用".quit"命令
sqlite>.quit
pixel:/data/data/com.example.demo/databases # 


// 连续按三次"Ctrl + C"
sqlite> ^C^C^C
pixel:/data/data/com.example.demo/databases # 

 

四、sqlite3的几种显示模式

       sqlite3在显示数据时,有10种模式,如下所示。

sqlite> .mode mode_name
mode_name list:
  ascii    Columns/rows delimited by 0x1F and 0x1E   # 以ASCII码显示,可能会是乱码
  csv      Comma-separated values                    # 以"逗号"分隔
  column   Left-aligned columns.  (See .width)       # 以左对齐方式显示
  html     HTML <table> code                         # 以html格式显示
  insert   SQL insert statements for TABLE           # 以SQL语句形式展示数据是如何插入的
  line     One value per line                        # 单行显示,并显示每个值的变量名
  list     Values delimited by "|"                   # 以"|"分隔,这是sqlite3的默认模式
  quote    Escape answers as for SQL                 # 类似"insert"模式,但该
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值