共計(jì) 1968 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行 SQLite 數(shù)據(jù)庫(kù)管理相關(guān)命令的使用分析,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
1. 創(chuàng)建數(shù)據(jù)庫(kù)
啟動(dòng)命令行,通過(guò)輸入如下命令打開(kāi) Shell 模式的 CLP:
sqlite3 test.db
雖然我們提供了數(shù)據(jù)庫(kù)名稱,但如果該數(shù)據(jù)庫(kù)不存在,SQLite 實(shí)際上就未創(chuàng)建該數(shù)據(jù)庫(kù),直到在數(shù)據(jù)庫(kù)內(nèi)部創(chuàng)建一些內(nèi)容時(shí),SQLite 才創(chuàng)建該數(shù)據(jù)庫(kù)。
2. 創(chuàng)建數(shù)據(jù)表
sqlite create table Member(id integer primary key, name text, age integer,addr text);
注:id 為主鍵,該列默認(rèn)具備自動(dòng)增長(zhǎng)的屬性。
3. 插入數(shù)據(jù)
sqlite insert into Member values(0, wwl ,21, 上海 //id= 0 的列必須不存在,否則會(huì)出錯(cuò)
或者 sqlite insert into Member(name,age,addr) values(wwl ,21, 上海
3. 查詢數(shù)據(jù)
sqlite .mode column
sqlite .headers on
sqlite select * from Member;
注:select 語(yǔ)句前面的兩個(gè)命令 (.headers 和.mode) 用于改善顯示格式,可以不要。
4. 創(chuàng)建視圖和索引
sqlite create view schema as select * from Member;
sqlite create index Member_Idx on Member(id)
5. 導(dǎo)出數(shù)據(jù)
使用.dump 命令可以將數(shù)據(jù)庫(kù)對(duì)象導(dǎo)出成 SQL 格式。不帶任何參數(shù)時(shí),.dump 將整個(gè)數(shù)據(jù)庫(kù)導(dǎo)出為數(shù)據(jù)庫(kù)定義語(yǔ)言 (DDL) 和數(shù)據(jù)庫(kù)操作語(yǔ)言 (DML) 命令,適合重新創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象和其中的數(shù)據(jù)。如果提供了參數(shù),Shell 將參數(shù)解析作為表名或視圖,導(dǎo)出任何匹配給定參數(shù)的表或視圖,那些不匹配的將被忽略。
默認(rèn)情況下.dump 命令的輸出定向到屏幕。如:.dump
如果要將輸出重定向到文件,請(qǐng)使用.dump[filename]命令,此命令將所有的輸出重定向到指定的文件中。若要恢復(fù)到屏幕的輸出,只需要執(zhí)行.output stdout 命令就 OK 了。
sqlite .output file.sql
sqlite .dump
sqlite .output stdout
注:如果 file.sql 不存在,將在當(dāng)前工作目錄中創(chuàng)建該文件。如果文件存在,它將被覆蓋。
6. 導(dǎo)入數(shù)據(jù)
有兩種方法可以導(dǎo)入數(shù)據(jù),用哪種方法取決于要導(dǎo)入的文件格式。如果文件由 SQL 語(yǔ)句構(gòu)成,可以使用.read 命令導(dǎo)入文件中包含的命令。如果文件中包含由逗號(hào)或其他分隔符分割的值 (comma-swparated values,CSV) 組成,可使用.import 下載地址 [table] 命令,此命令將解析指定的文件并嘗試將數(shù)據(jù)插入到指定的表中。
.read 命令用來(lái)導(dǎo)入.dump 命令創(chuàng)建的文件。如果使用前面作為備份文件所導(dǎo)出的 file.sql,需要先移除已經(jīng)存在的數(shù)據(jù)庫(kù)對(duì)象,然后用下面的方法重新導(dǎo)入:
sqlite drop table Member;
sqlite drop view schema;
sqlite .read file.sql
7. 備份數(shù)據(jù)庫(kù)
有兩種方式可以完成數(shù)據(jù)庫(kù)的備份,具體使用哪一種取決于你希望的備份類型。SQL 轉(zhuǎn)儲(chǔ)許是移植性最好的備份。
生成轉(zhuǎn)儲(chǔ)的標(biāo)準(zhǔn)方式是使用 CLP.dump 命令:sqlite3 test.db .dump test.sql
在 Shell 中,可以將輸出重定向到外部文件,執(zhí)行命令,恢復(fù)到屏幕輸出,如:
sqlite .output file.sql
sqlite .dump
sqlite .output stdout
sqlite .exit
同樣,容易將 SQL 轉(zhuǎn)儲(chǔ)作為 CLP 的輸入流實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入:
sqlite3 test.db test.sql
備份二進(jìn)制數(shù)據(jù)庫(kù)知識(shí)比復(fù)制文件稍多做一點(diǎn)工作。備份之前需要清理數(shù)據(jù)庫(kù),這樣可以釋放一些已刪除對(duì)象不再使用的空間。這數(shù)據(jù)庫(kù)文件就會(huì)變小,因此二進(jìn)制的副本也會(huì)較小:
sqlite3 test.db vacuum
cp test.db test.Backup
8. 其它命令
sqlite select last_insert_rowid(); // 獲得最后插入的自動(dòng)增長(zhǎng)量值
sqlite .tabes // 返回所有的表和視圖
sqlite .indices Member // 查看一個(gè)表的索引
sqlite .schema Member // 得到一個(gè)表或視圖的定義 (DDL) 語(yǔ)句, 如果沒(méi)有提供表名, 則返回所有數(shù)據(jù)庫(kù)對(duì)象 (table,view,index,triger) 的定義語(yǔ)句
關(guān)于如何進(jìn)行 SQLite 數(shù)據(jù)庫(kù)管理相關(guān)命令的使用分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。