扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
数据库、表、索引、列和别名的名字都遵守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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者