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

openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库

文章目录

    • openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库
      • 65.1 前提条件
      • 65.2 背景信息
      • 65.3 注意事项
      • 65.4 操作步骤
        • 65.4.1 创建数据库
        • 65.4.2 查看数据库
        • 65.4.3 修改数据库
        • 65.4.4 删除数据库

openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库

65.1 前提条件

用户必须拥有数据库创建的权限或者是数据库的系统管理员权限才能创建数据库,赋予创建数据库的权限参见管理用户及权限

65.2 背景信息

  • 初始时,openGauss包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的兼容数据库类型为O(即DBCOMPATIBILITY = A ),该兼容类型下将空字符串作为NULL处理。

  • CREATE DATABASE实际上通过拷贝模板数据库来创建新数据库。默认情况下,拷贝template0。请避免使用客户端或其他手段连接及操作两个模板数据库。

    img 说明:

    • 模板数据库中没有用户表,可通过系统表PG_DATABASE查看模板数据库属性。
    • 模板template0不允许用户连接;模板template1只允许数据库初始用户和系统管理员连接,普通用户无法连接。
  • 数据库系统中会有多个数据库,但是客户端程序一次只能连接一个数据库。也不能在不同的数据库之间相互查询。一个openGauss中存在多个数据库时,需要通过-d参数指定相应的数据库实例进行连接。

65.3 注意事项

如果数据库的编码为SQL_ASCII(可以通过“show server_encoding;”命令查看当前数据库存储编码),则在创建数据库对象时,如果对象名中含有多字节字符(例如中文),超过数据库对象名长度限制(63字节)的时候,数据库将会将最后一个字节(而不是字符)截断,可能造成出现半个字符的情况。

针对这种情况,请遵循以下条件:

  • 保证数据对象的名称不超过限定长度。
  • 修改数据库的默认存储编码集(server_encoding)为utf-8编码集。
  • 不要使用多字节字符做为对象名。
  • 创建的数据库总数目不得超过128个。
  • 如果出现因为误操作导致在多字节字符的中间截断而无法删除数据库对象的现象,请使用截断前的数据库对象名进行删除操作,或将该对象从各个数据库节点的相应系统表中依次删掉。

65.4 操作步骤

65.4.1 创建数据库

a. 使用如下命令创建一个新的表空间superman_local。

openGauss=# CREATE TABLESPACE superman_local RELATIVE LOCATION 'tablespace/tablespace_1' ;
CREATE TABLESPACE

b. 使用如下命令创建一个新的数据库superman_tpcc。

openGauss=# CREATE DATABASE superman_tpcc WITH TABLESPACE = superman_local;
CREATE DATABASE

img 说明:

  • 数据库名称遵循SQL标识符的一般规则。当前角色自动成为此新数据库的所有者。
  • 如果一个数据库系统用于承载相互独立的用户和项目,建议把它们放在不同的数据库里。
  • 如果项目或者用户是相互关联的,并且可以相互使用对方的资源,则应该把它们放在同一个数据库里,但可以规划在不同的模式中。模式只是一个纯粹的逻辑结构,某个模式的访问权限由权限系统模块控制。
  • 创建数据库时,若数据库名称长度超过63字节,server端会对数据库名称进行截断,保留前63个字节,因此建议数据库名称长度不要超过63个字节。

65.4.2 查看数据库

  • 使用\l元命令查看数据库系统的数据库列表。

    openGauss=# \l
    
  • 使用如下命令通过系统表pg_database查询数据库列表。

    openGauss=# SELECT datname FROM pg_database;
    

65.4.3 修改数据库

用户可以使用如下命令修改数据库属性(比如:owner、名称和默认的配置属性)。

  • 使用以下命令为数据库设置默认的模式搜索路径。

    openGauss=# ALTER DATABASE superman_tpcc SET search_path TO pa_catalog,public;
    ALTER DATABASE
    
  • 使用如下命令修改数据库表空间。

    openGauss=# ALTER DATABASE superman_tpcc SET TABLESPACE superman;
    ALTER DATABASE
    
  • 使用如下命令为数据库重新命名。

    openGauss=# ALTER DATABASE superman_tpcc RENAME TO human_superman;
    ALTER DATABASE
    

65.4.4 删除数据库

用户可以使用DROP DATABASE命令删除数据库。这个命令删除了数据库中的系统目录,并且删除了磁盘上带有数据的数据库目录。用户必须是数据库的owner或者系统管理员才能删除数据库。当有人连接数据库时,删除操作会失败。删除数据库时请先连接到其他的数据库。

使用如下命令删除数据库:

openGauss=# DROP DATABASE human_superman;
DROP DATABASE

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230601184722086

http://www.lryc.cn/news/163820.html

相关文章:

  • mysql、MHA高可用配置即故障切换
  • 使用“vue init mpvue/mpvue-quickstart“初始化mpvue项目时出现的错误及解决办法
  • Linux-Shell整理集合
  • windows环境下node安装教程(超详细)
  • 《TCP/IP网络编程》阅读笔记--并发多进程服务端的使用
  • 【C++】day2学习成果:引用、结构体等等。。。
  • QT 第五天 TCP通信与数据库
  • Java程序中常用的设计模式有哪些和该种设计模式解决的痛点
  • Android12之解析/proc/pid进程参数(一百六十四)
  • 正儿八经的雅思口语盘丝洞大法学习总结(长期修改更新)针对23.9月考生
  • 算法竞赛入门【码蹄集新手村600题】(MT1260-1280)C语言
  • qt连接tcp通信和连接数据库
  • MySQL Oracle区别
  • Figma实用插件速收藏!精选19个干货插件大公开!
  • 【STM32】FSMC—扩展外部 SRAM 初步使用 1
  • 保姆级教程 --redis启动命令
  • 【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )
  • 胡焕庸线,我国东西地级市分布密度分界线
  • 里氏替换原则在继承关系中子类对父类方法的重写(覆盖)或重载时应遵循的规则
  • 【脑机接口开源数据处理包】brainflowBrainFlow是一个库,旨在获取,解析和分析脑电图,肌电图,心电图和其他类型的数据从生物传感器。
  • #452. 序列操作
  • 《Python深度学习-Keras》精华笔记3:解决深度学习多分类问题
  • 区块链世界的大数据入门之zkMapReduce简介
  • Python流程控制语句-条件判断语句练习及应用详解
  • (十)ElasticSearch高级使用【别名,重建索引,refresh操作,高亮查询,查询建议】
  • 基于小波神经网络的中药材价格预测,基于ANN的小波神经网络中药材价格预测
  • thinkPhp5返回某些指定字段
  • 基于docker环境的tomcat开启远程调试
  • ELK日志框架图总结
  • go 每天定时任务 --chatGPT