首页  > 世界杯冠军奖金

schema与database 区别细分

目前市面上常见关系型数据库大体种类方向:Oracle(独占鳌头,国产信创不允许,国内总体去O化)MySQL(小微企业狂喜,国产数据库一部分向MySQL靠拢)postgresql(简称PG,开源免费,国产数据库向其靠拢)

但是在以上数据库体系schema和database 略有不同

Oracle中:

database:实例便是数据库 用户无法创建多个数据库 实例(数据库)是最高数据容器 包含所有物理和逻辑结构。

schema:逻辑上的命名空间与用户一一对应(user)创建用户时会创建一个同名的schema Schema 用于组织用户拥有的对象(如表、视图、存储过程等)。不同用户的 Schema 彼此隔离,需授权才能访问。 Schema 是逻辑容器,不直接关联物理存储。 用户通过权限控制跨 Schema 访问(例如 SELECT * FROM user2.table1)。

PG中:

database:完全独立的逻辑容器,不同数据库之间无法直接访问(需通过 dblink 或跨库查询扩展)

schema:Schema 是 Database 内部的逻辑分组,一个 Database 可以包含多个 Schema。 默认 Schema 是 public,可通过 search_path 配置访问优先级。 支持跨 Schema 访问(例如 SELECT * FROM hr.employees)

Mysql中:

database与schema

Database 和 Schema 是完全等价的(CREATE DATABASE 和 CREATE SCHEMA 语法相同)。 不同 Database 之间需显式切换(USE db1)或通过前缀访问(db1.table1)。