【postgresql】模式(SCHEMA)

在 PostgreSQL 中,模式(SCHEMA)是一个命名空间,它允许你将数据库对象(如表、视图、索引、数据类型、函数等)组织成逻辑组。每个数据库都可以包含多个模式,而每个模式都可以包含多个数据库对象。使用模式的主要目的是提供组织上的便利,以及控制数据库对象的访问权限。

  • 模式是数据库对象的命名空间,它包含一组相关的数据库对象。
  • 每个数据库至少有一个模式,称为 public 模式。

模式的作用

  • 命名空间管理:模式提供了一个命名空间,可以避免对象名称之间的冲突。
  • 权限控制:可以为不同的用户或角色分配不同的模式,从而控制他们对数据库对象的访问权限。
  • 组织结构:模式可以帮助组织和管理大型数据库中的对象,使其更加清晰和易于维护。

创建模式

使用 CREATE SCHEMA 语句来创建一个新的模式。

sql 复制代码
CREATE SCHEMA my_schema;

使用模式

创建模式后,你可以在该模式下创建数据库对象。

sql 复制代码
CREATE TABLE demo_schema.demo_table (
    column1 datatype,
    column2 datatype
);

访问模式

默认情况下,如果没有指定模式,PostgreSQL 会查找 search_path 中列出的模式。search_path 是一个系统变量,定义了模式搜索的顺序。

可以通过 SET search_path 语句来修改 search_path。可以使用

sql 复制代码
SET search_path TO schema_name; 

来设置默认的搜索路径,这样在没有指定模式的情况下创建对象时,就会使用这个模式。

可以使用**schema_name.object_name**的格式来访问特定模式中的对象。例如:

sql 复制代码
SELECT * FROM my_schema.my_table;

删除模式

可以使用 DROP SCHEMA 语句来删除一个模式。例如:

sql 复制代码
DROP SCHEMA my_schema CASCADE;

CASCADE 选项会删除模式及其包含的所有对象。




相关推荐
逸Y 仙X16 分钟前
文章二十四:Elasticsearch查询排序应用实战e
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
2401_8714928521 分钟前
C#怎么使用泛型 C#泛型类泛型方法和泛型约束的定义和使用方法【语法】
jvm·数据库·python
战南诚43 分钟前
深分页问题
数据库·mysql
2301_7873124344 分钟前
Vue.js中Patch过程处理Teleport组件挂载位置的特殊逻辑
jvm·数据库·python
dfdfadffa1 小时前
Golang Gin怎么做JWT登录认证_Golang Gin JWT教程【实用】
jvm·数据库·python
m0_736439301 小时前
C#怎么实现MVVM模式 C#如何在WPF中使用MVVM设计模式分离视图和逻辑【架构】
jvm·数据库·python
名字不好奇1 小时前
RAG进阶:下一代RAG怎么玩?
数据库·人工智能
zhoutongsheng1 小时前
Chromebook适合用什么HTML函数工具_轻量化方案汇总【汇总】
jvm·数据库·python
万事大吉CC1 小时前
【4】深入剖析 Django 之 MTV:ORM 系统核心原理
数据库·python·oracle·django·sqlite
ByteX1 小时前
MySQL 联合索引创建效果评估
数据库·mysql