我无法确定CREATE SCHEMA和CREATE DATABASE之间的区别。我的理解是,它们是相同的,通常使用后者。SQL CREATE SCHEMA和CREATE DATABASE是否等价?
是这样吗?
谢谢!
我无法确定CREATE SCHEMA和CREATE DATABASE之间的区别。我的理解是,它们是相同的,通常使用后者。SQL CREATE SCHEMA和CREATE DATABASE是否等价?
是这样吗?
谢谢!
它们绝对不一样!数据库可能由多个模式组成。模式基本上是安全的对象,可以包含其他安全的对象,如表,视图,过程等。在这种情况下,安全是指某人拥有并且可以授予操作的东西。
CREATE模式是在数据库上创建一个模式。因此,CREATE SCHEMA可以创建表,视图等。
CREATE SCHEMA不能创建数据库。
创建模式创建新模式,同时创建数据库创建数据库。有关模式的更多信息,请参见以下链接:User-Schema Separation
在MySQL中,两个命令从5.0.2开始同义 - 这也许就是为什么你理解它们是相同的。
http://dev.mysql.com/doc/refman/5.0/en/create-database.html
然而,正如其他人所说,架构和数据库是不同类型的其他RDBMS的实体。
啊谢谢你,那很有帮助!这解释了我对平等的混淆。非常感激! – 2009-12-29 13:50:35
非常感谢大家 - 这有助于澄清! – 2009-12-29 13:36:35
因此,为了澄清我的理解是正确的: SQL模式可以被认为是数据库的特定观点,例如, admininstrator(请参阅所有表格,视图,过程),经理(查看员工相关表格等),受训人员(仅查看基本表格等)? 即3层ANSI/SPARC体系结构的用户视图级别? 还是我仍然误解? 非常感谢! – 2009-12-29 13:43:25
没有模式可以被认为是数据库内的容器。所以数据库是一个容器,它可以包含模式和用户(也可能包含组)。模式是一个容器,可以包含大量不同的对象,如表,视图,过程等。模式由用户(或组)拥有,但其他用户/组可以被授予使用对象的权利包含在模式中。 – 2009-12-29 14:05:54