当前位置: 首页 > article >正文

psql 模式(SCHEMA)

模式是数据库领域的一个基本概念,有些数据库把模式和用户合二为一了,而postgresql则是有清晰的模式定义。

模式是数据库中的一个概念,可以理解为一个命名空间或目录,不同模式下可以有相同名称的表、函数等对象而不会产生冲突。提出模式的概念是为了方便管理,只要有权限,各个模式的对象都可以互相调用。

在postgresql中,一个数据库包含一个或多个模式,模式内又包含表、函数等内容。不同数据库表示不一样。
模式优点:

  • 允许多个用户使用一个数据库而不会彼此干扰。
  • 把数据库对象组织成逻辑组,让它们更便于管理。
  • 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。

语法:

--- 创建模式
CREATE SCHEMA schemaname [ AUTHORIZATION username ... ] ;
--- 查看已有模式
    \dn
--- 删除模式
DROP SCHEMA schemaname;

模式搜索路径

全称的名字写起来非常费劲,并且我们最好不要在应用里直接写上特定的模式名。因此,表通常都是用未修饰的名字引用的,这样的名字里只有表名字。系统通过查找一个搜索路径来判断一个表究竟是哪个表,这个路径是一个需要查找的模式列表。 在搜索路径里找到的第一个表将被当作选定的表。如果在搜索路径中没有匹配表,那么就报告一个错误,即使匹配表的名字在数据库其它的模式中存在也如此。

在搜索路径中的第一个模式叫做当前模式。除了是搜索的第一个模式之外, 它还是在 CREATE TABLE 没有声明模式名的时候,新建表所在的地方。
语法:

SHOW search_path;

修改默认模式:

SET search_path TO selfschema ,public;

模式的权限:

默认情况下,用户无法访问模式中不属于他们的对象。如果要访问,就要为模式赋予 “USAGE” 权限。

REVOKE CREATE ON SCHEMA schemaname FROM PUBLIC;
--- schemaname是模式名,PUBLIC是所有用户的意思。

模式的可移植性:

SQL标准中,同一个模式下的对象是不能被不同的用户拥有的,同时也没有public模式的概念。有些数据库也没有模式的概念。

PostgreSQL 模式介绍


http://www.kler.cn/a/134052.html

相关文章:

  • ubuntu连接orangepi-zero-2w桌面的几种方法
  • 【go从零单排】JSON序列化和反序列化
  • 密码学的基本原理
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • C++ 数组与结构 编程练习
  • mongoDB的安装及使用
  • ICCV 23丨3D-VisTA:用于 3D 视觉和文本对齐的预训练Transformer
  • python科研绘图:面积图
  • 一些RLHF的平替汇总
  • c语言常见的面试问题
  • Qt HTTP 摘要认证(海康球机摄像机ISAPI开发)
  • C语言——1.入门须知
  • TikTok与媒体素养:如何辨别虚假信息?
  • SpirngBoot + Vue 前后端分离开发工具代码
  • 阶乘算法优化
  • curl网络请求命令
  • milvus数据库索引管理
  • ClickHouse查看执行计划
  • CI/CD -gitlab
  • Notepad+正则表达式使用方法
  • ubuntu20编译ffmpeg3.3.6
  • Python实现视频字幕时间轴格式转换
  • 16. @PostConstruct注解和开关原理(验证码开关、IP开关)
  • 流量4----4
  • 【Java 进阶篇】JQuery 事件绑定:`on` 与 `off` 的奇妙舞曲
  • fully_connected与linear