`

如何调用SQLITE工具查看数据库

阅读更多

Find and connect to a database

You can find busybox on Benno’s site . If you can find the location of the .db file, you don’t really need busybox. Though i highly recommend it since it has many useful utilities.

C:\android>adb shell
# export PATH=/data/busybox:$PATH
export PATH=/data/busybox:$PATH
# find data -name "*.db" -print
find data -name "*.db" -print
data/data/com.google.android.providers.contacts/databases/contacts.db
data/data/com.google.android.providers.googleapps/databases/accounts.db
data/data/com.google.android.providers.im/databases/im.db
data/data/com.google.android.providers.media/databases/media.db
data/data/com.google.android.providers.telephony/databases/mms.db
data/data/com.google.android.providers.telephony/databases/sms.db
data/data/com.google.android.providers.telephony/databases/telephony.db
data/data/com.google.android.providers.settings/databases/settings.db
data/data/com.google.android.maps/databases/maps.db
# sqlite3 data/data/com.google.android.providers.contacts/databases/contacts.db
sqlite3 data/data/com.google.android.providers.contacts/databases/contacts.db
SQLite version 3.5.0
Enter ".help" for instructions
sqlite>

Find the list of tables and their structure

sqlite> .tables
.tables
_deleted_people  contact_methods  peopleLookup
calls            people           phones
sqlite> .schema people
.schema people
CREATE TABLE people (_id INTEGER PRIMARY KEY,_sync_account TEXT,_sync_id TEXT,_sync_time TEXT,_sync_version TEXT,_sync_local_id INTEGER,_sync_dirty INTEGER,_sync_mark INTEGER,name TEXT NOT NULL,notes TEXT,photo TEXT,company TEXT,title TEXT,preferred_phone INTEGER,preferred_email INTEGER);
CREATE INDEX peopleSyncIdIndex ON people (_sync_id);
CREATE TRIGGER contact_cleanup DELETE ON people BEGIN DELETE FROM peopleLookup WHERE source = old._id;DELETE FROM phones WHERE person = old._id;DELETE FROM contact_methods WHERE person = old._id;UPDATE calls SET person = NULL WHERE person = old._id;END;
CREATE TRIGGER contact_to_deleted DELETE ON people WHEN old._sync_id is not null BEGIN INSERT INTO _deleted_people (_sync_id, _sync_account, _sync_version) VALUES (old._sync_id, old._sync_account, old._sync_version);END;
CREATE TRIGGER peopleLookup_insert AFTER INSERT ON people BEGIN SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ');END;
CREATE TRIGGER peopleLookup_update UPDATE OF name ON people BEGIN DELETE FROM peopleLookup WHERE source = new._id;SELECT _TOKENIZE('peopleLookup', new._id, new.name, ' ');END;
sqlite> .schema phones
.schema phones
CREATE TABLE phones (_id INTEGER PRIMARY KEY,person INTEGER,type INTEGER,number TEXT,number_key TEXT,label TEXT);
CREATE INDEX phonesIndex1 ON phones (person);
CREATE INDEX phonesIndex2 ON phones (number_key);
CREATE TRIGGER phones_delete DELETE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;
CREATE TRIGGER phones_insert INSERT ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=new.person;END;
CREATE TRIGGER phones_update UPDATE ON phones BEGIN UPDATE people SET _sync_dirty=1 WHERE people._id=old.person;END;
CREATE TRIGGER preferred_phone_cleanup DELETE ON phones BEGIN UPDATE people SET preferred_phone = NULL WHERE preferred_phone = old._id; END;

Print some of the information from the tables

sqlite> .header on
.header on
sqlite> .mode column
.mode column
sqlite> select * from phones;
select * from phones;
_id         person      type        number        number_key    label
----------  ----------  ----------  ------------  ------------  ----------
1           1           1           +15085551212  21215558051+
2           1           0           +17815551212  21215551871+
3           1           2           +16175551212  21215557161+
sqlite> select * from people;
select * from people;
_id         _sync_account  _sync_id    _sync_time  _sync_version  _sync_local_id  _sync_dirty  _sync_mark  name              notes       photo       company     title       preferred_phone  preferred_email
----------  -------------  ----------  ----------  -------------  --------------  -----------  ----------  ----------------  ----------  ----------  ----------  ----------  ---------------  ---------------
1                                                                                 1                        Davanum Srinivas                                                  1

Other commands

sqlite> .help
.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
.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
.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:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML
code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL 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
.schema ?TABLE?        Show the CREATE statements
.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

分享到:
评论

相关推荐

    sqlite加解密工具.exe

    方便对SQLite数据库加密解密的小工具 功能实现参考了此网文:https://www.cnblogs.com/landv/p/11183634.html 要在C#里调用也参考以上连接,文章里有源码范例

    sqlite数据库操作

    Android 提供了一个名为 SQLiteDatabase 的类,该类封装了一些操作数据库的 API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为 CRUD) 。

    Nodejs操作Sqlite3数据库封装

    介绍node-sqlite3 API,并对API初步封装,方便开发人员调用,实现业务逻辑。

    sqlite数据库管理工具、带.net调用库和java驱动包

    非常好用的sqlite数据库管理工具、带.net调用库和java驱动包

    SQLite数据库使用工具类

    封装了SQLite的基本操作,只需要将源码导入工程,修改相应的字段名称,就能直接调用相应的封装好的方法。数据库的使用就是如此简单。

    java 操作sqlite 数据库增删改

    java 操作sqlite 数据库增删改,帮助工具类。 查询数据库集合,新增数据,删除数据,修改数据

    Qt Sqlite加密数据库驱动源代码

    这是我工作了一天的成果,压缩包内包括Qt sqlite加密驱动所有的代码,以及一个调用例程,还有一个sqlite3shell.exe工具,用于加密数据库命令行下的分析。 使用这个加密驱动很简单,只需以下3步: 1. 将驱动的代码...

    Sqlite 操作类 C# .net

    Sqlite 操作类 C# .net,嵌入式SQL //创建一个数据库文件 string datasource = @"d:/ChinaPower.s3db"; // System.Data.SQLite.SQLiteConnection.CreateFile(datasource); //连接数据库 System.Data....

    Sqlite数据库 wince开发包

    包含三个文件 sqlite.lib sqlite.dll sqlite3.h #include "sqlite3.h" #pragma comment(lib, “sqlite.lib”) 然后可以直接调用啦,要的朋友拿去吧, 是针对wince平台哦

    Android SQLite--小巧好用的SQLite GUI管理工具

    SQLiteSpy是一个快速和紧凑的图形用户界面的SQLite数据库管理软件。它可以读取sqlite3文件并执行SQL。图形用户界面使得它很容易分析和操纵sqlite3的数据库。 注意:SQLiteSpy是免费供个人和教育用途,SQLiteSpy主要...

    Android 对sqlite的封装,实现CRUD

    大家好,个人觉得用Sqlite数据库时,经常需要进行机械性的CRUD操作,故对其进行了一下封装,希望能起到抛砖引玉的作用。 目的:封装共有的CRUD 下面简单的说一下使用步骤,如果觉得多余,可以无视。 1. 实现自己...

    它是一款类似Navicat的工具,轻巧易用,可以查看扩展名为sqlite3/sqlite/db3/db的数据库文件,也可以新建N

    它是一款类似Navicat的工具,轻巧易用,可以查看扩展名为sqlite3/sqlite/db3/db的数据库文件,也可以新建New Database/Database URI/New SQL数据库。 了解更多功能: 1、数据库一览 树状显示所有的架构,包括表,列...

    SQLite.Helper:一个简单的工具,可帮助您使用C#管理SQLite数据库

    ####如果是,那就不用担心,SQLite.Helper是旨在帮助您管理SQLite数据库的类。 ####如何使用?####首先,请确保在您的系统上。 将DLL添加到您的项目引用中并使用代码 using SQLite . Helper ; 然后调用该类以...

    Sqlite及SQLiteDatabase的使用

    NULL 博文链接:https://410063005.iteye.com/blog/1567413

    Sqliteman-1.2.2

    这是一个查看由sqlite生成的数据库工具,使用此工具可以打开sqlite的数据库,也可以用此工具新建数据库、创建数据库表等等,然后又sqlite打开调用,非常方便适用。

    DataPie数据库导入导出工具v3.7源码

    支持SQL server、SQLite、ACCESS数据库的导入、导出、存储过程调用,支持EXCEL2007、EXCEL2003、ACCESS2007、 CSV文件导入数据库,支持EXCEL、CSV文件方式导出,支持数据拆分导出及自定义SQL查询与导出。

    OpenskyRecorder:调用OpenSky REST API并存储对SQLite数据库的响应

    OpenskyRecorder 调用OpenSky REST API并存储对SQLite数据库的响应使用前重要这是与OpenSky REST API进行交互的非正式工具。 有关如何使用所提供数据的条款和条件,请首先访问 ! 该脚本是为我的特定用例构建的。 它...

    SQLiteSpy可视化工具

    SQLiteSpysqlitespy是一个快速和紧凑的图形用户界面的SQLite数据库管理。它读取sqlite3的文件和对他们的SQ执行L。它的图形用户界面使得它很容易探讨,分析和操纵sqlite3的数据库。 注意:SQLiteSpy是免费供个人和...

    【最新版】navicat150_premium_en.dmg navicat-premium: 15.0.14【亲测可用】最好的MySQL数据库开发工具

    Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure...

    sqlcipher数据库

    zySqlcipher管理工具.e 修改之前的sqlite3管理工具作为Sqlcipher管理工具。sqlcipher4.1 文件夹里面是4.1版的DLL。sqlcipher-3.0-testkey.db 是测试数据库,密码是testkey。@酷宝贝。Tags:sqlcipher数据库。

Global site tag (gtag.js) - Google Analytics