sqlite3命令详解(上)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:57 点击:

 

文章参照:www.sqlite.org/sqlite.html

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权限。

如果是android系统的sqlite3程序(通过shell运行),你可以Ctrl键+D ,然后回车退出该程序回到shell,也可以Ctrl键+C直接退出Shell,如果是电脑上的sqlite3,可以Ctrl键+C直接退出sqlite3程序。

下面就是一个创建包含一个名叫"tbl1"的表的名叫"ex1"的SQLite数据库的示例。

示例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>

sqlite3支持两种命令,一种是SQL命令,一种是非SQL命令,非SQL命令以"."作为前缀,比如".tables"命令。

可以通过".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

sqlite> select * from sqlite_master;

select * from sqlite_master;

table|android_metadata|android_metadata|3|CREATE TABLE android_metadata (locale

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|

table|sqlite_sequence|sqlite_sequence|6|CREATE TABLE sqlite_sequence(name,seq)

index|systemIndex1|system|7|CREATE INDEX systemIndex1 ON system (name)

table|secure|secure|8|CREATE TABLE secure (_id INTEGER PRIMARY KEY AUTOINCREMENT

,name TEXT UNIQUE ON CONFLICT REPLACE,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

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Request.ServerVariables 参数大全
    • 执行全文索引时出现权限不足的解决方法
    • 导入excel文件处理流程节点的解决方案
    • 查看sql修改痕迹(SQL Change Tracking on Table)
    • MongoDB安装为Windows服务方法与注意事项
    • App数据层设计及云存储使用指南
    • PostgreSQL启动过程中的那些事三:加载GUC参数
    • 写给MongoDB开发者的50条建议Tip1
    • Percolator与分布式事务思考(二)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1