首页 文章

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

提问于
浏览
211

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

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

7 回答

  • 16

    如_1036056中所定义:

    在MySQL中,物理上,模式与数据库是同义词 . 您可以在MySQL SQL语法中替换关键字SCHEMA而不是DATABASE,例如使用CREATE SCHEMA而不是CREATE DATABASE . 其他一些数据库产品也有所区别 . 例如,在Oracle数据库产品中,模式仅表示数据库的一部分:单个用户拥有的表和其他对象 .

  • 3

    取决于数据库服务器 . MySQL 并不在乎,它的基本相同 .

    OracleDB2 和其他企业级数据库解决方案有所区别 . 通常是 schema is a collection of tablesDatabase is a collection of schemas.

  • 1

    参考MySql documentation

    CREATE DATABASE创建具有给定名称的数据库 . 要使用此语句,您需要数据库的CREATE特权 . 从MySQL 5.0.2开始,CREATE SCHEMA是CREATE DATABASE的同义词 .

  • 49

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

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

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

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

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

  • 0

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

  • 247

    在MySQL schema 中是 database 的同义词 . 对于那些跳到MySQL并且第一天找到模式这个词的初学者来说,这让人很困惑,所以大家都不用担心两者都是一样的 .

    当你第一次启动MySQL时,你需要创建一个数据库(就像任何其他数据库系统一样),所以你可以 CREATE SCHEMA 这只是 CREATE DATABASE

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

  • 5

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

    例如,当您打算更新dbo.table_a并且语法不是完全限定的(例如UPDATE table.a)时,DBMS无法决定使用目标表 . 基本上默认情况下,DBMS将使用myuser.table_a

相关问题