这可能是一个非常糟糕的问题。但我一直将模式视为数据库中的表定义。这是错误的或不完全正确的。我不太记得我的数据库课程了。
当前回答
Schema的行为就像在OOP中看到的父对象一样。所以它本身不是一个数据库。也许这个链接有用。
但是,在MySQL中,这两者是等价的。关键字DATABASE或DATABASES 可以在任何出现的地方替换为SCHEMA或SCHEMAS。例子:
创建数据库<=>创建模式 显示数据库<=>显示模式
MySQL文档
SCHEMA和DATABASE术语是依赖于DBMS的。
Table是一组数据元素(值),使用垂直列(由其名称标识)和水平行模型组织。数据库通常包含一个或多个表。你把数据存储在这些表中。这些表可能彼此相关(见这里)。
其他回答
关系模式是表的逻辑定义——它定义了表的名称,以及每一列的名称和类型。就像一个计划或蓝图。数据库模式是整个数据库的关系模式的集合。
表是由一组行(又名“元组”)组成的结构,每一行都有由模式定义的属性。表上还可能有索引,以帮助查找某些列上的值。
从形式上讲,数据库是任何数据的集合。在这个上下文中,数据库将是表的集合。DBMS(数据库管理系统)是管理和运行数据库的软件(如MySQL, SQL Server, Oracle等)。
架构->平面图
数据库->房子
桌子->房间
就像MusiGenesis说的那样,在大多数数据库中:
架构:数据库:表::平面图:房子:房间
但是,在Oracle中,它可能更容易想到:
架构:数据库:表::所有者:房子:房间
在oracle中,Schema是一个数据库下的一个用户,例如scott是orcl数据库中的一个模式。 在一个数据库中,我们可能有很多像scott这样的模式
模式是数据库对象的集合,其中也包括逻辑结构。 它具有拥有它的用户的名称。 一个数据库可以有任意数量的Schema。 数据库中的一个表可以出现在两个同名的不同模式中。 用户可以查看已为其分配选择特权的任何模式。
推荐文章
- 截断Postgres数据库中的所有表
- 什么是分片,为什么它很重要?
- 数据库触发器是必要的吗?
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?
- 关于数据库,每个开发人员应该知道些什么?
- "where 1=1"语句
- 是使用各有一个模式的多个数据库更好,还是使用一个数据库有多个模式更好?
- 如何从Oracle的表中获取列名?
- 如何检查表上持有哪些锁
- 在MongoDB中查找重复的记录
- 模式、表和数据库之间的区别是什么?
- 我看到VARCHAR(255)如此频繁地使用(而不是其他长度),有什么好的原因吗?