MySQL學習筆記補充知識點

2021-10-09 02:31:35 字數 1934 閱讀 2008

正規表示式是用來匹配文字的特殊的串

所有的種類的程式語言,文字編輯器,作業系統等都支援正規表示式

mysql僅支援多數正則表達實現的乙個很小的子集

正則表達是應在regexp後

select pro_name from prooducts where pro_name regexp 『1000』 order by prod_name;

上面例子就是匹配pro_name列中含有1000,1000就是基本字元

其實使用正規表示式主要是看在正則表達有強大的匹配的功能,可能導致效能下降

上面的例子中regexp看著很像like

為搜尋兩個字串之一,可以使用|

如:select prod_name from prducts where pro_name regexp 『1000|2000』

兩個以上的or條件,x|x|x

符號為[ ],在符號中任何乙個

select prod_name from prducts where pro_name regexp 『[121]tom』;

也是『1|2|3 tom』的縮寫

0到9的匹配為[0-9],類推1到5匹配為[1-5],類推a到z匹配為[a-z]…[a-z],這些在正規表示式中

為了匹配特殊字元,必須用\為前導,\ \ -表示查詢 -

存在找出自己經常使用的數字,所有字母字元或所有數字字母字元等的匹配,為更方便工作,可以使用預定義的字符集,稱為字元類

[:alnum:] 任意字母和數字[a-za-z0-9]

[:alpha:] 任意字元[a-za-z]

[:blank:] 空格和製表[\t]

[:cntrl:] ascii控制字元(asii 0到31)

[:digit:] 任意數字[0-9]

[:graph:] 與[:print:]相同,但不包括空格

[:lower:] 任意小寫字母[a-z]

[:print:] 任意可列印字元

[:punct:] 既不在[:alnum:]又不在[:cntrl:]中的任意字元

[:space:] 包括空格在內的任意空自字元(\f)

[:upper:] 任意大寫字母[a-z]

[:xdigit:] 任意十六制數字[a-fa-f0-9]

/* 0個或者多個匹配

/+ 1個或多個匹配

? 0個或1個匹配

指定數目的匹配

至少為指定數目

在指定數量之間

^ 文字的開始

$ 文字的結尾

[[:<:]] 詞的開始

[[:>:]] 詞的結尾

與其他計算機一樣,sql支援利用函式處理資料,函式沒有sql的可移植物

性強,多數sql語句是可移植,在sql實現之間有差異時,不難處理,而函式性卻不強,幾乎每種主要的bdms都支援其他實現不支援的函式,有時候差異還很大

使用函式應該保證做好**注釋

並非所有引擎都支援全文本搜尋

像like和正則表達都可以進行匹配,非常有用,但存在幾個重要限制

效能–統配符和正規表示式匹配通常要求mysql嘗試要求匹配表中所有行(而且這些搜尋極少使用表索引)。因此,由於被搜尋行數不斷增加,這些搜尋可能非常耗時。

明確控制一一使用萬用字元和正規表示式匹配,很難(而且並不總是能明確地控制匹配什麼和不匹配什麼。例如,指定乙個詞必須匹配,乙個詞必須不匹配,而乙個詞僅在第乙個詞確實匹配的情況下才可以史配或者才可以不匹配

智慧型化的結果一一雖然基於萬用字元和正規表示式的搜尋提供了非常靈活的搜尋,但它們都不能提供一種智慧型化的選擇結果的方法。例如,乙個特殊詞的搜尋將會返回包含該詞的所有行,而不區分包含單個匹配的行和包含多個匹配的行(按照可能是更好的匹配來排列它們)類似,乙個特殊詞的搜尋將不會找出不包含該詞但包含其他相關詞的行。

所有這些限制以及更多的限制都可以用全文搜尋來解決,使用全文搜尋時,mysql不需要分析和處理每個詞,會建立指定列中各詞的乙個索引,搜尋可以針對這些詞進行

MySQL常用知識點 學習筆記

左連線 保留左表中全部資料 右連線 保留右表中全部資料 中間連線 保留兩表中公共資料 其餘的可看下圖 ps 一定要明確保留哪一部分資料 若value不是空,則返回a 若value是空,則返回b select ifnull max grade null as 最大成績 distinct 成績 對成績進...

正則知識點補充

1.與正規表示式有關的字串物件的方法 string.replace pattern,string 替換在正規表示式查詢中找到的文字。string.search pattern 通過正規表示式查詢相應的字串,只是判斷有無匹配的字串。如果查詢成功,search 返回匹配串的位置,否則返回 1。strin...

property知識點補充

1 synthesize和 dynamic作用 1 property有兩個對應的詞,乙個是 synthesize,乙個是 dynamic。如果 synthesize和 dynamic都沒寫,那麼預設的就是 syntheszie var var 2 synthesize的語義是如果你沒有手動實現set...