MySQL中架构/数据库之间的区别

时间:2012-07-23 18:26:37

标签: mysql database schema database-schema

MySQL中的架构和数据库之间有区别吗?在SQL Server中,数据库是与模式相关的更高级别的容器。

我读到Create SchemaCreate Database在MySQL中基本上做同样的事情,这使我相信模式和数据库对于相同的对象是不同的单词。

8 个答案:

答案 0 :(得分:280)

MySQL Glossary

中所定义
  

在MySQL中,物理上 架构 数据库 同义。您可以在MySQL SQL语法中替换关键字SCHEMA而不是DATABASE,例如使用CREATE SCHEMA而不是CREATE DATABASE

     

其他一些数据库产品也有所区别。例如,在Oracle数据库产品中, 架构 仅代表数据库的一部分:单个用户拥有的表和其他对象。

答案 1 :(得分:52)

取决于数据库服务器。 MySQL并不关心,它基本上是一样的。

OracleDB2和其他企业级数据库解决方案有所区别。通常,架构是表的集合数据库是架构的集合。

答案 2 :(得分:16)

参考MySql documentation

  

CREATE DATABASE创建一个具有给定名称的数据库。要用这个   声明,您需要数据库的CREATE权限。创建   从MySQL 5.0.2开始,SCHEMA是CREATE DATABASE的同义词。

答案 3 :(得分:5)

PostgreSQL支持模式,模式是数据库的一个子集: https://www.postgresql.org/docs/current/static/ddl-schemas.html

  

数据库包含一个或多个命名模式,而这些模式又包含   表。模式还包含其他类型的命名对象,包括   数据类型,函数和运算符。可以使用相同的对象名称   在没有冲突的不同模式中;例如,schema1和   myschema可以包含名为mytable的表。与数据库,模式不同   没有严格分开:用户可以访问任何一个对象   他们所连接的数据库中的模式,如果他们有权限   这样做。

模式类似于操作系统级别的目录,但模式不能嵌套。

在我看来,MySQL不是一个参考数据库。你永远不应该引用MySQL作为解释。 MySQL实现非标准SQL,有时声称它不支持的功能。例如,在MySQL中,CREATE模式只会创建一个DATABASE。这确实是误导用户。

这种词汇被DBA称为“MySQLism”。

答案 4 :(得分:3)

是的,人们在MySQL方面可以互换使用这些术语。虽然您经常会听到人们不恰当地将整个数据库服务器称为数据库。

答案 5 :(得分:2)

MySQL中的

架构 数据库 的同义词。 对于那些跳到MySQL并且第一天找到 schema 这个词的初学者来说,它非常令人困惑,所以大家都不用担心,因为两者都是一样的。

当您第一次启动MySQL时,您需要创建一个数据库(与任何其他数据库系统一样)以便使用,这样您就可以 CREATE SCHEMA ,这只不过是 CREATE DATABASE < /强>

在其他一些数据库中,系统模式表示数据库的一部分或表的集合,而模式的集合是数据库。

答案 6 :(得分:0)

例如,Microsoft SQL Server,Schemas引用单个用户,是指示服务器,数据库,架构,表和对象的顺序的另一个容器级别。

例如,当您打算更新dbo.table_a并且语法不完全合格时,例如 UPDATE table.a DBMS无法决定使用预期的表。基本上默认情况下,DBMS将使用myuser.table_a

答案 7 :(得分:0)

如果您正在考虑或讨论Mysql。然后给出一个简单的答案

<块引用>

"SCHEMA 和 DATABASE 是完全一样的东西,只是一个合成 mysql 中的糖。”