在MySQL表中,命名列,我可以使用
我还应该遵守什么规则呢?
( MySQL5 )
发布于 2014-08-24 19:12:12
是的,是的,是的。
我喜欢字段名和大写字母之间的下划线,但我不想挑起一场火焰之战。
在列名中不使用特殊字符的另一个很好的理由是您,否则其他人最终将不得不在您的应用程序中反复输入这些字符。我会坚持用标准的英文字母。
好的专栏名称:
account_id
user_id
first_name不良列名:
Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝
uraniumType☢☢☢☢发布于 2014-08-24 19:09:47
权威来源是http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
我知道一个事实..。
不是100%确定UTF-8字符,但上面的站点确实说。
标识符使用Unicode (UTF-8)存储。这适用于存储在.frm文件中的表定义中的标识符和存储在mysql数据库中的授予表中的标识符。授予表中标识符字符串列的大小以字符度量。您可以使用多字节字符,而无需减少存储在这些列中的值所允许的字符数,这在MySQL 4.1之前是不正确的。如前所述,允许的Unicode字符是基本多语言平面(BMP)中的字符。不允许使用补充字符。
发布于 2018-11-11 16:20:23
来自https://dev.mysql.com/doc/refman/8.0/en/identifiers.html的MySQL8.0参考手册:
“标识符在内部转换为Unicode。它们可能包含以下字符:
未引号标识符中允许的字符:
ASCII:_
扩展: U+0080 .U+FFFF
引号中允许的字符包括完整的Unicode基本多语言平面(BMP),但U+0000除外:
U+0001 .U+007F
扩展: U+0080 .U+FFFF
ASCII (U+0000)和补充字符(U+10000及更高)不允许在引号或非引号标识符中使用。
标识符可以以数字开头,但除非引用,否则不能仅由数字组成。
数据库、表和列名不能以空格字符结尾。“
从这个允许字符列表中选择的规则:(1) _:U+0000 (2)完全Unicode基本多语言平面(BMP),除U+0000 (3)标识符外,标识符可以以数字开头,但除非引用,否则不能仅由数字组成。(4)数据库、表和列名不能以空格字符结尾。
解释: Re: ASCII:参见widipedia上关于ASCII (chart.png)的文章中的ASCII字符图表,显示整个ASCII图表在0000 (空字符)和007F (删除字符)之间,这意味着所有15 colsx7行在列名中使用都是合法的,这显然违背了只允许标点符号为"$“和"_”的规则。例如,"#“位于_4 (x轴)2 (y轴),并具有标识符"0023”/ "35“。但是"#“似乎被ascii规则排除了(不是美元或下划线的标点符号),所以还不清楚ASCII列是否可以包含"#”。(顺便说一句,许多ASCII图表都有不同的标签,您无法找到与任何“_ _”数字索引的相关性,因此,如果找不到接近'0000‘格式的任何内容,请查找表索引中的变化。)
Re: UNICODE :是由U+_ ___ so索引的,规则更容易实现。例如,"#“以U+0023的形式出现在完整的BMP中,因此它应该可以使用(U+000是"null”字符,BTW)。
因此,允许列名的特殊字符似乎也会根据数据库中的排序规则而有所不同;UTF排序规则为在列名中使用特殊字符提供了更多选项,这也是在数据库中使用utf排序规则的另一个原因,以及它包含更多国际字符的能力,这在构建具有国际成员资格的网站时更有价值。
https://stackoverflow.com/questions/25475287
复制相似问题