sqlite3命令詳解(上)

2021-08-26 12:53:23 字數 3288 閱讀 5367

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_temp_master"的表中. the "sqlite_temp_master" table is temporary itself.

sqlite3 命令介紹

用sqlite3建立資料庫的方法很簡單,只要在shell下鍵入 以下 符號為shell提示號,請勿鍵入 sqlite3 foo.db 進入了sqlite3之後,會看到以下文字 sqlite version 3.1.3 enter help for instructions sqlite 這時如果使用...

使用sqlite3 模組操作sqlite3資料庫

python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...

在arm上測試sqlite3

這裡以sqlite官方站點http sqlite.org 的quick start文件中的測試程式為例對移植到arm linux上的sqlite3進行測試。該程式清單如下 1 include 2 include sqlite3.h 3 4 static int 5 callback void not...