溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行SQLite數(shù)據(jù)庫管理相關(guān)命令的使用分析

發(fā)布時間:2021-12-01 11:34:12 來源:億速云 閱讀:250 作者:柒染 欄目:數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行SQLite數(shù)據(jù)庫管理相關(guān)命令的使用分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

  1.創(chuàng)建數(shù)據(jù)庫

  啟動命令行,通過輸入如下命令打開Shell模式的CLP:

  sqlite3 test.db

  雖然我們提供了數(shù)據(jù)庫名稱,但如果該數(shù)據(jù)庫不存在,SQLite實(shí)際上就未創(chuàng)建該數(shù)據(jù)庫,直到在數(shù)據(jù)庫內(nèi)部創(chuàng)建一些內(nèi)容時,SQLite才創(chuàng)建該數(shù)據(jù)庫。

  2.創(chuàng)建數(shù)據(jù)表

  sqlite> create table Member(id integer primary key, name text, age integer,addr text);

  注:id為主鍵,該列默認(rèn)具備自動增長的屬性。

  3.插入數(shù)據(jù)

  sqlite> insert into Member values(0,'wwl',21,'上海');//id=0的列必須不存在,否則會出錯

  或者sqlite> insert into Member(name,age,addr) values('wwl',21,'上海');

  3.查詢數(shù)據(jù)

  sqlite>.mode column

  sqlite>.headers on

  sqlite> select * from Member;

  注:select語句前面的兩個命令(.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ù)庫對象導(dǎo)出成SQL格式。不帶任何參數(shù)時,.dump將整個數(shù)據(jù)庫導(dǎo)出為數(shù)據(jù)庫定義語言(DDL)和數(shù)據(jù)庫操作語言(DML)命令,適合重新創(chuàng)建數(shù)據(jù)庫對象和其中的數(shù)據(jù)。如果提供了參數(shù),Shell將參數(shù)解析作為表名或視圖,導(dǎo)出任何匹配給定參數(shù)的表或視圖,那些不匹配的將被忽略。

  默認(rèn)情況下.dump 命令的輸出定向到屏幕。如:.dump

  如果要將輸出重定向到文件,請使用.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語句構(gòu)成,可以使用.read命令導(dǎo)入文件中包含的命令。如果文件中包含由逗號或其他分隔符分割的值(comma-swparated values,CSV)組成,可使用.import下載地址[table]命令,此命令將解析指定的文件并嘗試將數(shù)據(jù)插入到指定的表中。

  .read命令用來導(dǎo)入.dump命令創(chuàng)建的文件。如果使用前面作為備份文件所導(dǎo)出的file.sql,需要先移除已經(jīng)存在的數(shù)據(jù)庫對象,然后用下面的方法重新導(dǎo)入:

  sqlite>drop table Member;

  sqlite>drop view schema;

  sqlite>.read file.sql

  7.備份數(shù)據(jù)庫

  有兩種方式可以完成數(shù)據(jù)庫的備份,具體使用哪一種取決于你希望的備份類型。SQL轉(zhuǎn)儲許是移植性最好的備份。

  生成轉(zhuǎn)儲的標(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)儲作為CLP的輸入流實(shí)現(xiàn)數(shù)據(jù)庫導(dǎo)入:

  sqlite3 test.db <test.sql

  備份二進(jìn)制數(shù)據(jù)庫知識比復(fù)制文件稍多做一點(diǎn)工作。備份之前需要清理數(shù)據(jù)庫,這樣可以釋放一些已刪除對象不再使用的空間。這數(shù)據(jù)庫文件就會變小,因此二進(jìn)制的副本也會較小:

  sqlite3 test.db vacuum

  cp test.db test.Backup

  8.其它命令

  sqlite>select last_insert_rowid();  //獲得最后插入的自動增長量值

  sqlite>.tabes            //返回所有的表和視圖

  sqlite>.indices Member       //查看一個表的索引

  sqlite>.schema Member       //得到一個表或視圖的定義(DDL)語句,如果沒有提供表名,則返回所有數(shù)據(jù)庫對象(table,view,index,triger)的定義語句

關(guān)于如何進(jìn)行SQLite數(shù)據(jù)庫管理相關(guān)命令的使用分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI