转:http://blog.sina.com.cn/s/blog_63c87a220100n7xj.html
1.利用adb工具进入 shell:adb shell。(在电脑的cmd打开到sdk shell)
2. ls,cd data/data/...../databases/目录。(查找数据库:find data -name "*.db" -print )
3.打开某个数据库:sqlite3 xxx.db。
4.查看数据库里的内容:.dump。
5.查询等sql语句:select * from xxxtable;。
(sqlite3: 一个SQLite数据库的命令行接口)
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。
开始
$sqlite3 ex1
SQLite version 3.3.17
Enter ".help" for instructions
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!', 10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>
sqlite> create table tbl2(
sqlite>
题外话:查询SQLITE_MASTER表
$ sqlite3 ex1
SQlite vresion 3.3.10
Enter ".help" for instructions
sqlite> select * from sqlite_master;
tbl_name = tbl1
rootpage = 3
sqlite>
sqlite3的特殊命令
你可以在任何时候输入“.help”,列出可用的点命令。例如
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 ...
sqlite>
改变输出格式
sqlite> .mode list
sqlite> select * from tbl1;
hello|10
goodbye|20
sqlite>
sqlite> .separator ", "
sqlite> select * from tbl1;
hello, 10
goodbye, 20
sqlite>
sqlite> .mode line
sqlite> select * from tbl1;
one = hello
two = 10
one = goodbye
two = 20
sqlite>
sqlite> .mode column
sqlite> select * from tbl1;
one
----------
hello
goodbye
sqlite>
sqlite> .width 12 6
sqlite> select * from tbl1;
one
------------
hello
goodbye
sqlite>
sqlite> .header off
sqlite> select * from tbl1;
hello
goodbye
sqlite>
sqlite> .mode insert new_table
sqlite> select * from tbl1;
INSERT INTO 'new_table' VALUES('hello',10);
INSERT INTO 'new_table' VALUES('goodbye',20);
sqlite>
把结果写到文件中
sqlite> .mode list
sqlite> .separator |
sqlite> .output test_file_1.txt
sqlite> select * from tbl1;
sqlite> .exit
$ cat test_file_1.txt
hello|10
goodbye|20
$
查询数据库结构
sqlite> .tables
tbl1
tbl2
sqlite>
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1事实上,你可以查看sqlite3的源代码(可以在源文件树的src/shell.c中),你可找到上面的具体的查询。“.indices”命令作用类似的方式是列出特定表的所有的索引。“.indics”命令须一个参数即所要索引表的表名。最后,但不是至少,是“.schema”命令。不带任何参数,“.schema”命令显示原始的用于创建当前数据库的CREATE TABLE和CREATE INDEX语句。如果你给".schema"命令一个表名,它显示原始的创建该表和它所有索引的CREATE语句。我们可以:sqlite>
.schemacreate table tbl1(one varchar(10), two smallint)CREATE TABLE tbl2 (
SELECT sql FROM
WHERE type!='meta'
ORDER BY tbl_name, type DESC, name
.databases 列出数据库文件名
.tables ?PATTERN? 列出?PATTERN?匹配的表名
.import FILE TABLE 将文件中的数据导入的文件中
.dump ?TABLE? 生成形成数据库表的SQL脚本
.output FILENAME 将输出导入到指定的文件中
.output stdout 将输出打印到屏幕
.mode MODE ?TABLE?
.nullvalue STRING 用指定的串代替输出的NULL串
.read FILENAME 执行指定文件中的SQL语句
.schema ?TABLE? 打印创建数据库表的SQL语句
.separator STRING 用指定的字符串代替字段分隔符
.show 打印所有SQLite环境变量的设置
.quit 退出命令行接口