2016-09-07 124 views
0

在SQL点的意义比方说,我们有一个简单的查询什么是声明

SELECT something 
FROM name_before_dot.name_after_dot 

什么是点在FROM子句中的含义是什么?

是不是某种分离或者是它只是一个表名与它的点?

你,我已经搜查SO,它的线程在选择或在哪里,我知道涉及别名,从点在谈论点头脑仍是一个谜给我。

+2

'[模式名]。[表名]' – David

+0

什么RDBMS是您使用?不同的人有不同的名称为它 – Lamak

+0

@Lamak这是甲骨文 –

回答

0

这是一个数据库架构。表的全部三个部分的名称是:

databasename.schemaname.tablename 

对于用户的默认模式,你也可以省略架构名称:

databasename..tablename 

您还可以指定链接服务器名称:

servername.databasename.schemaname.tablename 

你可以阅读更多有关使用上MSDN标识符作为表名:

服务器,数据库和所有者名称被称为对象名称的限定符。当你引用一个对象时,你不必指定服务器,数据库和所有者。通过用一段时间标记他们的位置可以省略限定符。对象名称有效形式包括以下内容:

server_name.database_name.schema_name.object_name

server_name.database_name..object_name

server_name..schema_name.object_name

服务器名称.. .object_name

database_name.schema_name.object_name

database_name..object_name

schema_name.object_name

OBJECT_NAME

,指定所有四个部分被称为一个完全合格的名称的对象名。在Microsoft SQL Server中创建的每个对象都必须具有唯一的完全限定名称。例如,如果它们拥有不同的所有者,则可以在同一个数据库中有两个名为xyz的表。

大多数对象引用使用三部分名称。默认的server_name是本地服务器。默认的database_name是连接的当前数据库。默认的schema_name是提交语句的用户的默认模式。除非另行配置,否则新用户的默认模式是dbo模式。

+0

批准为更详细的答案。 –

+0

在Oracle的对象名称中没有“server_name”这样的东西,并且不能有像这样的两个点('..')。 –

2
SELECT something 
FROM name_before_dot.name_after_d 

,如果你从字面上翻译

+0

我批准了更详细的其他答案,但这里是我的奖金,谢谢=) –

1

Oracle documentation对此进行了详细解释。

enter image description here

其中:

  • 对象是该对象的名称。
  • 模式是包含该对象的模式。模式限定符允许您引用除您自己以外的模式中的对象。您必须被授予引用其他模式中的对象的权限。如果您省略了模式,那么Oracle会假定您在自己的模式中引用了一个对象。
    ...
只有两部分

所以你已经证明,在from子句,name_before_dot是模式的对象是(即它的主人),以及name_after_dot是对象名称。

您可以在all_objects视图中看到所有者和对象名称。