Answers:
如MySQL词汇表中所定义:
实际上,在MySQL中,模式与数据库是同义词。您可以用MySQL SQL语法
SCHEMA
代替关键字DATABASE
,例如使用CREATE SCHEMA
代替CREATE DATABASE
。其他一些数据库产品也有区别。例如,在Oracle数据库产品中,模式仅代表数据库的一部分:单个用户拥有的表和其他对象。
取决于数据库服务器。MySQL
不在乎,基本上是一样的。
Oracle
,,DB2
和其他企业级数据库解决方案有所不同。通常一个模式是表的集合和一个数据库是一个模式的集合。
Oracle
,并DB2
为这种情况。
create database
和create schema
是同义词)。在Oracle中,模式是用户的同义词(也许更准确地说,模式是用户下创建的所有对象的列表)。MSSQL区分所有这三个(因此,从不同数据库访问表时,名称必须同时由数据库和架构限定database1.dbo.table2
),例如
PostgreSQL支持模式,它是数据库的子集:https : //www.postgresql.org/docs/current/static/ddl-schemas.html
数据库包含一个或多个命名模式,而这些命名模式又包含表。模式还包含其他种类的命名对象,包括数据类型,函数和运算符。相同的对象名称可以在不同的模式中使用,而不会发生冲突。例如,schema1和myschema都可以包含名为mytable的表。与数据库不同,架构不是严格分开的:用户可以访问与其连接的数据库中任何架构中的对象(如果有权限)。
架构类似于操作系统级别的目录,不同之处在于架构不能嵌套。
以我的拙见,MySQL不是参考数据库。您永远不要引用MySQL进行解释。MySQL实现了非标准的SQL,有时还声称它不支持的功能。例如,在MySQL中,CREATE模式只会创建一个DATABASE。这确实是在误导用户。
DBA将这种词汇称为“ MySQLism”。
例如,在Microsoft SQL Server中,架构是指单个用户,并且按照指示服务器,数据库,架构,表和对象的顺序是容器的另一级别。
例如,当您打算更新dbo.table_a且语法不是完全限定的格式(例如UPDATE table.a)时,DBMS无法决定使用预期的表。本质上,默认情况下,DBMS将使用myuser.table_a
schema
是比好database
,因为MySQL是一种数据库,它包含几个database
,有时你use
一个database
,这使得许多搜索小姐目标。