MySQL中的架构和数据库之间有区别吗?在SQL Server中,数据库是与模式相关的更高级别的容器。
我读到Create Schema
和Create Database
在MySQL中基本上做同样的事情,这使我相信模式和数据库对于相同的对象是不同的单词。
答案 0 :(得分:280)
在MySQL中,物理上 架构 与 数据库 同义。您可以在MySQL SQL语法中替换关键字
SCHEMA
而不是DATABASE
,例如使用CREATE SCHEMA
而不是CREATE DATABASE
。其他一些数据库产品也有所区别。例如,在Oracle数据库产品中, 架构 仅代表数据库的一部分:单个用户拥有的表和其他对象。
答案 1 :(得分:52)
取决于数据库服务器。 MySQL
并不关心,它基本上是一样的。
Oracle
,DB2
和其他企业级数据库解决方案有所区别。通常,架构是表的集合,数据库是架构的集合。
答案 2 :(得分:16)
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并且第一天找到 schema 这个词的初学者来说,它非常令人困惑,所以大家都不用担心,因为两者都是一样的。
当您第一次启动MySQL时,您需要创建一个数据库(与任何其他数据库系统一样)以便使用,这样您就可以 CREATE SCHEMA ,这只不过是 CREATE DATABASE < /强>
在其他一些数据库中,系统模式表示数据库的一部分或表的集合,而模式的集合是数据库。
答案 6 :(得分:0)
例如,当您打算更新dbo.table_a并且语法不完全合格时,例如 UPDATE table.a DBMS无法决定使用预期的表。基本上默认情况下,DBMS将使用myuser.table_a
答案 7 :(得分:0)
如果您正在考虑或讨论Mysql。然后给出一个简单的答案
<块引用>"SCHEMA 和 DATABASE 是完全一样的东西,只是一个合成 mysql 中的糖。”