android sqlite数据库的操作

来源:互联网 发布:歌舞青春演员现状 知乎 编辑:程序博客网 时间:2024/04/30 13:12

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

Stop after hitting an error.Default OFF
.databases List names and files of attached databases(查看目前挂的数据库)
.dump ?TABLE? ... Dump the database in an SQL text format(以SQL格式输出表结构)
.echo ON|OFF Turn command echo on or off
.exit Exit this program(退出程序)
.explain ON|OFF Turn output mode suitable for EXPLAIN on or off.
.header(s) ON|OFF Turn display of headers on or off
.help Show this message(显示帮助信息)
.import FILE TABLE Import data from FILE into TABLE(把文件中的数据导入到表中,各字段用separator的值为分隔符)
.indices TABLE Show names of all indices on TABLE
.load FILE ?ENTRY? Load an extension library
.mode MODE ?TABLE? Set output mode where MODE is one of:(输出格式)
csvComma-separated values(各字段以逗号为分隔符输出)
columnLeft-aligned columns.(See .width)(以.width设置的宽度显示各字段)
htmlHTML <table> code(html表格格式输出)
insertSQL insert statements for TABLE(以insert SQL语句形式输出)
lineOne value per line(field = value的形式逐行输出)
listValues delimited by .separator string(各字段以separator的值为分隔符输出)
tabsTab-separated values
tclTCL list elements
.nullvalue STRING Print STRING in place of NULL values
.output FILENAME Send output to FILENAME(设置把查询输出到文件,后面的输出结果都保存到文件中)
.output stdout Send output to the screen(设置把查询结果输出到屏幕,默认)
.prompt MAIN CONTINUE Replace the standard prompts(修改提示符)
.quit Exit this program(退出)
.read FILENAME Execute SQL in FILENAME(执行文件中的SQL语句)
.schema ?TABLE? Show the Create statements(以SQL格式输出表结构)
.separator STRING Change separator used by output mode and .import(修改分隔符)
.show Show the current values for various settings(显示配置信息)
.tables ?PATTERN? List names of tables matching a LIKE pattern(看看有创建了多少表)
.timeout MS Try opening locked tables for MS milliseconds(超时时间,单位:毫秒)
.width NUM NUM ... Set column widths for "column" mode(设置列宽)

------------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';

 

原创粉丝点击