Skip to content

数据库与模式 ​

数据库(Database)概述 ​

在 PostgreSQL 中,一个数据库是逻辑上的数据容器,包含一组独立的表、视图、函数等对象。

  • 每个数据库是独立命名空间,不能跨库查询(除非使用 FDW)
  • 一个 PostgreSQL 实例可包含多个数据库
  • 数据库创建语法:
sql
CREATE DATABASE mydb;

模式(Schema)的作用 ​

模式(Schema)是数据库内的逻辑结构,用于组织对象,如表、视图、函数等。

  • 类似文件系统中的文件夹
  • 同一个数据库可以包含多个 schema
  • 默认 schema 是 public
  • 创建 schema 的语法:
sql
CREATE SCHEMA sales;

使用 Schema 的好处 ​

  • 组织结构清晰:便于模块化管理(如 finance, hr, sales 等)
  • 权限控制:可基于 schema 设置访问权限
  • 多版本支持:可以存放同名对象(如多个版本的函数)
  • 支持多租户:每个租户一个 schema,实现隔离

Schema 示例 ​

sql
-- 创建 schema 并授权给某用户
CREATE SCHEMA hr AUTHORIZATION alice;

-- 在 schema 中创建表
CREATE TABLE hr.employees (
  id SERIAL PRIMARY KEY,
  name TEXT,
  hired_at DATE
);

-- 查询指定 schema 下的表
SELECT * FROM hr.employees;

设置默认搜索路径 ​

可以通过 search_path 设置默认 schema:

sql
SET search_path TO hr, public;

小结 ​

PostgreSQL 的 schema 提供了灵活的对象分组方式,使数据库结构更清晰,并增强了安全性和可扩展性。在多用户、多项目环境中尤为重要。

数据库与模式 ​

数据库(Database)概述 ​

在 PostgreSQL 中,一个数据库是逻辑上的数据容器,包含一组独立的表、视图、函数等对象。

  • 每个数据库是独立命名空间,不能跨库查询(除非使用 FDW)
  • 一个 PostgreSQL 实例可包含多个数据库
  • 数据库创建语法:
sql
CREATE DATABASE mydb;

模式(Schema)的作用 ​

模式(Schema)是数据库内的逻辑结构,用于组织对象,如表、视图、函数等。

  • 类似文件系统中的文件夹
  • 同一个数据库可以包含多个 schema
  • 默认 schema 是 public
  • 创建 schema 的语法:
sql
CREATE SCHEMA sales;

使用 Schema 的好处 ​

  • 组织结构清晰:便于模块化管理(如 finance, hr, sales 等)
  • 权限控制:可基于 schema 设置访问权限
  • 多版本支持:可以存放同名对象(如多个版本的函数)
  • 支持多租户:每个租户一个 schema,实现隔离

Schema 示例 ​

sql
-- 创建 schema 并授权给某用户
CREATE SCHEMA hr AUTHORIZATION alice;

-- 在 schema 中创建表
CREATE TABLE hr.employees (
  id SERIAL PRIMARY KEY,
  name TEXT,
  hired_at DATE
);

-- 查询指定 schema 下的表
SELECT * FROM hr.employees;

设置默认搜索路径 ​

可以通过 search_path 设置默认 schema:

sql
SET search_path TO hr, public;

小结 ​

PostgreSQL 的 schema 提供了灵活的对象分组方式,使数据库结构更清晰,并增强了安全性和可扩展性。在多用户、多项目环境中尤为重要。

Released under the MIT License.