MySQL中的模式和数据库之间有区别吗?在SQL Server中,数据库是与模式相关的更高级别的容器 .
我读到 Create Schema 和 Create Database 在MySQL中基本上做同样的事情,这使我相信模式和数据库对于相同的对象是不同的单词 .
Create Schema
Create Database
如_1036056中所定义:
在MySQL中,物理上,模式与数据库是同义词 . 您可以在MySQL SQL语法中替换关键字SCHEMA而不是DATABASE,例如使用CREATE SCHEMA而不是CREATE DATABASE . 其他一些数据库产品也有所区别 . 例如,在Oracle数据库产品中,模式仅表示数据库的一部分:单个用户拥有的表和其他对象 .
取决于数据库服务器 . MySQL 并不在乎,它的基本相同 .
MySQL
Oracle , DB2 和其他企业级数据库解决方案有所区别 . 通常是 schema is a collection of tables 和 Database is a collection of schemas.
Oracle
DB2
参考MySql documentation,
CREATE DATABASE创建具有给定名称的数据库 . 要使用此语句,您需要数据库的CREATE特权 . 从MySQL 5.0.2开始,CREATE SCHEMA是CREATE DATABASE的同义词 .
PostgreSQL支持模式,模式是数据库的子集:https://www.postgresql.org/docs/current/static/ddl-schemas.html
数据库包含一个或多个命名模式,而模式又包含表 . 模式还包含其他类型的命名对象,包括数据类型,函数和运算符 . 相同的对象名称可以在不同的模式中使用而不会发生冲突;例如,schema1和myschema都可以包含名为mytable的表 . 与数据库不同,模式不是严格分开的:用户可以访问它们所连接的数据库中任何模式中的对象,如果他们有权这样做的话 .
模式类似于操作系统级别的目录,但模式不能嵌套 .
在我看来,MySQL不是一个参考数据库 . 你永远不应该引用MySQL作为解释 . MySQL实现非标准SQL,有时声称它不支持的功能 . 例如,在MySQL中,CREATE模式只会创建一个DATABASE . 这确实是误导用户 .
这种词汇被DBA称为“MySQLism” .
是的,人们在MySQL方面可以互换使用这些术语 . 虽然您经常会听到人们不恰当地将整个数据库服务器称为数据库 .
在MySQL schema 中是 database 的同义词 . 对于那些跳到MySQL并且第一天找到模式这个词的初学者来说,这让人很困惑,所以大家都不用担心两者都是一样的 .
当你第一次启动MySQL时,你需要创建一个数据库(就像任何其他数据库系统一样),所以你可以 CREATE SCHEMA 这只是 CREATE DATABASE
在一些其他数据库系统模式中表示数据库的一部分或表的集合,而模式的集合是数据库 .
例如,Microsoft SQL Server,Schemas引用单个用户,并且是指示服务器,数据库,架构,表和对象的顺序的容器的另一级别 .
例如,当您打算更新dbo.table_a并且语法不是完全限定的(例如UPDATE table.a)时,DBMS无法决定使用目标表 . 基本上默认情况下,DBMS将使用myuser.table_a
7 回答
如_1036056中所定义:
取决于数据库服务器 .
MySQL
并不在乎,它的基本相同 .Oracle
,DB2
和其他企业级数据库解决方案有所区别 . 通常是 schema is a collection of tables 和 Database is a collection of schemas.参考MySql documentation,
PostgreSQL支持模式,模式是数据库的子集:https://www.postgresql.org/docs/current/static/ddl-schemas.html
模式类似于操作系统级别的目录,但模式不能嵌套 .
在我看来,MySQL不是一个参考数据库 . 你永远不应该引用MySQL作为解释 . MySQL实现非标准SQL,有时声称它不支持的功能 . 例如,在MySQL中,CREATE模式只会创建一个DATABASE . 这确实是误导用户 .
这种词汇被DBA称为“MySQLism” .
是的,人们在MySQL方面可以互换使用这些术语 . 虽然您经常会听到人们不恰当地将整个数据库服务器称为数据库 .
在MySQL schema 中是 database 的同义词 . 对于那些跳到MySQL并且第一天找到模式这个词的初学者来说,这让人很困惑,所以大家都不用担心两者都是一样的 .
当你第一次启动MySQL时,你需要创建一个数据库(就像任何其他数据库系统一样),所以你可以 CREATE SCHEMA 这只是 CREATE DATABASE
在一些其他数据库系统模式中表示数据库的一部分或表的集合,而模式的集合是数据库 .
例如,Microsoft SQL Server,Schemas引用单个用户,并且是指示服务器,数据库,架构,表和对象的顺序的容器的另一级别 .
例如,当您打算更新dbo.table_a并且语法不是完全限定的(例如UPDATE table.a)时,DBMS无法决定使用目标表 . 基本上默认情况下,DBMS将使用myuser.table_a