首页 > 其他分享 >openGauss SCHEMA

openGauss SCHEMA

时间:2024-04-26 11:24:05浏览次数:14  
标签:name CREATE 模式 openGauss SCHEMA schema

SCHEMA

SCHEMA又称作模式。通过管理SCHEMA,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的SCHEMA下而不引起冲突。

每个数据库包含一个或多个SCHEMA。数据库中的每个SCHEMA包含表和其他类型的对象。数据库创建初始,默认具有一个名为PUBLIC的SCHEMA,且所有用户都拥有此SCHEMA的USAGE权限,只有系统管理员和初始化用户可以在PUBLIC SCHEMA下创建函数、存储过程和同义词对象,其他用户即使赋予CREATE权限后也不可以创建上述三种对象。可以通过SCHEMA分组数据库对象。SCHEMA类似于操作系统目录,但SCHEMA不能嵌套。

相同的数据库对象名称可以应用在同一数据库的不同SCHEMA中,而没有冲突。例如,a_schema和b_schema都可以包含名为mytable的表。具有所需权限的用户可以访问数据库的多个SCHEMA中的对象。

通过CREATE USER创建用户的同时,系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA。

语法格式

  • 创建SCHEMA

    CREATE SCHEMA schema_name 
        [ AUTHORIZATION user_name ] ;
    
  • 修改SCHEMA

    • 修改模式的名称。

      ALTER SCHEMA schema_name 
          RENAME TO new_name;
      
    • 修改模式的所有者。

      ALTER SCHEMA schema_name 
          OWNER TO new_owner;
      
  • 删除SCHEMA及其对象。

    DROP SCHEMA  schema_name;
    

    不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。

参数说明

  • schema_name

    模式名称。

    须知:
    模式名不能和当前数据库里其他的模式重名。
    模式的名称不可以“pg_”开头。

    取值范围:字符串,要符合标识符的命名规范。

  • AUTHORIZATION user_name

    指定模式的所有者。当不指定schema_name时,把user_name当作模式名,此时user_name只能是角色名。

    取值范围:已存在的用户名/角色名。

  • schema_element

    在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。

    子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。

说明:
如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。

示例

  • 创建一个属于用户user1的模式。

    创建一个用户user1。

    openGauss=# CREATE USER user1 IDENTIFIED BY 'XXXXXXXX';
    CREATE ROLE
    

    根据用户名创建模式。

    openGauss=# CREATE SCHEMA test AUTHORIZATION user1;
    CREATE SCHEMA
    
  • 修改模式test的名称为test1。

    openGauss=# ALTER SCHEMA test RENAME TO test1;
    ALTER SCHEMA
    
  • 修改模式的所有者。

    创建一个用户user2。

    openGauss=# CREATE USER user2 IDENTIFIED BY 'XXXXXXXXX';
    CREATE ROLE
    

    修改模式 test1的所有者为user2。

    openGauss=# ALTER SCHEMA test1  OWNER TO user2;
    ALTER SCHEMA
    
  • 查看当前搜索路径

    openGauss=# SHOW SEARCH_PATH;
      search_path
    ----------------
     "$user",public
    (1 row)
    
  • 更改当前会话的默认Schema。

    openGauss=# SET SEARCH_PATH TO test1, public;
    SET
    
  • 删除SCHEMA及其对象。

    openGauss=# DROP SCHEMA test1;
    DROP SCHEMA
    

标签:name,CREATE,模式,openGauss,SCHEMA,schema
From: https://www.cnblogs.com/renxyz/p/18159585

相关文章

  • openGauss SELECT语句
    SELECT语句SELECT语句用于从表或视图中取出数据,结果被存储在一个结果表中,称为结果集。SELECT语句就像叠加在数据库表上的过滤器,利用SQL关键字从数据表中过滤出用户需要的数据。语法格式SELECT{*|[column,...]}[FROMfrom_item[,...]];参数说明SELECT列表指......
  • openGauss JOIN
    JOINJOIN子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。在openGauss中,JOIN有五种连接类型:CROSSJOIN:交叉连接INNERJOIN:内连接LEFTOUTERJOIN:左外连接RIGHTOUTERJOIN:右外连接FULLOUTERJOIN:全外连接以表table1和表table2为例说明不同连接类型,......
  • openGauss NULL值
    NULL值NULL值代表未知数据。无法比较NULL和0,因为它们是不等价的。创建表时,可以指定列可以存放或者不能存放NULL值,详情请参见NOTNULL约束。本节介绍ISNULL和ISNOTNULL操作符。创建表customer_t1,数据如下:openGauss=#SELECT*FROMcustomer_t1;c_customer_sk|c_custome......
  • openGauss ORDER-BY子句
    ORDERBY子句ORDERBY子句用于对SELECT语句检索得到的一列或者多列数据进行升序(ASC)或者降序(DESC)排列。语法格式SELECT{*|[column,...]}[FROMfrom_item[,...]][ORDERBY{expression[ASC|DESC]}];参数说明ORDERBY子句对SELECT语句检索得到的数据进......
  • openGauss INSERT-INTO语句
    INSERTINTO语句在创建一个表后,表中并没有数据,使用这个表之前,需要向表中插入数据。INSERTINTO语句用于向表中插入新记录。该语句可以插入一行数据也可以同时插入多行数据。语法格式INSERTINTOtable_name[(column_name[,...])]{DEFAULTVALUES|VALUES{(......
  • dremio SchemaMutability 简单说明
    dremioSchemaMutability属于一个枚举,定义了schema的可变性能力()参考定义publicenumSchemaMutability{@Tag(1)ALL(true,true,true,true), @Tag(2)NONE(false,false,false,false), @Tag(3)SYSTEM_TABLE(false,true,false......
  • openGauss Slow-Query-Diagnosis-慢SQL根因分析命令参考
    命令参考表1gs_dbmindcomponentslow_query_diagnosis命令行说明参数参数说明取值范围-h,--help帮助命令-action动作参数show:结果展示clean:清理结果diagnosis:交互诊断-c,--conf配置目录---query慢SQL文本*--start-time显示开始时间......
  • openGauss Slow-Query-Diagnosis-慢SQL根因分析使用指导
    使用指导假设用户已经初始化配置文件目录confpath,则可以通过下述命令实现本特性的功能:仅启动慢SQL诊断功能(输出Top3根因),启动命令如下(更多用法参考对service子命令的说明):gs_dbmindservicestart-cconfpath--only-runslow_query_diagnosis用户交互式慢SQL诊断,命令如下......
  • openGauss SQLdiag-慢SQL发现
    SQLdiag:慢SQL发现SQLdiag是openGauss中SQL语句执行时长预测工具。现有的预测技术主要基于执行计划的预测方法,但这些预测方案仅适用于OLAP场景且可以获取执行计划的任务,对于OLTP或者HTAP这样的快速、简单查询是没有太多使用价值的。与上述方案不同,SQLdiag着眼于数据库的历史SQL语......
  • openGauss Slow-Query-Diagnosis-慢SQL根因分析常见问题处理
    常见问题处理如果用户对没有执行过的慢SQL执行交互式诊断命令,则无法给出诊断结果。exporter指标采集功能没有启动时运行慢SQL诊断功能,此时功能无法正常运行。配置文件中的参数重新设置后,需要重新启动服务进程才能生效。使用慢SQL的交互诊断功能时,工具基于RPC和数据采集服务获......