• 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 模式介绍

  • 相关阅读:
    迷你无人车 Gazebo 仿真
    深入理解单一职责原则(Single Responsibility principle )
    github代码比对颜色介绍
    【前端实例代码】使用HTML CSS 和 JavaScript制作一个五星评价的功能!可动态好评+差评+留言功能!
    C语言库函数— qsort () 详解
    闪烁霓虹灯文字动画
    java小游戏-飞翔的小鸟
    定义头文件如何避免被重复引用
    JSD-2204-Dubbo实现微服务调用-Seata-Day03
    Java 17 VS Java 8: 新旧对决,这些Java 17新特性你不容错过
  • 原文地址:https://blog.csdn.net/qq_63432403/article/details/134497253