345

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

我读过它Create SchemaCreate Database在 MySQL 中做了基本相同的事情,这让我相信模式和数据库对于相同的对象来说是不同的词。

4

10 回答 10

402

如MySQL 词汇表中所定义:

在 MySQL 中,从物理上讲,模式数据库的同义词。您可以在 MySQL SQL 语法中替换关键字SCHEMA而不是DATABASE,例如使用CREATE SCHEMAinstead of CREATE DATABASE

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

于 2012-07-23T18:32:06.667 回答
82

取决于数据库服务器。MySQL没关系,基本都是一样的。

Oracle, DB2, 和其他企业级数据库解决方案有所区别。通常,模式是表的集合,数据库是模式的集合。

于 2013-10-08T20:32:45.577 回答
20

参考 MySql文档

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

于 2012-07-23T18:34:02.780 回答
13

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

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

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

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

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

于 2017-06-14T09:52:40.200 回答
9

在 MySQL模式中是数据库的同义词。对于跳到 MySQL 并在第一天找到单词schema的初学者来说,这非常令人困惑,所以大家不用担心,因为两者都是一样的。

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

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

于 2018-02-13T10:57:07.733 回答
4

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

于 2012-07-23T18:28:43.317 回答
2

如果您正在考虑或讨论Mysql。然后简单回答

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

于 2021-05-24T06:15:29.653 回答
1

只需添加更多信息:

MongoDB还区别于schema.database

schema表示表,表示 的结构database

于 2021-08-20T04:02:18.380 回答
0

以 Microsoft SQL Server 为例,Schemas 指的是单个用户,是容器的另一个层次,按服务器、数据库、模式、表和对象的顺序排列。

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

于 2014-04-01T19:27:34.387 回答
0

与 Postgres 不同,SQL 服务器模式是一组数据库具有相同的东西,但在 mysql 模式和数据库中它是相同的 MySQL 不支持模式的概念。在 MySQL 中,模式和模式是数据库和数据库的同义词。

当用户连接到 MySQL 时,他们不会连接到特定的数据库。相反,他们可以访问他们有权访问的任何表

于 2022-02-23T03:05:35.413 回答