严格地说,在MySql中,Database和Schema之间的区别是不存在的。

但是,在其他数据库引擎(如SQL Server)中并非如此。 在SQL server:中,

每个表都属于数据库中称为数据库模式的一组对象。 它是容器或命名空间(查询Microsoft SQL Server 2012)

默认情况下,SQL Server中的所有表都属于名为dbo的默认架构。 查询尚未分配给任何特定模式的表时,可以执行以下操作:

SELECT *

FROM your_table

这相当于:

SELECT *

FROM dbo.your_table

现在,SQL Server允许创建不同的模式,这使您可以对具有类似用途的表进行分组。 这有助于组织数据库。

例如,您可以创建一个名为sales的模式,包括发票,债权人(以及与销售相关的任何其他)等表,以及另一个名为lookup的模式,其中包含国家,货币,订阅类(以及用作外观的任何其他表) 上表)。

分配给特定域的表显示在SQL Server Studio Manager中,其架构名称前缀为表名(与属于默认dbo架构的表完全相同)。

SQL Server中有特殊的模式。 引用同一本书:

有几个内置的数据库模式,不能删除或更改它们:

1)dbo,默认架构。

2)guest包含guest用户可用的对象(“guest用户”是SQL Server术语中的特殊角色,具有一些默认和高度限制的权限)。 很少用。

3)INFORMATION_SCHEMA,由信息模式视图使用

4)sys,专为SQL Server内部使用而保留

模式不仅适用于分组。 实际上,可以为每个模式赋予不同用户不同的权限,如MSDN所述。

这样,上面提到的模式查找可以供数据库中的任何标准用户使用(例如,仅限SELECT权限),而名为supplierbankaccountdetails的表可以在称为财务的不同模式中分配,并且仅提供对用户的访问权限 在小组accounts(只是一个例子,你明白了)。

最后,再次引用同一本书:

它与数据库架构和表架构不同。 前者是表的名称空间,而后者是表定义

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐