資源描述:
《accessmssqlserver和oracle中的通配符》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、Access,MSSQLServer和Oracle中使用的通配符如果有什么不同,主要就是因為支持的SQL規(guī)范不同。SQL語言發(fā)布過兩個規(guī)范:ANSI-89和ANSI-92。跟ANSI-89比起來,ANSI-92SQL有新的和不同的保留關鍵字,語法規(guī)則和通配符(Wildcard)。雖然是兩個規(guī)范,并不表示支持哪個都好,ANSI-92實際上是要替換ANSI-89的,正如ANSI-89替換了之前并不廣為所知的ANSIX3.135-1986。Access,MSSQL和Oracle發(fā)展到今天也不知道經(jīng)過多少版本了(遑論其它非主流的數(shù)據(jù)庫系統(tǒng)),支持的SQL規(guī)范當然也是與時俱
2、進。有時候,我們說Access中的通配符和MSSQL,和Oracle不一樣,實際上是在拿一個比較老的Access版本和一個比較新的MSSQL作比較,因為支持最新的SQL規(guī)范是數(shù)據(jù)庫系統(tǒng)程序發(fā)展的一個趨勢,沒道理對新規(guī)范視而不見,失去客戶和市場吧(可以參照SONY在MP3規(guī)格上的失利)。換而言之,Access,MSSQL和Oracle中的SQL語法將來應該是趨向一致的,沒有那么大的差異。其實,Access2003就已經(jīng)向ANSI-92SQL靠攏了。除了支持的SQL規(guī)范不同,還有些不同就是開發(fā)商自己定義的那部分了。對SQL規(guī)范的實現(xiàn),或者這里減一點,或者那里加一點,沒
3、有說一定要忠實某個標準。不過對用戶來說,切換產(chǎn)品的時候就有必要了解都有哪些不同點和共同點,還不能做到完全無縫銜接。比如Microsoft的JetSQL,雖然是參照ANSI標準的,到底夾帶了很多自己的東西,保留關鍵字和數(shù)據(jù)類型都不一樣,可以參考以下鏈接:EquivalentANSISQLDataTypesMicrosoftJetDatabaseEngineSQLReservedWordsMicrosoftJetDatabaseEngineSQLDataTypesAccess中查找處理數(shù)據(jù)的方法基本上可以分為兩大類:點Edit菜單調出來的FindandReplace對
4、話框;和用SQL語句編寫的選擇或動作查詢。在Access2003數(shù)據(jù)庫(.mdb)文件中,F(xiàn)indandReplace對話框和SQL語句編寫的查詢使用的規(guī)范是一致的,安裝時的默認項是ANSI-89規(guī)范,我們可以自定義為ANSI-92規(guī)范。在Access2003版程序中,我們可以配置數(shù)據(jù)庫文件支持任意一種規(guī)范。但在Access2000版程序中,只能用ANSI-89。ANSI-89通配符集通配符描述例子通配符描述例子*匹配任意數(shù)量的字符。星號可以寫在字符串的任意位置。wh*可以查到what,white和why,但查不到awhile或watch。?匹配任意單個的字符。B
5、?ll可查到ball,bell和bill。[]匹配方括號里的任意單個字符。B[ae]ll可查到ball和bell,但不能查到bill。!匹配任意不在方括號里的字符。b[!ae]ll可查到bill和bull,但不能查到ball或bell。-匹配某個字符范圍內的任意一個字符,字符范圍必須以升序方式表示(即A到Z,不能為Z到A)。b[a-c]d可查到bad,bbd和bcd。#匹配任意單個的數(shù)字。1#3可查到103,113,123ANSI-92通配符集通配符描述示例%匹配任意數(shù)量的字符。可以寫在字符串的開頭和結尾。wh%可查到what,white和why,但不能查到awh
6、ile或watch。_(下劃線)匹配任意單個字符。B_ll可查到ball,bell和bill。[]匹配方括號里的任意單個字符。B[ae]ll可查到ball和bell,但查不到bill。^匹配不在方括號里的任意字符。b[^ae]ll可查到bill和bull,但查不到ball或bell。-(連線)匹配某個字符范圍內的任意一個字符,字符范圍必須以升序方式表示(即A到Z,不能為Z到A)。b[a-c]d可查到bad,bbd和bcd。注意要在數(shù)據(jù)中查找通配符本身,用方括號把要找的字符括起來,比如[#]。星號(*),問號(?),井號(#),開方括號([)和連線號(-)都是如此。
7、查找感嘆號(!)或閉方括號(])時不要用方括號括起來。用FindandReplace對話框來查找通配符本身時,只需在FindWhat文本框里輸入字符,不要用方括號括起來。用查詢來做也是如此,例如Like"*!*"返回包含感嘆號的所有記錄。可以參考以下鏈接:FindwildcardcharactersinanAccessdatabase.如果你同時找連線號和其它字符,在方括號里把連線號放在所有其它字符的前面或后面,例如[-#*]或[#*-]。但是,如果在開方括號后面有感嘆號的話,要把連線號放在感嘆號后面[!-]。要查找開閉一對方括號([]),必須要把兩個符號都放在方
8、括號里,像