首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中在表名中使用点是好做法吗?

问在MySQL中在表名中使用点是好做法吗?
EN

Stack Overflow用户
提问于 2017-01-31 01:36:55
回答 2查看 7.3K关注 0票数 7

如果我错了,请纠正我,但我的理解是,在MSSQL中,可以使用对象表示法引用数据库的子结构,如视图、模式和表,例如:

Database.Schema.Table.Column

我相信每个对象都有自己的属性。

我需要在MySQL中复制MSSQL的结构,我不确定什么是最佳实践。

我正在考虑使用以下命名约定在MySQL中创建表:

代码语言:javascript
复制
Database
|---SubStructureX.Table
|   |---Column_A
|   |---Column_B
|---SubStructureY.Table
|   |---Column_C
|   |---Column_D
|
|

因此,MySQL查询可以如下所示:

代码语言:javascript
复制
SELECT Column_A, Column_B FROM SubStructureX.Table

简而言之,"SubstructureX.Table“只是一个包含点的表名。为了便于在MSSQL结构的复制过程中使用,我将这样做。我不在乎点前后的东西是不是MySQL中的对象。

这是很好的MySQL实践吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-31 01:53:43

在MySQL?不,我认为在表名中使用句点是不好的做法。我会认为这是很糟糕的做法。点是SQL中的引用运算符。这意味着,如果要使用完全限定表示法引用列,则如下所示:

代码语言:javascript
复制
SELECT Table.Column_A ...

或者,用反勾法引用:

代码语言:javascript
复制
SELECT `Table`.`Column_A` ...

现在,想象一下如果您的表名为StructureX.Table。就像一个空格,你必须引用它来转义它,因为你不想让MySQL认为这个点是一个操作符。这意味着您的SQL必须如下所示:

代码语言:javascript
复制
SELECT `StructureX.Table`.Column_A ...

或者,用反勾法引用:

代码语言:javascript
复制
SELECT `StructureX.Table`.`Column_A` ...

你不觉得这是语法错误吗?也许应该是这样的:

代码语言:javascript
复制
SELECT `StructureX`.`Table`.`Column_A` ...

这将是一个噩梦,维护,作为一个系统分析师,我会讨厌任何应用程序或开发人员,使我这个术语。这让我想把我的眼睛挖出来。

是不同的,因为它支持单个数据库中的多个架构,而MySQL则将架构视为数据库的同义词。在MS中,图式是对象的集合,您可以使用它们来组织表,或者将安全性作为一个组应用于表。默认模式是dbo,这就是为什么您经常看到该模式列出的原因。在MS SQL Server语法中,这:

代码语言:javascript
复制
SELECT [StructureX].[Table].[Column_A] ...

表示在当前数据库中,名为StructureX的架构、名为Table的表和列名Column_A。MS实际上支持四部名,第四部分是数据库:

代码语言:javascript
复制
SELECT [MyDatabase].[StructureX].[Table].[Column_A] ...

在这里,MyDatabase是数据库名。

这种样式在MySQL中同样有效,但您必须记住模式和数据库是同义词。在这里,这个:

代码语言:javascript
复制
SELECT `StructureX`.`Table`.`Column_A` ...

将意味着数据库StructureX、表Table和列Column_A。

票数 9
EN

Stack Overflow用户

发布于 2017-01-31 01:46:07

我可以说是:

但是,不要使用表名,而是创建一个类似于以下别名的表,

从a.column1选择yourTable as a

使用表alias是一个很好的实践。

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

https://stackoverflow.com/questions/41948399

复制
相关文章

相似问题

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