sqlite3
可以让我们手动的对sqlite数据库进行管理。一共有
2个sqlite3
,一个在电脑上,它位于android-sdk-windows\tools\sqlite3.exe,用于电脑上sqlite数据库进行管理;还有一个位于android系统上(手机上),它用于位于Android系统上的sqlite数据库进行管理,对于后者你需要通过adb shell进入shell。有时我们不想直接在android系统上对sqlite数据库进行操作,这时可以把它拷贝到电脑上进行操作。
但是需要注意前者是window系统,后者是Linux系统,他们表示路径的方式不一样。
在sqlite3命令后可跟一个参数指定要打开或创建的数据库文件。如果指定的数据库文件还不存在,就会新建一个数据库,且以该参数作为文件名。对于android系统上的sqlite3,必须通过其shell来运行,如果新建数据库的话,需要root权限,可以在shell中键入"su"来获得root权限。
示例1:
$
sqlite3 ex1
sqlite version 3.3.10
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>
可以通过".help"命令来查看它所有的非sql命令.所有不以"."为前缀的语句,都将做sql进行解释,当时对于sql语句你需要在末尾加上分号";"以表示sql语句输入完成,这时你输入的命令才开始按照sql语言进行执行。
比如,示例2:
sqlite> CREATE TABLE tbl2 (
...> f1 varchar(30) primary key,
...> f2 text,
...> f3 real
...> );
sqlite>
关于数据库的schema是存放在一个叫sqlite_master的表中,你虽然不能对它进行DROP TABLE,UPDATE,INSERT or DELETE操作,但是可以像普通的表一样对它进行查询。
比如,示例3:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
sqlite version 3.6.22
Enter ".help" for instructions
Enter sql statements terminated with a ";"
sqlite>
.tables
.tables
android_Metadata bookmarks system
bluetooth_devices secure
select * from sqlite_master;
TEXT)
table|system|system|4|CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT
,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT)
index|sqlite_autoindex_system_1|system|5|
index|systemIndex1|system|7|CREATE INDEX systemIndex1 ON system (name)
table|secure|secure|8|CREATE TABLE secure (_id INTEGER PRIMARY KEY AUTOINCREMENT
,value TEXT)
index|sqlite_autoindex_secure_1|secure|9|
index|secureIndex1|secure|10|CREATE INDEX secureIndex1 ON secure (name)
table|bluetooth_devices|bluetooth_devices|11|CREATE TABLE bluetooth_devices (_id
INTEGER PRIMARY KEY,name TEXT,addr TEXT,channel INTEGER,type INTEGER)
table|bookmarks|bookmarks|12|CREATE TABLE bookmarks (_id INTEGER PRIMARY KEY,tit
le TEXT,folder TEXT,intent TEXT,shortcut INTEGER,ordering INTEGER)
index|bookmarksIndex1|bookmarks|13|CREATE INDEX bookmarksIndex1 ON bookmarks (fo
lder)
index|bookmarksIndex2|bookmarks|14|CREATE INDEX bookmarksIndex2 ON bookmarks (sh
ortcut)
sqlite>