android中sqlte数据的存放位置为:/data/data/package_name/databases/..
读取方式1:使用android NDK tools目录下sqlite3工具查看
不需要打开该工具,只要在window命令行模式下输入adb shell进入shell模式,输入sqlite3 data/data/package_name/databases/*.db(*为要查看的数据库名)就可进入数据库管理模式,从而进行相应的数据操作。
在该过程中可能出现的问题:
1:在shell模式下的权限问题,拥有管理员权限(#)sqlite3 ... 命令才会成功,否则会出现无权限的提示。如果是非管理员($)可通过su命令进行切换。
2:在进入sqlite模式后,使用.tables等查询命令查询不出任何数据。这是数据库的读写权限在作怪,退出该模式进入,在shell模式下用chmod 777 数据库path更改数据库文件的权限就可以进行相应的数据库操作了。
3:在shell模式下,sqlite3命令不能用,这和手机有关。
读取方式2:使用外部如navicat、SQLiteSpy等进行操作。
在DDMS下File Exploer栏目下(可通过window-->show views-->File exploer打开)或window命令模式使用命令adb pull /data/data/package_name/databases/*.db c:/ (*为要导出的数据库名)将数据库导出到本地,如出错为权限问题,解决方式见上面的更改权限方法。然后网上下载navicat、SQLiteSpy等工具,就可以打开数据库,进行增删改查的操作了,操作完后将数据库 push到/data/data/package_name/databases/目录下即可。
------------sqlite .help---------------
.bail ON|OFF
.databases
.dump ?TABLE? ...
.echo ON|OFF
.exit
.explain ON|OFF
.header(s) ON|OFF
.help
.import FILE TABLE
.indices TABLE
.load FILE ?ENTRY?
.mode MODE ?TABLE?
.nullvalue STRING
.output FILENAME
.output stdout
.prompt MAIN CONTINUE
.quit
.read FILENAME
.schema ?TABLE?
.separator STRING
.show
.tables ?PATTERN?
.timeout MS
.width NUM NUM ...
------------sqlite3常用命令---------------
.tables 显示所有表
.schema 显示数据库的schema
.schema table_name 显示表的schema
.headers on 显示标题栏,即字段名栏,如在查看数据中数据时,默认select * from table_name不显示字段名。
alter table 修改表。改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名;增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定符
select * from sqlite_master where type="table"; 显示所有表的结构
select * from sqlite_master where type="table" and name="table_name"; 显示某个表的结构
drop table table_name 删除表
.quit 退出
.read FileName 执行FileName中的sql
标准的sql语句也可以用,但必须用分号结束,如下
select语句;
delete语句;
update语句;
insert语句;
eg:
sqlite> create table admin(username text,age integer);
sqlite> insert into admin values('kuang',25);
sqlite> select * from admin;
sqlite> update admin set username='kk',age=24 where username='kuang' and age=25;
sqlite> delete from admin where username='kk';