为啥 MySQL 和 SQL Server 中的“模式”不同?

Posted

技术标签:

【中文标题】为啥 MySQL 和 SQL Server 中的“模式”不同?【英文标题】:Why is a "schema" different in MySQL and SQL Server?为什么 MySQL 和 SQL Server 中的“模式”不同? 【发布时间】:2013-01-05 06:57:27 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在 SQL 服务器中

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

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

在 MySQL 中

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

【讨论】:

这解释了差异,这很有用,但问题是它们为什么不同? 也感谢您的回答,@AaronBertrand - 是的,您说得对,感谢您的所有回答,我已经了解它们之间的差异,我也很好奇它们为什么不同【参考方案2】:

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

我不知道你是否真的有机会获得这个问题的合法答案以使其保持主题,除非你能说服 MySQL 和 SQL Server 团队进来并说明他们选择这种方式的原因他们做到了(请记住,早在很久以前就做出这些选择的人不太可能仍然在各自的团队中)。

【讨论】:

啊,好的,谢谢你的回答,先生,我能听听你的意见吗?你喜欢哪个? mysql还是sql server? 我是一名 SQL Server 人员。但这是一个非常主观的问题,周围也有很多 MySQL 人,所以不要用我的意见来帮助你选择。

以上是关于为啥 MySQL 和 SQL Server 中的“模式”不同?的主要内容,如果未能解决你的问题,请参考以下文章

SQL server 和mysql可以同时使用么?为啥我的电脑昨天安装MYSQL后 SQL server服务就打不开啦!!

为啥此相关子查询在 Oracle 和 SQL Server 中的工作方式不同

为啥 SQL Server 2019 与 Azure SQL 数据库中的外部表语法不同? `

为啥安装sql Server 2008时总是显示windows powershell错误?

给mysql导入.sql文件,用完source命令后,数据库还是空的,没有表,为啥

为啥 MS-Access 中的 Teradata 查询比 SQL Server 更快