【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 选项会删除模式及其包含的所有对象。




相关推荐
张伯毅1 分钟前
Flink SQL 支持 kafka 开启 kerberos 权限控制.
sql·flink·kafka
向阳12181 分钟前
mybatis 动态 SQL
数据库·sql·mybatis
胡图蛋.3 分钟前
什么是事务
数据库
小黄人软件5 分钟前
20241220流水的日报 mysql的between可以用于字符串 sql 所有老日期的,保留最新日期
数据库·sql·mysql
青莳吖7 分钟前
Java通过Map实现与SQL中的group by相同的逻辑
java·开发语言·sql
张声录110 分钟前
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
数据库·chrome·etcd
无为之士16 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
小汤猿人类29 分钟前
open Feign 连接池(性能提升)
数据库
阳冬园1 小时前
mysql数据库 主从同步
数据库·主从同步
XiaoH2331 小时前
培训机构Day15
sql·mysql