> 技术文档 > 数据库中的Schema是什么?不同数据库中Schema的含义_数据库schema

数据库中的Schema是什么?不同数据库中Schema的含义_数据库schema


数据库中的Schema是什么

  • 引言
  • 一、MySQL中的Schema
  • 二、PostgreSQL中的Schema
  • 三、Oracle中的Schema
  • 四、SQL Server中的Schema
  • 五、DB2中的Schema

引言

Schema在数据库中指一种逻辑结构或命名空间,用于组织和管理数据库对象(如表、视图、索引等)。不同数据库系统中Schema的具体含义和实现方式有所不同。

一、MySQL中的Schema

在MySQL中,Schema与Database是同义词,两者可以互换使用。创建Schema等同于创建Database。

CREATE SCHEMA test_schema; -- 等同于 CREATE DATABASE test_schema;
  • 数据库中的Schema是什么?「建议收藏」:https://cloud.tencent.com/developer/article/2084855

二、PostgreSQL中的Schema

PostgreSQL的Schema是Database内部的命名空间,默认存在public Schema。不同Schema可包含同名对象,适合多租户场景或模块化设计。就是一个数据库包含多个Schema,一个Schema可以包含多个表。需要SELECT表的时候,必须指定该表的模式所属SELECT * FROM Schema名称.表名称,或者使用以下方式设置搜素的路径:

CREATE SCHEMA custom_schema;SET search_path TO custom_schema, public; -- 设置搜索路径
  • 知识分享之PostgreSQL——数据库中的模式(Schema):https://cloud.tencent.com/developer/article/1930471

三、Oracle中的Schema

Oracle的Schema与用户账户绑定,每个用户拥有同名Schema。Schema包含该用户创建的所有对象。

CREATE USER schema_owner IDENTIFIED BY password;-- 用户schema_owner登录后创建的对象属于schema_owner Schema 
  • 数据库中的Schema是什么?「建议收藏」:https://cloud.tencent.com/developer/article/2084855

四、SQL Server中的Schema

SQL Server的Schema是Database内部的命名空间,用于权限管理和对象分组,是组织数据库对象(表、视图等)的逻辑结构。默认Schema为dbo。Schema与用户分离,一个用户可拥有多个Schema。

CREATE SCHEMA hr_schema;CREATE TABLE hr_schema.employees (...); -- 在hr_schema中创建表
  • sql server 指定schema:https://blog.51cto.com/u_16175514/12378827

五、DB2中的Schema

类似PostgreSQL中的Schema,DB2的Schema类似命名空间,用于分组对象。Schema名通常与创建它的用户ID相同。在PostgreSQL中,Schema主要用于逻辑隔离,便于多租户应用或模块化设计。DB2的Schema则更侧重于用户隔离,确保用户数据的独立性。PostgreSQL中,用户可以通过完整路径名(如schema.table)或配置search_path来访问其他Schema的对象。DB2需要显式授权才能跨Schema访问

CREATE SCHEMA analytics AUTHORIZATION db2user;
  • DB2的instance, database, 和schema对象:https://www.jianshu.com/p/e1f38505f789