扫一扫
分享文章到微信

扫一扫
关注官方公众号
至顶头条
数据库、表、索引、列和别名的名字都遵守MySQL同样的规则:
注意,从MySQL3.23.6开始规则改变了,此时我们引入了用'引用的标识符(数据库、表和列命名)(如果你以ANSI模式运行,"也将用于引用标识符)。
| 标识符 | 最大长度 | 允许的字符 | 
| 数据库 | 64 | 在一个目录名允许的任何字符,除了 /. | 
| 表 | 64 | 在文件名中允许的任何字符,除了 /或. | 
| 列 | 64 | 所有字符 | 
| 别名 | 255 | 所有字符 | 
注意,除了以上,你在一个标识符中不能有ASCII(0)或ASCII(255)。
注意,如果标识符是一个限制词或包含特殊字符,当你使用它时,你必须总是用`引用它: 
SELECT * from `select` where `select`.id > 100;
在 MySQL的先前版本,命名规则如下:
建议你不使用象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_name或db_name.tbl_name前缀,除非引用会有二义性。例如,假定表t1和t2,每个均包含列c,并且你用一个使用t1和t2的SELECT语句检索c。在这种情况下,c有二义性,因为它在使用表的语句中不是唯一的,因此你必须通过写出t1.c或t2.c来指明你想要哪个表。同样,如果你从数据库db1中一个表t和在数据库db2的一个表t检索,你必须用db1.t.col_name和db2.t.col_name引用这些数据表的列。 
句法.tbl_name意味着在当前的数据库中的表tbl_name,该句法为了ODBC的兼容性被接受,因为一些ODBC程序用一个“.”字符作为数据库表名的前缀。 
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。