zoukankan      html  css  js  c++  java
  • Mysql:语法:标志符、关键字

    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()里列出的函数,必须是显示的括起函数名作为标志符
  • 相关阅读:
    建议自学
    大牛之术
    学习榜样
    .net源码
    练习题
    学习-如何克服拖延
    如何解决困难问题
    最近阅读
    如何学习一门新语言
    安全问题关注博客
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1495398.html
Copyright © 2011-2022 走看看