【赵渝强老师】openGauss的数据库

在OpenGauss中,数据库本身也是数据库对象。不同的数据库在逻辑上彼此分离,除数据库之外的其他数据库对象(例如:表、索引等等)都属于它们各自的数据库。通过下面的语句可以查看OpenGauss数据库服务器中已存在的数据库。

视频讲解如下
【赵渝强老师】openGauss的数据库

(1)登录OpenGauss。

powershell 复制代码
bin/gsql -d postgres

(2)查看OpenGauss中已有的数据库。

powershell 复制代码
openGauss=# \l

# 输出的信息如下:
                         List of databases
   Name    |  Owner   | Encoding |......
-----------+----------+----------+------
 finance   | postgres | UTF8     |......
 postgres  | postgres | UTF8     |......
 school    | postgres | UTF8     |......
 scott     | postgres | UTF8     |......
 template0 | postgres | UTF8     |......
 template1 | postgres | UTF8     |......
           |          |          |......
(6 rows)

其中:

  • 创建数据库时实际上通过拷贝一个已有数据库进行工作的。在默认情况下,将拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的"模板"。如果为template1数据库增加对象,这些对象将被拷贝到后续创建的用户数据库中。这种行为允许对数据库中标准对象集合的进行修改。例如,如果把过程语言PL/Perl安装到template1中,那么在创建用户数据库后不需要额外的操作就可以使用该语言。

  • 系统里还有名为template0的第二个标准系统数据库。这个数据库包含和template1初始内容一样的数据,但只包含openGauss版本预定义的标准对象。在数据库集群被初始化之后,不应该对template0做任何修改。在创建数据库时通过指示使用template0取代template1进行拷贝,可以创建一个"纯净的"用户数据库,它不会包含任何template1中的站点本地附加物。

创建openGauss数据库主要通过SQL命令"create database"完成,下面是具体的操作步骤。

(1)查询现有数据库的集合,可以检查系统目录pg_database。

powershell 复制代码
openGauss=# select datname from pg_database;

# 输出的信息如下:
  datname  
-----------
 template1
 school
 finance
 template0
 scott
 postgres
(6 rows)

(2)使用SQL命令"create databas"创建数据库。

powershell 复制代码
openGauss=# create database mydemodb;

这里需要注意以下几点:

  • 第一个数据库总是由initdb命令在初始化数据存储区域时创建的,这个数据库被称为postgres。因此要创建第一个"普通"数据库时,需要连接到openGauss数据库服务器上。

  • 在数据库集群初始化期间也会创建第二个数据库template1,。当在集群中创建一个新数据库时,实际上就是克隆了template1。这就意味着对template1所做的任何修改都会体现在所有后续创建的数据库中。因此应避免在template1中创建对象,除非想把它们传播到每一个新创建的数据库中。

  • 创建一个新的数据库,实际上是在$PDATA/base目录下创建了一个目录,如下图所示。

(3)重新查询现有数据库的集合。

powershell 复制代码
openGauss=# select oid,datname from pg_database;

# 输出的信息如下:
  oid  |  datname  
-------+-----------
     1 | template1
 16384 | school
 16420 | finance
 14809 | template0
 16470 | scott
 16525 | mydemodb
 14814 | postgres
(7 rows)
相关推荐
Alan_758 小时前
GraphQL 深度解析:为什么它能替代传统 REST API
数据库·后端
少时登峰8 小时前
【吃透 MySQL InnoDB连载】第 6 章・索引底层原理
数据库·mysql
AllData公司负责人8 小时前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
Databend9 小时前
小 Bitmap,大优化:Databend 如何加速大规模集合聚合
大数据·数据库·sql
倔强的石头_9 小时前
KES 优化行为避坑指南-那条从没被质疑过的 LEFT JOIN,在迁 KES 时终于露馅了
数据库
Database_Cool_9 小时前
RAG 混合检索首选:阿里云 Lindorm 向量+全文一体化检索
数据库·阿里云·django·云计算
ByWalker_9 小时前
web应用技术—MyBatis入门
java·数据库·mybatis·lombok
指尖的爷9 小时前
Ubuntu 24.04 彻底关闭自动更新(桌面+服务器通用)
服务器·数据库·ubuntu
gcw102410 小时前
Cron专业工具:定时任务与开发办公的一站式在线工具箱
java·前端·数据库·工具·crontab·cron·spring cron
江华森10 小时前
Gephi 可视化 + NetworkX 网络分析——《釜山行》人物关系(三)
数据库·python