暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第 11 天 | 小有所成:数据库是数据库对象的容器,炼器是数据库的根本!

原创 贾大夫 2022-12-10
264

Table of Contents

本次学习,也是openGauss的数据库相关操作,数据库是数据库对象的容器,在数据库中,可以创建模式、表、索引等数据库对象。

上文提要

在第十课中,我们学到了表空间是数据的容器,学会了表空间的创建、查看、重命名、删除等操作。

复习一下:openGauss每日一练第 10 天

学习目标

数据库是数据库对象的容器,在数据库中,可以创建模式、表、索引等数据库对象。openGauss数据库管理包括:创建数据库、删除数据库、重新命名数据库、查看数据库的信息。
创建一个新的数据库。缺省情况下,新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。

  1. 创建表空间enmtbs和数据库musicdb
  2. 查看数据库集簇中有哪些数据库
  3. 查看数据库默认的表空间信息
  4. 查看数据库下有哪些模式
  5. 查询当前连接的数据库omm下有哪些表
  6. 更改数据库默认的表空间
  7. 修改数据库的默认用户
  8. 重新命名数据库
  9. 删除数据库

学习内容

摘要

数据库是数据库对象的容器,在数据库中,可以创建模式、表、索引等数据库对象。openGauss数据库管理包括:创建数据库、删除数据库、重新命名数据库、查看数据库的信息。
创建一个新的数据库。缺省情况下,新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。

课前准备

连接数据库
#第一次进入等待15秒
#数据库启动中...
su - omm
gsql -r

1. 创建表空间enmtbs和数据库musicdb

CREATE TABLESPACE enmtbs RELATIVE LOCATION 'tablespace/enmtbs1';
CREATE DATABASE musicdb WITH TABLESPACE = enmtbs;

image.png

2. 查看数据库集簇中有哪些数据库

SELECT datname FROM pg_database;
或
\l

image.png

3. 查看数据库默认的表空间信息

-- 首先执行下面的语句,查看musicdb数据库默认表空间的对象OID
select datname,dattablespace from pg_database where datname='musicdb';

此处OID为输出结果的dattablespace列
image.png

-- 根据表空间对象的OID,来查看表空间的名字
select oid,spcname from pg_tablespace where oid=16402;

此处查询条件oid换成上一步的结果
image.png

--可以将上面的两条语句合并成一条语句,来查询数据库musicdb默认表空间的名字
select spcname 
from pg_tablespace 
where oid=( select dattablespace
           from pg_database
           where datname='musicdb' );

image.png

可以看到,数据库 musicdb 的默认表空间为 enmtbs

4. 查看数据库下有哪些模式

\dn+

 --或
SELECT catalog_name, schema_name, schema_owner FROM information_schema.schemata;

image.png

以前学到的元命令 \dn,查看模式,此处多了一个参数 +,该参数意味 附加明细(additional detail)

5. 查询当前连接的数据库omm下有哪些表

with my_tables(table_catalog, table_schema, table_name, table_type) as
      (   select table_catalog, table_schema, table_name, table_type
          from information_schema.tables
         where table_schema not in ('pg_catalog', 'information_schema','dbe_perf')
       )

 select * from my_tables;

image.png

6. 更改数据库默认的表空间

CREATE TABLESPACE app_ts  RELATIVE LOCATION 'tablespace/app_ts1';

ALTER DATABASE musicdb  SET TABLESPACE app_ts;
--查看表空间是否更改完成
select spcname 
from pg_tablespace 
where oid=( select dattablespace
           from pg_database
           where datname='musicdb' );

image.png

7. 修改数据库的默认用户

CREATE USER user1  IDENTIFIED BY 'kunpeng@1234';
ALTER USER user1  SYSADMIN;
ALTER DATABASE musicdb OWNER to user1;

\l

此处为了便于记忆,修改了user1的密码
image.png

8. 重新命名数据库

ALTER DATABASE musicdb RENAME TO  musicdb1;
\l

image.png

9. 删除数据库

DROP DATABASE musicdb1;

image.png
》 相比于之前的记录,数据库 musicdb1,已经被删除了。

课程作业

1.创建表空间enmtbs和数据库musicdb

-- 创建表空间 enmtbs
CREATE TABLESPACE enmtbs RELATIVE LOCATION 'tablespace/enmtbs1';

在之前的学习中,已经建好了,详见学习内容中的第一条。
当然,我们也可以删除后重新建。

2.查看数据库集簇中有哪些数据库

SELECT datname FROM pg_database;
-- 或使用元命令
\l

数据库集簇指的是,数据库的集合,包含了所有的数据库。
image.png

3.查看数据库默认的表空间信息

select spcname 
from pg_tablespace 
where oid=( select dattablespace
           from pg_database
           where datname='omm' );

此处我查询了omm的表空间信息。
image.png

4.查看数据库下有哪些模式

\dn+

5.查询当前连接的数据库下有哪些表:

with my_tables(table_catalog, table_schema, table_name, table_type) as
      (   select table_catalog, table_schema, table_name, table_type
          from information_schema.tables
         where table_schema not in ('pg_catalog', 'information_schema','dbe_perf')
       )

 select * from my_tables;

6.更改数据库默认的表空间

详见学习目标第6条

7.重新命名数据库

详见学习目标第8条

8.修改数据库的默认用户

详见学习目标第7条

9.删除数据库

详见学习目标第9条

往期内容

openGauss每日一练第 10 天

openGauss每日一练第 9 天

openGauss每日一练第 8 天

openGauss每日一练第 7 天

openGauss每日一练第 6 天

openGauss每日一练第 5 天

openGauss每日一练第 4 天

openGauss每日一练第 3 天

openGauss每日一练第 2 天

openGauss每日一练第 1 天

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论