数据库中的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