操作系統(tǒng)對(duì)MySQL數(shù)據(jù)庫和MySQL表命名的限制
操作系統(tǒng)對(duì)MySQL表命名有著一定的限制,下面就讓我們一起來了解操作系統(tǒng)對(duì)MySQL數(shù)據(jù)庫和MySQL表命名的限制,希望對(duì)您學(xué)習(xí)MySQL表命名方面有所幫助。
MySQL對(duì)命名數(shù)據(jù)庫和MySQL表命名有一個(gè)原則:
- 名字可以由當(dāng)前字符集中的任何字母數(shù)字字符組成,下劃線和美元符 $也可以。
- 名字最長(zhǎng)為64個(gè)字符。
然而,因?yàn)閿?shù)據(jù)庫和表的名字對(duì)應(yīng)于目錄和文件名,服務(wù)器運(yùn)行的操作系統(tǒng)可能強(qiáng)加額外的限制。
首先,數(shù)據(jù)庫和表名僅限于對(duì)文件名合法的字符,如 $在MySQL的原則中是允許的,但是如果你的操作系統(tǒng)不允許,則你不能在目錄或表名中使用它。實(shí)際上,這對(duì)Unix或Windows不是所擔(dān)心的,***的難度是在執(zhí)行數(shù)據(jù)庫管理時(shí)直接在shell中引用名字,例如,如果你命名一個(gè)數(shù)據(jù)庫如 $my_db,包含一個(gè)美元符,任何從shell中對(duì)該名字的引用可能被shell解釋為對(duì)一個(gè)變量的引用:
%ls $my_db
my_db:undefined variable
對(duì)此,你必須轉(zhuǎn)義 $字符或用引號(hào)禁止其特殊含義:
%ls \ $my_db
%ls ' $my_db'
如果你用引號(hào),一定要用單引號(hào),而雙引號(hào)并不禁止變量解釋。
其次,雖然MySQL允許數(shù)據(jù)庫和表名最長(zhǎng)到64個(gè)字符,但名字的長(zhǎng)度受限于你的操作系統(tǒng)限定的長(zhǎng)度,一般這不是一個(gè)問題(雖然老的System V強(qiáng)制14個(gè)字符)。在這種情況下,你數(shù)據(jù)庫名的上限為14個(gè)字符,而表名上限為10個(gè)字符,因?yàn)楸硎颈淼奈募幸粋€(gè)點(diǎn)(.)和三個(gè)字符的擴(kuò)展名。
第三,文件系統(tǒng)的大小寫敏感性影響到你如何命名和引用數(shù)據(jù)庫和表名。如果文件系統(tǒng)是大小寫敏感的(如Unix),兩個(gè)名字my_tbl和MY_TBL是不同的表。如果文件系統(tǒng)不是大小寫敏感的(如Windows),這兩個(gè)名字指的是相同的表。如果你用一個(gè)Unix服務(wù)器開發(fā)數(shù)據(jù)庫,并且如果你有可能轉(zhuǎn)移到Windows,你應(yīng)該記住這一點(diǎn)。
【編輯推薦】