MySQL的一點淺顯知識

來源:互聯網
上載者:User

標籤:處理   進階   之間   exp   mode   正則   比較   程式   sele   

       本人最近看了一本有關於MySQL的書籍《MySQL必知必會》,書中唯寫了一些基本知識,但是也基本涵蓋了所有的MySQL的知識點。其餘的比較進階的也只是在基礎上進行擴充或者是最佳化,看完這本書之後,本人也有一點疑惑,所以知道的朋友幫忙解決一下

     1、MySQL的引擎分類

                InnoDB,MyISAM以及MEMORY等3個引擎。

                InnoDB是一個可靠的交易處理引擎,但是其不支援全文本搜尋。

                MEMORY在功能上等同於MyISAM,但由於資料存放區在記憶體中,速度很快。

                MyISAM是一個效能極高的引擎,它支援全文本搜尋,但是不支援交易處理。

    2、談談MyISAM的全文本搜尋。

             MyISAM的全文本搜尋不像InnoDB中使用的like文法,搜尋某一列,而是搜尋全文本,只要有符合的都可以顯示出來。它的基本格式如下:

               Match(匹配的列名) Against(搜尋的運算式)

           (1)、基本文法:

                           SELECT columnName

                            FROM     TABLENAME

                           WHERE  MATCH(查詢列) Against (‘anvils’ WITH QUERY EXPANSION)(這就是查詢擴充)

                      由於搜尋全文本,只要其中一個詞符合所要求的都會被顯示的,所以一般結果不是唯一的。他們會按照一定的順序進行排列,主要是根據查詢的優先順序,以及你搜尋            的關鍵詞之間的位置。位置越近,優先順序越高。

         (2)布爾類型文本搜尋

                  舉例:

                            select  note_text

                           from  product

                          where Match(note_text) Against(‘heavy ‘ IN BOOLEAN MODE)

                 其中的 heavy為搜尋的關鍵字。IN BOOLEAN MODE即為布爾文本類型的標誌。

                 Against(‘heavy - rope*‘ IN BOOLEAN MODE)表示搜尋出來行的結果去除含有rope的行

                Against(‘ +rabbit + bait‘ IN BOOLEAN MODE)顯示包含rabbit和bait的行

                Against(‘rabbit + bait‘ IN BOOLEAN MODE)   顯示包含rabbit和bait中任意一個的行

                Against(‘rabbit bait‘ IN BOOLEAN MODE)   顯示rabbit bait短語的行。

          這裡我提出一個問題:為什麼InnoDB不支援全文本搜尋,這就涉及到引擎內部的問題,希望大家給我回覆。

     3、RegexREGXEP

             本人在看這本書之前,學過SQL SERVER資料庫。但是當時沒有學到Regex。後來在生活中遇到過幾次,才有所瞭解。

             regexp的英文意思就是Regex的意思。所以學習英語對於一個程式員來說,是必不可少的。我們有時候通過一個簡稱便能知道這個是什麼,我自己就有親身體會。

              這裡我要說的是Regex匹配特殊字元。當Regex匹配特殊字元時,必須要加上逸出字元“\\”作為前置。

             ?是匹配當前的前面的任何字元的0次或1次出現。

    4、視圖

          視圖為虛擬表。主要用來資料的檢索,其對select 語句進行封裝,保護一些使用者的基本資料。但是本人還是不夠瞭解視圖的使用。

    5、遊標(CURSOR)

         遊標的使用步驟:

                                 定義——聲明——使用——關閉

         CREATE PROCEDURE C()

             BEGIN

                 DECLARE 遊標名 CURSOR

                FOR

              SELECT  _  FROM _;

           END

     上面就是建立遊標的過程

   OPEN CURSOR ,CLOSE CURSOR 也就是開啟和關閉遊標的操作。

    以上最近所學的就是這些,希望上面的紅色標註的問題,希望有人回答下。這些基本的知識對於我們想要瞭解MySQL的人來說很重要,還有一些我們所不知道的。也會繼續瞭解深入。等待著我的後續資料庫知識,讓我們一起成長。

   

     

MySQL的一點淺顯知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.