这可能是一个非常糟糕的问题。但我一直将模式视为数据库中的表定义。这是错误的或不完全正确的。我不太记得我的数据库课程了。


当前回答

这篇文章只涉及到Oracle, Schema的定义在另一个DB上下文中会发生变化。

可能是那种让人受不了的事情,但供你参考的术语似乎在定义上有所不同,这是最烦人的事情:)

在Oracle中,数据库就是数据库。你可以把它想象成数据文件和重做日志,以及数据库本身在磁盘上的实际物理存在(即不是实例)。

Schema实际上就是一个用户。更具体地说,它是用户拥有的一组表/ pros /索引等。另一个用户有不同的模式(他/她拥有的表),但是用户也可以看到他们有选择特权的任何模式。因此,一个数据库可以由数百个模式组成,每个模式由数百个表组成。您可以在同一数据库中的不同模式中拥有具有相同名称的表。

表是一个表,一组包含数据的行和列,并且包含在模式中。

例如,SQL Server中的定义可能不同。我不知道这件事。

其他回答

schema包含数据库。

数据库是Schema的一部分。

schema >数据库。

模式包含视图、存储过程、数据库、触发器等。

Schema的行为就像在OOP中看到的父对象一样。所以它本身不是一个数据库。也许这个链接有用。

但是,在MySQL中,这两者是等价的。关键字DATABASE或DATABASES 可以在任何出现的地方替换为SCHEMA或SCHEMAS。例子:

创建数据库<=>创建模式 显示数据库<=>显示模式

MySQL文档

SCHEMA和DATABASE术语是依赖于DBMS的。

Table是一组数据元素(值),使用垂直列(由其名称标识)和水平行模型组织。数据库通常包含一个或多个表。你把数据存储在这些表中。这些表可能彼此相关(见这里)。

模式是数据库对象的集合,其中也包括逻辑结构。 它具有拥有它的用户的名称。 一个数据库可以有任意数量的Schema。 数据库中的一个表可以出现在两个同名的不同模式中。 用户可以查看已为其分配选择特权的任何模式。

架构->平面图

数据库->房子

桌子->房间

简而言之,模式是整个数据库的定义,因此它包括表、视图、存储过程、索引、主键和外键等。