Android面试整理之SQLite数据库——如何管理SQLite数据库

1. 使用SQLite的官方管理工具,它是一个命令行工具,在android的SDK中自带了sqlite3.exe(我的在目录E:\SDK\platform-tools下)。

  为了使用方便,需将其路径注册到系统环境变量path中,即将:%Android_Home%加在path中,这样只运行sqlite3,就能直接打开sqlite管理工具了。

在这个命令行工具中可以执行两种命令:SQL命令和控制台命令-----

A.其中SQL命令必须以分号(;)结尾

B.控制台命令必须以实心点(.)结尾,如:

.help    ------------------显示帮助信息

.quit    ------------------退出控制台信息

.tables  ------------------查看数据库的表列表 

.exit    ------------------退出sqlite命令行

  具体操作步骤如下(参考博客http://www.linuxidc.com/Linux/2011-06/37135.htm


在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令。

【1】在Android程序中,一般创建的数据库存放在 /data/data/[应用程序包名]/databases 的目录下。

【2】cd 命令:文件夹跳转命令。ls命令:查看某个文件夹下面有哪些文件。

【3】使用"sqlite3 [数据库名称] " 命令来对某数据库进行一系列的操作。

【4】在经过第【3】步骤后,可以使用.tables 命令查看某数据库中包含哪些表。若要查询某表中包含的数据,在 sqlite> 命令后输入查询的SQL语句即可查询,但要注意的是要以分号[;]来结束该语句的输入。

【5】若在命令行中输入 adb shell 后,提示:adb不是内部或外部命令,也不是可运行的程序,或批处理文件,遇到这种情况是由于环境变量没有设置好的问题导致的。解决方法:在安装的Android sdk 包目录下的找到adb工具所在目录,一般是在...\android-sdk-windows\tools目录或者在...\android-sdk-windows\platform-tools目录下。把该目录添加到path环境变量中就OK了。

下图是我运行时的截图:



由于出现 sqlite3 notfound 错误,时间关系所以没再继续往下了,下次再用这种方法,这种问题可参考下面两篇博客解决。

http://blog.csdn.net/myairen1365/article/details/21026767

http://www.android100.org/html/201303/19/1897.html

2.为了更方便地管理SQLite数据库,也可以使用第三方的可视化数据库管理工具,例如SQLiteExpert Professional, 这是一种较为流行的基于Windows平台的SQLite数据库管理工具。

 具体操作步骤如下:

 若是真机运行程序里的数据库,要先执行以下步骤:

用真机测试时,通常在Android studio或Eclipse的DDMS(真机中程序运行时,连上电脑,Android studio里的Android Device Monitor就可看到)点不开data文件夹,这样就查看不了真机里的数据库。

需要在linux中改变手机数据库访问权限(即能在DDMS中打开真机中的数据库)

Step1.用有root权限的真机

Step2.cmd中进入SDK下的platform-tools目录



Step3.按照以下命令行一步步输入

E:\SDK\platform-tools>    adb shell  

$    su      

#    chmod  777  data 

#    cd  data

#    chmod  777  data

#    cd  data

#    chmod  777  com.example.hyh.cgmms(要访问的包名)

#    ls

----------成功之后显示手机中所有的安装包的名称-------(这一步就可以进入data/data目录了,但还是进不了要访问的包com.example.hyh.cgmms)

#    cd com.example.hyh.cgmms(要访问的包名)

 

#    chmod 777  databases

#    cd databases

#    ls

-----------------此时只可以看到有哪些数据库,并没有对数据库操作的权限

#    chmod 777 XXX.db(要访问的数据库的名称)

---------------此时,才真正搞定,才能用第三方软件查看SQLite数据库

备注:每一行命令后都要加“回车符”执行,参考资料

http://www.programgo.com/article/79103073074/

展示一下这个过程:

 

DDMS中成功后显示如下:


  真机完成上述步骤后,可执行下面步骤导出Device中的数据库数据(模拟器可跳过上述步骤)
Step1.通过file explorer-> data ->data,找到运行的项目包名,点击“database”,找到你所创建的数据库名称,我这里是“TcBluetooth.db”


Step2.选中数据库“TcBluetooth.db”,右上角有3个亮着的按钮,分别是数据导出电脑、其他数据导入到模拟器和删除,这里我们点击第一个,自己选择一个位置进行保存。



Step3.运行SQLite expert Personal,点击file -> open database ,选择数据库,选择表,即可查看数据,实现数据库的管理


Ps:此处在打开软件SQLite expert Personal 时,出现错误access violation at address,按照下列方法试了半天,又出现:您不能在64位可执行文件上设置DEP属性
无奈,卸载后重新下载安装了一下软件,还是同样的错误,多次循环捣鼓,不知怎么出现一个兼容报告,说程序上次运行错误,然后,再打开程序,就莫名好了,奇怪!





  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常好用的SQLiteSpy 1.8.16 免费正式版(内附有一做好的DB,大家可以马上看下效果)。网上看到的,整理了下,共享给大家! 希望有用! SQLiteSpy是一个快速和紧凑的图形用户界面的SQLite数据库管理软件。它可以读取sqlite3文件并执行SQL。图形用户界面使得它很容易分析和操纵sqlite3的数据库。 注意:SQLiteSpy是免费供个人和教育用途,SQLiteSpy主要特点: 1、数据库一览:树状显示所有的架构,包括表,列,索引和触发器在数据库中包含的项目。按F5更新架构树,双击一个表或视图来显示它的数据,使用常用的命令的上下文菜单。 2、网格单元格编辑:表格单元格中编辑,显示一个表通过树状架构,选择一个单元格,然后按F2键调用编辑器。然后修改并确认您的更改写回到表里。 3、数据类型显示:本机的SQL数据类型显示不同的背景颜色来帮助检测类型错误。类型错误可能会导致性能下降或错误的SELECT结果集,防止NULL值与空字符串混淆。 4、完全的Unicode: SQLiteSpy具有完全支持SQLite的Unicode的能力。数据显示和输入是完全实现为Unicode,包括SQL命令。 5、多个SQL编辑:现代标签是用来编辑和显示的查询语句和结果比较容易多个SQL查询。 SQL查询执行输入或加载到SQL他们编辑。然后按F9键运行该查询,或Ctrl + F9来运行当前行或选择只。 6、时间测量: SQL执行的时间会自动测量和显示,以帮助优化查询。 7、正则表达式:在SQL关键字regexp是支持,并增加了完整的Perl的正则表达式语法5.10 SQLiteSpy。的实施,实现了利用DIRegEx库。 8、数学SQL函数:下面的SQL函数可用数学除了SQLite的默认:ACOS(), ASIN(), ATAN(), ATAN(), ATAN2(), CEIL(), CEILING(), COS(), COT(), DEGREES(), EXP(), FLOOR(), LN(), LOG(), LOG(), LOG2(), LOG10(), MOD(), PI(), POW(), RADIANS(), SIGN(), SIN(), SQRT(), TAN(), TRUNCATE(). 9、数据压缩:压缩的SQL函数()适用的zlib的紧缩到任何文本或BLOB值。 10、紧凑型结果储存:使用内部数据存储机制,以达到最佳的兼容SQLite的原生数据类型。因此,SQLiteSpy使用远低于其它的SQLite管理内存和更有效地处理大量的表。 11、内建的SQLite引擎: SQLiteSpy已建成一个单一的应用程序文件与SQLite数据库引擎可执行文件。不需要部署任何DLL文件,这使得SQLiteSpy更易于部署。 12、加密支持: SQLiteSpy可以阅读和修改加密的数据库文件由DISQLite3产生。 DISQLite3实现了自己的母语AES加密。这为不符合商业SQLite的加密扩展(SSE)的或任何其他第三方的实施提供兼容。 13、易安装和卸载:要运行SQLiteSpy,只需解压SQLiteSpy.exe文件到任何目录和执行文件。不需要安装。刚开始时,该程序创建一个文件SQLiteSpy.db3(1 sqlite3的数据库)来存储的和设置。它不写任何其他文件或注册表。卸载一样只是简单的删除两个文件:应用程序的可执行文件和数据库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值