首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么规则适用于命名mysql列?

问什么规则适用于命名mysql列?
EN

Stack Overflow用户
提问于 2014-08-24 19:07:16
回答 3查看 15.1K关注 0票数 8

在MySQL表中,命名列,我可以使用

  • 空间
  • 大写字母
  • UTF8字符

我还应该遵守什么规则呢?

( MySQL5 )

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-24 19:12:12

是的,是的,是的。

我喜欢字段名和大写字母之间的下划线,但我不想挑起一场火焰之战。

在列名中不使用特殊字符的另一个很好的理由是您,否则其他人最终将不得不在您的应用程序中反复输入这些字符。我会坚持用标准的英文字母。

好的专栏名称:

代码语言:javascript
复制
account_id
user_id
first_name

不良列名:

代码语言:javascript
复制
Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝
uraniumType☢☢☢☢
票数 13
EN

Stack Overflow用户

发布于 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)中的字符。不允许使用补充字符。

票数 3
EN

Stack Overflow用户

发布于 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排序规则的另一个原因,以及它包含更多国际字符的能力,这在构建具有国际成员资格的网站时更有价值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25475287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档