日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁西西教程數(shù)據(jù)庫教程 → SQLite數(shù)據(jù)庫管理的相關(guān)命令

      SQLite數(shù)據(jù)庫管理的相關(guān)命令

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2012/12/10 9:42:27字體大小:A-A+

      作者:西西點(diǎn)擊:0次評(píng)論:0次標(biāo)簽: SQLite

      • 類型:編程輔助大小:7.0M語言:中文 評(píng)分:8.5
      • 標(biāo)簽:
      立即下載

      SQLite 是一個(gè)類似Access的輕量級(jí)數(shù)據(jù)庫系統(tǒng),但是更小、更快、容量更大,并發(fā)更高。為什么說 SQLite 最適合做 CMS (內(nèi)容管理系統(tǒng))呢?并不是說其他數(shù)據(jù)庫不好, Oracle、MySQL、SQLServer 也都是非常優(yōu)秀的 DBS,只不過他們?cè)O(shè)計(jì)目標(biāo)不同,特性不同,所以只有更適用某個(gè)應(yīng)用場(chǎng)景,沒有絕對(duì)的好壞之分。

      SQLite的技術(shù)特點(diǎn):

      SQLite 對(duì) SQL92 標(biāo)準(zhǔn)的支持包括索引、限制、觸發(fā)和查看。SQLite 不支持外鍵限制,但支持原子的、一致的、獨(dú)立和持久 (ACID) 的事務(wù)(后面會(huì)提供有關(guān) ACID 的更多信息)。這意味著事務(wù)是原子的,因?yàn)樗鼈円赐耆珗?zhí)行,要么根本不執(zhí)行。事務(wù)也是一致的,因?yàn)樵诓灰恢碌臓顟B(tài)中,該數(shù)據(jù)庫從未被保留。事務(wù)還是獨(dú)立 的,所以,如果在同一時(shí)間在同一數(shù)據(jù)庫上有兩個(gè)執(zhí)行操作的事務(wù),那么這兩個(gè)事務(wù)是互不干擾的。而且事務(wù)是持久性的,所以,該數(shù)據(jù)庫能夠在崩潰和斷電時(shí)幸免 于難,不會(huì)丟失數(shù)據(jù)或損壞。SQLite 通過數(shù)據(jù)庫級(jí)上的獨(dú)占性和共享鎖定來實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著當(dāng)多個(gè)進(jìn)程和線程可以在同一時(shí)間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn) 程或線程向數(shù)據(jù)庫執(zhí)行寫入操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫?huì)再發(fā)生。

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

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

      sqlite3 test.db

      雖然我們提供了數(shù)據(jù)庫名稱,但如果該數(shù)據(jù)庫不存在,SQLite實(shí)際上就未創(chuàng)建該數(shù)據(jù)庫,直到在數(shù)據(jù)庫內(nèi)部創(chuàng)建一些內(nèi)容時(shí),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)具備自動(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,'上海');

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

      sqlite>.mode column

      sqlite>.headers on

      sqlite> select * from Member;

      注:select語句前面的兩個(gè)命令(.headers和.mode)用于改善顯示格式,可以不要。

      5.創(chuàng)建視圖和索引

      sqlite> create view schema as select * from Member;

      sqlite> create index Member_Idx on Member(id)

      6.導(dǎo)出數(shù)據(jù)

      使用.dump命令可以將數(shù)據(jù)庫對(duì)象導(dǎo)出成SQL格式。不帶任何參數(shù)時(shí),.dump將整個(gè)數(shù)據(jù)庫導(dǎo)出為數(shù)據(jù)庫定義語言(DDL)和數(shù)據(jù)庫操作語言(DML)命令,適合重新創(chuàng)建數(shù)據(jù)庫對(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)建該文件。如果文件存在,它將被覆蓋。

      7.導(dǎo)入數(shù)據(jù)

      有兩種方法可以導(dǎo)入數(shù)據(jù),用哪種方法取決于要導(dǎo)入的文件格式。如果文件由SQL語句構(gòu)成,可以使用.read命令導(dǎo)入文件中包含的命令。如果文件中包含由逗號(hào)或其他分隔符分割的值(comma-swparated values,CSV)組成,可使用.import[file][table]命令,此命令將解析指定的文件并嘗試將數(shù)據(jù)插入到指定的表中。

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

      sqlite>drop table Member;

      sqlite>drop view schema;

      sqlite>.read file.sql

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

      有兩種方式可以完成數(shù)據(jù)庫的備份,具體使用哪一種取決于你希望的備份類型。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ù)庫導(dǎo)入:

      sqlite3 test.db <test.sql

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

      sqlite3 test.db vacuum

      cp test.db test.Backup

      9.其它命令

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

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

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

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

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)