綠色資源(yuán)網:您身邊最(zuì)放心(xīn)的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題(tí)|廠(chǎng)商大全

綠色資(zī)源網

技術教程
您的位置:首頁數據庫類Access → SQLite數據庫管理的相關命令

SQLite數據庫管理的相關命令

我要評論 2012/12/10 22:05:50 來源:綠色資源網 編輯:www.ynaad.com [ ] 評論:0 點擊(jī):325次

SQLite 是一個類似Access的輕量級數(shù)據庫係統,但是更小(xiǎo)、更快、容量更大,並(bìng)發更高。為什麽說 SQLite 最適合做 CMS (內容管理係統)呢?並不是說其他數據庫不好, Oracle、MySQL、SQLServer 也都是非常優秀的 DBS,隻不過他們設計目標不同,特性不同,所以隻有更適用某(mǒu)個應用場景,沒有絕對的(de)好壞(huài)之分。

SQLite的技術特點:

SQLite 對 SQL92 標準的支持包括索引、限製(zhì)、觸發和查看。SQLite 不支持外鍵限製,但支持(chí)原(yuán)子的(de)、一(yī)致的、獨立和持久 (ACID) 的(de)事(shì)務(後(hòu)麵會提供有(yǒu)關 ACID 的更多信息)。這意味著事務是原子(zǐ)的(de),因(yīn)為它們要麽完全執行,要麽根本不執行。事務也是一(yī)致的(de),因為在不一致的狀態中,該數據庫從未被保留。事務還是獨立 的,所以,如果在同一時間在同(tóng)一數據庫上有兩個執行操作的(de)事務(wù),那麽這兩個事務是互不幹擾的。而且事(shì)務是持久性的,所以,該數據庫能夠在崩潰和斷電時幸免 於(yú)難,不會丟失數據或損壞(huài)。SQLite 通過數據庫(kù)級上的(de)獨占性和共享鎖(suǒ)定來實現獨立事務處理。這意味著當多個(gè)進程和線(xiàn)程可以在同一時間從同一數據庫讀取數據,但隻有一個可以寫入數據。在某個進 程或(huò)線程向(xiàng)數據庫執行寫入(rù)操作之前,必須獲得獨占鎖定。在發出獨占鎖定後,其他的讀或寫操作將不會再發生。

1.創建數據庫

啟動命令行,通過(guò)輸入如下命令打開Shell模(mó)式的CLP:

sqlite3 test.db

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

2.創建數據表

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

注:id為主鍵(jiàn),該列默認具備自(zì)動增(zēng)長(zhǎng)的屬性。

3.插入數據

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

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

4.查詢(xún)數據

sqlite>.mode column

sqlite>.headers on

sqlite> select * from Member;

注:select語句前麵的兩個命令(.headers和.mode)用於改善顯示(shì)格式,可以不要。

5.創建視圖和索引

sqlite> create view schema as select * from Member;

sqlite> create index Member_Idx on Member(id)

6.導出數據

使用.dump命令可以將數據庫(kù)對象(xiàng)導(dǎo)出成SQL格式。不帶任何參數時,.dump將整(zhěng)個數據庫導(dǎo)出為數據庫定義語言(DDL)和數據庫操作(zuò)語言(DML)命令,適合重新創建數據(jù)庫對(duì)象和其中的數據。如果提供了(le)參(cān)數,Shell將參數解析作為表名或視圖,導出任何匹(pǐ)配給定參數的表或(huò)視圖,那些(xiē)不(bú)匹配的(de)將被忽略。

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

如果要(yào)將輸出(chū)重定向到文件,請使用(yòng).dump[filename]命令,此命令將所有的輸出重定向到指定的文件中。若要恢複到屏幕的輸出,隻需要執行.output stdout命令就(jiù)OK了(le)。

     sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

注:如果file.sql不存在,將在當前工作目錄中創建該(gāi)文(wén)件。如果文件存(cún)在,它將被覆蓋。

7.導入數據

有兩種方法可以導入數據,用(yòng)哪種方法取決於要導入的文件(jiàn)格式。如果文件由SQL語句構成,可以使用.read命令導入文件中包含的命令。如果文件中包含由逗號或其他分(fèn)隔符分割的值(comma-swparated values,CSV)組成(chéng),可使用.import[file][table]命令,此命(mìng)令(lìng)將解析指定的文件並嚐試將數據插入到指定的表中。

.read命令用來(lái)導入.dump命(mìng)令創建的(de)文件。如果使用前麵作為備份文件所導出的(de)file.sql,需要先移(yí)除已經存(cún)在的數據庫(kù)對象,然後用下麵的方法重新(xīn)導入(rù):

sqlite>drop table Member;

sqlite>drop view schema;

sqlite>.read file.sql

8.備份(fèn)數據庫

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

生(shēng)成轉儲的標準(zhǔn)方式是使用CLP.dump命令:sqlite3 test.db .dump >test.sql

在Shell中,可(kě)以將輸出重定向(xiàng)到外部(bù)文件,執行命令,恢複到屏幕輸(shū)出,如:

sqlite>.output file.sql

sqlite>.dump

sqlite>.output stdout

sqlite>.exit

同樣,容易將SQL轉儲作為CLP的輸入流實現數據庫導入:

sqlite3 test.db <test.sql

備份二進製數據庫(kù)知識比複製文件稍多做一點工作。備(bèi)份之前需要清(qīng)理數據庫(kù),這樣可以釋放一些已刪除對象不再(zài)使用的空(kōng)間(jiān)。這數據庫文件就會變小(xiǎo),因此二進製的副本也會較小(xiǎo):

sqlite3 test.db vacuum

cp test.db test.Backup

9.其它命令

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

sqlite>.tabes//返回所有(yǒu)的表和視圖

sqlite>.indices Member //查看一個表的索(suǒ)引

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

關鍵詞:SQLite,數據庫

閱讀本文後您有什麽感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙(bǐ)視(shì)
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡