科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道7.1.5 数据库、表、索引、列和别名的命名

7.1.5 数据库、表、索引、列和别名的命名

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

注意,从MySQL3.23.6开始规则改变了,此时我们引入了用'引用的标识符(数据库、表和列命名)(如果你以ANSI模式运行,"也将用于引用标识符)。

作者:天极软件 来源:天极软件 2008年1月27日

关键字: 数据库 MySQL

  • 评论
  • 分享微博
  • 分享邮件

数据库、表、索引、列和别名的名字都遵守MySQL同样的规则:

注意,从MySQL3.23.6开始规则改变了,此时我们引入了用'引用的标识符(数据库、表和列命名)(如果你以ANSI模式运行,"也将用于引用标识符)。

标识符 最大长度 允许的字符
数据库 64 在一个目录名允许的任何字符,除了/.
64 在文件名中允许的任何字符,除了/.
64 所有字符
别名 255 所有字符

注意,除了以上,你在一个标识符中不能有ASCII(0)或ASCII(255)。

注意,如果标识符是一个限制词或包含特殊字符,当你使用它时,你必须总是用`引用它:

SELECT * from `select` where `select`.id > 100; 

在 MySQL的先前版本,命名规则如下:

  • 一个名字可以包含来自当前字符集的数字字母的字符和“_”“$”。缺省字符集是ISO-8859-1 Latin1;这可以通过重新编译MySQL来改变。见9.1.1 用于数据和排序的字符集
  • 一个名字可以以在一个名字中合法的任何字符开始。特别地,一个名字可以以一个数字开始(这不同于许多其他的数据库系统!)。然而,一个名字不能仅仅由数字组成。
  • 你不能在名字中使用“.”,因为它被用来扩充格式,你能用它引用列(见下面)。

建议你不使用象1e这样的名字,因为一个表达式如1e+1是二义性的。它可以解释为表达式1e + 1或数字1e+1

MySQL中,你能使用下列表格的任何一种引用列:

列引用 含义
col_name 来自于任意表的列col_name,用于包含该表的一个列的查询中
tbl_name.col_name 来自当前的数据库的表tbl_name的列col_name
db_name.tbl_name.col_name 行列col_name从表格tbl_name数据库db_name。这个形式在MySQL3.22或以后版本可用。
`column_name` 是一个关键词或包含特殊字符的列。

在一条语句的列引用中,你不必指定一个tbl_namedb_name.tbl_name前缀,除非引用会有二义性。例如,假定表t1t2,每个均包含列c,并且你用一个使用t1t2SELECT语句检索c。在这种情况下,c有二义性,因为它在使用表的语句中不是唯一的,因此你必须通过写出t1.ct2.c来指明你想要哪个表。同样,如果你从数据库db1中一个表t和在数据库db2的一个表t检索,你必须用db1.t.col_namedb2.t.col_name引用这些数据表的列。

句法.tbl_name意味着在当前的数据库中的表tbl_name,该句法为了ODBC的兼容性被接受,因为一些ODBC程序用一个“.”字符作为数据库表名的前缀。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章