MySQL中的schema和数据库有什么区别吗?在SQL Server中,数据库是相对于schema的更高级别的容器。
我了解到,在MySQL中,Create Schema
和Create Database
基本上是做同样的事情,这让我认为schema和database是指同一对象的不同术语。
MySQL中的schema和数据库有什么区别吗?在SQL Server中,数据库是相对于schema的更高级别的容器。
我了解到,在MySQL中,Create Schema
和Create Database
基本上是做同样的事情,这让我认为schema和database是指同一对象的不同术语。
根据MySQL词汇表的定义:
在MySQL中,物理上,一个schema等同于一个数据库。在MySQL SQL语法中,您可以用关键字
SCHEMA
代替DATABASE
,例如使用CREATE SCHEMA
代替CREATE DATABASE
。其他一些数据库产品则有所区别。比如,在Oracle Database产品中,一个schema仅表示数据库的一部分:一个单独用户拥有的表和其他对象。
取决于数据库服务器。 MySQL
不在意,基本上是同一件事。
Oracle
、DB2
和其他企业级数据库解决方案有所区别。通常一个模式是表的集合,而数据库是模式的集合。
参考 MySql 文档,
CREATE DATABASE 根据给定的名称创建一个数据库。要使用此语句,您需要该数据库的 CREATE 权限。自MySQL 5.0.2版本以来,CREATE SCHEMA 是 CREATE DATABASE 的同义词。
一个数据库包含一个或多个命名模式(schema),每个模式包含表和其他类型的命名对象,例如数据类型、函数和运算符。同一对象名称可以在不同的模式中使用而不冲突;例如,schema1 和 myschema 都可以包含名为 mytable 的表。与数据库不同,模式没有严格分离:如果用户具有权限,则可以访问所连接到的数据库中任何模式中的对象。
模式类似于操作系统级别的目录,但模式不能嵌套。以我个人谦虚的看法,MySQL 不是参考数据库。您永远不应该引用 MySQL 来解释问题。MySQL 实现了非标准 SQL 并有时声称支持它不支持的功能。例如,在 MySQL 中,CREATE schema 只会创建 DATABASE。这真的误导用户。
DBA 称此类词汇为 “MySQLism”。
在MySQL中,schema是database的同义词。对于那些第一次接触MySQL并在第一天发现这个词schema的初学者来说,可能会感到困惑,但是没关系,因为它们都是相同的。
当您第一次启动MySQL时,需要创建一个数据库(与任何其他数据库系统一样)以便进行操作,因此您可以使用CREATE SCHEMA,而其实就是CREATE DATABASE
在其他一些数据库系统中,schema代表数据库的一部分或表的集合,且多个schema的集合即构成了一个数据库。
是的,人们在提到MySQL时会将这些术语混用。虽然往往你会听到人们不恰当地把整个数据库服务器称为数据库。
如果你在思考或讨论Mysql,那么就给个简单的答案:
"SCHEMA和DATABASE在mysql中完全是相同的东西,只是一种合成糖。"
例如,Microsoft SQL Server中的模式是指单个用户,并且在指示服务器、数据库、模式、表和对象的顺序中是另一级容器。
例如,当您打算更新dbo.table_a并且语法不是完全限定的,例如UPDATE table.a,DBMS无法决定使用预期的表。基本上,默认情况下,DBMS将使用myuser.table_a。
请添加更多信息:
MongoDB还将schema
与database
区分开来。
schema
代表表格,也就是database
的结构。
与Postgres不同,SQL Server模式是一组具有相同内容的数据库,但在MySQL中,模式和数据库是相同的。MySQL不支持模式的概念。在MySQL中,模式和数据库是同义词。
当用户连接到MySQL时,他们并没有连接到特定的数据库。相反,他们可以访问任何他们有权限的表。
schema
比database
更好,因为MySQL是一种数据库,它包含多个database
,有时你会use
一个database
,这会导致许多搜索错过目标。 - dz902