學習使用SQLite(版本3.7.4)(中H ) ?

來源:互聯網
上載者:User

索引:

           索引是一種在某種條件下的加速查詢的結構。一般的查詢都是順序掃描所有的行。如果表很大,查詢很頻繁,那麼一般的查詢就很臃腫。SQLite利用B-tree做索引。索引增加了資料庫的大小,在建立索引的情況下,最壞的情況就是表的內容翻倍,索引的維護也比較麻煩。修改表的時候,索引也是要修改的。

           索引分為聚簇索引和非聚簇索引兩種,聚簇索引
是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。實際上,在SQLite中並沒有這樣的說法。因為SQLite本來就在這方面不完善。這和一般的資料庫是不一樣的。

                create  index   [ unique ]  index_name   on   table_name    (columns) . 其中,unique約束不僅適用於索引,也適用於索引所限制的欄位。

                drop   index    index_name.

               例子:

               唯一性限制式也可存在於聯合欄位。

 

               現在能插入相同的資料了,因為索引被移除了。這裡,有定序的應用。

 

              定序:索引中的每個欄位都有相應的定序。如果要建立大小寫不敏感的索引,這樣:

             

 

              列出索引和其他資訊:

             

            

 

             使用索引:

             首先要明白在什麼時候使用索引是好的,什麼時候使用是不好的。將在where子句中出現的運算式,SQLite將使用單個欄位索引:

               column { = | > |>=|  <= |  <  } expression

               expression   { = | > |>=|  <= |  <  }    column

               column  in  (espression _list )

              column   in  (   subquery  ) ;

 

觸發器:

         當具體的表發生特定的事件時,觸發器執行相應的操作。

             create  [temp | temporary ]  trigger   trigger_name

             [ before | after ] [insert |  delete | update | update of  columns ]  on  table_name

             action

            觸發器是通過行為、名稱、表定義的。行為通過sql語言構成,當某些事件發生時,觸發器負責啟動這些命令。通過關鍵則before或者after來確定是在事件發生前還是後來執行這些操作。事件包含insert、delete等命令。觸發器可以有自訂完整性條件約束、日誌改變、更新表和其他的一些事情。作用只是限制在所寫的SQL命令。

           這裡出現了點問題。觸發器執行後,不知道為什麼沒有改變表foods的內容。

 

            錯誤處理:定義為事件發生前的觸發器有機會阻止事件的發生,也可以檢查事件的發生。before和after觸發器可以協助實施新的完整性條件約束。SQLite觸發器允許調用raise()函數允許在觸發器內產生錯誤。

            raise()定義如下:raise(resolution,error_message);

            resolution 可以是:abort、 fail、 ignore、rollback等。

 

           可更新的視圖:

            建立了一個串連foods和foods_types的視圖,通過外鍵關係相連(有別名的應用):

           

 

            更新資料庫表的時候,這裡表示foods和foods_types,觸發器自動執行:

           

            事件後,注意復原,如果沒有復原檢查是不是先前沒有輸begin;

             

                

                可以看出,在update表格之後,name發生了變化,這是,因為沒有提交,注意提交了就不能復原了。如果,想恢複原來表格的內容,可以利用復原rollback命令,這樣就恢複了。

                接下來,將進行事務的學習和理解。事務是資料庫的一個很好的東東,用好了有好多的好處。

        

 

           

              

              

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.