加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite3命令详解(上)

发布时间:2020-12-12 20:38:04 所属栏目:百科 来源:网络整理
导读:文章参照:www.sqlite.org/sqlite.html sqlite3 可以让我们手动的对SQLite数据库进行管理。一共有 2个sqlite3 ,一个在电脑上,它位于android-sdk-windowstoolssqlite3.exe,用于电脑上SQLite数据库进行管理;还有一个位于android系统上(手机上),它用于
文章参照:www.sqlite.org/sqlite.html sqlite3 可以让我们手动的对SQLite数据库进行管理。一共有 2个sqlite3 ,一个在电脑上,它位于android-sdk-windowstoolssqlite3.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 ,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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读