Mysql:文法:標誌符、關鍵字

來源:互聯網
上載者:User

backticks"`"字元括起的字元序列稱之為 標誌符。

  • 如果ansi_quotes模式開啟,可以使用雙引號"""括起的字元序列表示標誌符
  • 標誌符可以使用的字元可以是任一字元,當然還是只使用[0-9a-zA-Z_$]這些非特殊字元的好,而且推薦不要以數字或美元開頭——大多數系統都是這樣子的
  • 另外標誌符如果是關鍵字(通常等於 保留字)必須括起來
  • 嚴重推薦標誌符不要是"{m}e[n]"這種可能和科學計數法相混淆的形式!
  • 標誌符不能含有ascii的nul(0x00)、\、/、.、nul、prn 等os中不允許的字元

標誌符最大字元長度為64

標誌符的限定:

  • [db_name.][tb_name.]col_name  --mysql的標準
  • [.]tb_name     --相容odbc的限定

 

標誌符的大小寫敏感性:他是依賴於os的:windows上不區分,linux上區分

  • database、table、trigger、alias 是依賴os的。但在同一個語句中,必須完全相同
  • column、index、procedure、funcion、envent總是不區分的
  • lower_case_table_names:
  • 0:區分大小。存、找、比較。對於myisam儲存引擎可能在某些大小不敏感的os上引起index使用問題
  • 1:小寫。存、找、比較。    --推薦
  • 2:區分大小寫進行os儲存;按小寫尋找、比較。但是innodb儲存引擎類的表卻與"1"的行為相同

 

對於函數名稱的解析規則:一句話(好的編程風格:不是和系統已有的東西重名!!!)

  • 通常函數分為:native內建、udf函數、stored functions。
  • 對於native函數有預設的解析規則,但和ignore_space伺服器的配置有關
  • 通常規則:如果內建函數後面是否具有express上下文,是則作為函數調用,否則就認為是標誌符,適用於大多數函數。
  • 特殊規則:看函數名後是否僅僅跟著”(“,是作為函數調用,否作為標誌符使用。這些函數可以通過sql_functions()查看

ignore_space:

  • disabled:只要是sql_functions()裡列出的函數——將忽略上面的“預設規則”,只要後面緊跟著”(“就認為是函數調用,可能會造成非運算式環境出錯
  • enabled:(預設) 只要是sql_functions()裡列出的函數,必須是顯示的括起函數名作為標誌符
相關文章

聯繫我們

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