`
mmdev
  • 浏览: 12930160 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

sqlite3命令详解(上)

 
阅读更多
文章参照: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 bookmarksIndex2 ON bookmarks (sh
ortcut)
sqlite>
关于TEMPORARY tables的schema并没有保存在 "sqlite_master" 表中,因为TEMPORARY表只对创建它的applications可见.
关于TEMPORARY tables的schema保存在另外一个名叫"sqlite_temp_master"的表中. The "sqlite_temp_master" table is temporary itself.
分享到:
评论

相关推荐

    android-SQLite3命令详解教程

    android-SQLite3命令详解教程,转发分享

    Android Sqlite命令详解(基本命令)

    主要介绍了Android Sqlite命令详解(基本命令)的相关资料,需要的朋友可以参考下

    基于Android SQLite的升级详解

    SQLite提供了ALTER TABLE命令,允许用户重命名或添加新的字段到已有表中,但是不能从表中删除字段。 并且只能在表的末尾添加字段,比如,为 Subscription添加两个字段: 代码如下:ALTER TABLE Subscription ADD ...

    详解Python 数据库 (sqlite3)应用

    Python标准库中的sqlite3提供该数据库的接口。 我将创建一个简单的关系型数据库,为一个书店存储书的分类和价格。数据库中包含两个表:category用于记录分类,book用于记录某个书的信息。一本书归属于某一个分类,...

    解析SQLite中的常见问题与总结详解

    2、 如何通过sqlite3.dll与sqlite3.def生成sqlite3.lib文件LIB /DEF:sqlite3.def /machine:IX863、 sqlite3_open打开一个数据库时,如果数据库不存在就会新生成一个数据库文件。如果接着执行其他查询语句就会失败,...

    DJango的创建和使用详解(默认数据库sqlite3)

    3)编辑家目录下面的.bashrc文件,添加下面两行。 export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 4)使用source .bashrc使其生效一下。 创建虚拟环境命令: mkvirtualenv 虚拟...

    rest-smtp-sink:与fakesmtp相似,rest-smtp-sink是SMTP服务器和Web服务器。 它将收到的电子邮件存储在SQLite数据库中,并通过其自己的带有RESTful API的Web服务器为它们提供服务

    与相似,rest-smtp-sink是SMTP服务器和Web服务器。 它将收到的电子邮件存储在数据库中,并使用RESTful API通过自己的Web服务器为其提供服务。 安装 npm install -g rest-smtp-sink ... SQLite数据库文件

    微信小程序 本地数据存储实例详解

    微信小程序 本地数据存储实例详解 前言 如果您在看此文章之前有过其他程序的开发经验,那一定会知道一般例如安卓或者苹果的原生APP都提供了本地的存储功能,甚至可以使用sqlite数据库来做存储。可是微信的小程序框架...

    android系统contentprovier和数据库详解

    详细阐述contentprovier相关的类,用法,以及先关SQLITE数据的语句,语法,命令等

    详解iOS的数据存储

     4.SQLite3  5.Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录)与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 模拟器应用沙盒的根路径在: (apple是...

    编程狂人第九期(2014-1-20)

    Valve欲将影视、音乐搬上SteamOS 中国自主研发cos操作系统 前端开发 Javascript和CSS浏览器兼容总结 盘点2013:最优秀的HTML5&CSS3设计 浏览器中关于事件的那点事儿 了解Json 和XML 常用CSS优化总结——网络性能与...

    linux下编译安装kangle web server教程详解

    请先确保你的系统上有g++,libz开发包,libpcre开发包,libiconv开发包。如你的系统为centos/rhel则运行下面命令安装这些包: yum -y install wget make automake gcc gcc-c++ pcre-devel zlib-devel sqlite-devel ...

    go语言web编程

    1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单...

    [Django] Django 连接 MySQL数据库 以及 makemigrations&migrate 过程详解总结

    Django 连接 MySQL数据库过程安装MySQL数据库安装mysqlclient包配置settings.py文件生成迁移文件ORM迁移文件具体操作生成数据库的表 ...安装命令pip3 install mysqlclient(blog) [root@centos7 testBl

    Android文件操作

    android文件架构详解 cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处。 红色标记的两个文件是debug模式下产生的 data : 存放用户安装的软件以及各种数据。 default.prop : 默认配置文件 ...

    asp.net知识库

    ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认中的主题外观 数据库开发 ADO.NET 通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO...

    php-7.2.26.tar.xz

    --with-pdo-sqlite \ --with-pdo-mysql \ --with-mysqli \ --with-mysql-sock \ --enable-mysqlnd \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ -...

Global site tag (gtag.js) - Google Analytics