8

我是数据库新手。我想知道为什么当我创建一个模式时,在 MySQL 中它是一个数据库,而在 SQL Server 中它是一个数据库内部的模式。谁能给我解释一下?

4

2 回答 2

12

在 SQL 服务器中

数据库模式是一种对对象进行逻辑分组的方法,例如表、视图、存储过程等。将模式视为对象的容器。您可以将用户登录权限分配给单个架构,以便用户只能访问他们有权访问的对象。可以在数据库中创建和更改模式,并且可以授予用户访问模式的权限。架构可以由任何用户拥有,并且架构所有权是可转让的。

更多详情请访问著名的 sql 权威博客 http://blog.sqlauthority.com/2009/09/07/sql-server-importance-of-database-schemas-in-sql-server/

在 MySQL 中

创建 Schema 类似于创建数据库。 http://dev.mysql.com/doc/refman/5.0/en/create-database.html

于 2013-01-22T05:13:29.943 回答
10

因为不同的供应商有不同的方式来描述、分离和描绘事物,甚至可以不同地使用相同的词。无论出于何种原因(我认为它与 Oracle 更一致),MySQL 都将模式和数据库称为同一件事,而 SQL Server 有一个可以包含多个模式的数据库。我不知道您是否可以声明它们中的任何一个“更正确”,这只是了解差异的问题,即使它们不直观。可以检查一下我认为的 ANSI 标准,看看哪个更符合标准机构的意图。

我不知道你是否真的有机会为这个问题找到一个合法的答案,让它保持话题,除非你能说服 MySQL 和 SQL Server 团队进来并说明他们为什么选择他们这样做的方式(请记住,那些在很久以前做出这些选择的人不太可能仍然在各自的团队中)。

于 2013-01-22T05:09:18.910 回答