openGauss简单使用

989 阅读3分钟

 一、openGauss使用

🔰 1.1 连接openGauss

openGauss数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

###🍀使用用户omm 登录
[root@klgdj ~]# su - omm

###🍀使用gsql连接数据库(数据库名---postgres,端口号---15400)
[omm@klgdj ~]$ gsql -d postgres -p 15400
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:09:38 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=# 

###🍀或者使用下面任一命令连接数据库
[omm@klgdj ~]$ gsql postgres://omm:omm用户密码@127.0.0.1:端口号/postgres -r
[omm@klgdj ~]$ gsql -d "host=127.0.0.1 port=端口号 dbname=postgres user=omm password=omm用户密码"

###🍀查看数据库版本
db_test01=# select version();

###🍀查看客户端版本
db_test01=# show server_version_num;
 server_version_num 
--------------------
 90204
(1 row)

db_test01=# 

1234567891011121314151617181920212223242526

🔰 1.2 创建数据库用户和授权

openGauss默认只有安装时创建的管理员omm用户可以访问初始数据库,可以通过创建新用户登录。

###🍀语法🍀###
CREATE USER 用户名 WITH PASSWORD "密码";

openGauss=# CREATE USER zyl WITH PASSWORD "zyl#2023";
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
openGauss=# 

###🍀授权zyl用户为系统管理员---赋予所有权限
###🍀语法🍀###
GRANT ALL PRIVILEGES TO 用户名;

openGauss=# GRANT ALL PRIVILEGES TO zyl;
ALTER ROLE
openGauss=# 

###🍀输出CREATE ROLE---表示授权成功

1234567891011121314151617

🔰 1.3 创建角色和授权

###🍀语法🍀###角色权限---如:sysadmin、CREATEDB、CREATEROLE等
CREATE ROLE 角色名 IDENTIFIED BY '密码' 角色权限;

###🍀创建角色role_admin为系统管理员
CREATE ROLE role_admin IDENTIFIED BY 'admin#123' SYSADMIN;

###🍀修改role_admin角色名🍀
ALTER ROLE role_admin RENAME TO role_admin_01;


###🍀修改角色密码🍀
ALTER ROLE role_admin IDENTIFIED BY 'admin#123456' replace 'test_pwd123';

###🍀查看所有角色🍀
db_test01=# \dg
                                                              List of roles
 Role name |                                                    Attributes                                                    | Member of 
-----------+------------------------------------------------------------------------------------------------------------------+-----------
 omm       | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
 test      |                                                                                                                  | {}
 zyl       | Sysadmin                                                                                                         | {}
 zyl01     |                                                                                                                  | {}
 zyl02     |                                                                                                                  | {}

db_test01=# 

###🍀删除角色🍀
drop role 需要删除的角色名;

12345678910111213141516171819202122232425262728

🔰 1.4 创建数据库

###🍀语法🍀###
CREATE DATABASE 数据库名 OWNER 用户名;

openGauss=# CREATE DATABASE db_test01  OWNER zyl;
CREATE DATABASE
openGauss=# 

###🍀输出CREATE DATABASE---表示创建数据库成功

###🍀\q ---退出当前连接
openGauss=# \q
[omm@klgdj ~]$

###🍀测试---使用创建的zyl用户(密码zyl#2023)连接db_test01🍀###

[omm@klgdj ~]$ gsql -d db_test01 -p 15400 -U zyl
Password for user zyl: 
gsql ((openGauss 5.0.0 build a07d57c3) compiled at 2023-03-29 03:09:38 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

db_test01=> 

###🍀 omm用户是管理员用户,因此系统显示“openGauss=#”。这里zyl用户是普通用户身份登录和连接数据库,系统显示“db_test01=>”。

123456789101112131415161718192021222324

🎯 拓展:创建数据库

数据库默认创建在pg_default表空间下。若要指定表空间,可以使用如下语句:

openGauss=# CREATE DATABASE db_test01 WITH TABLESPACE = hr_local;
CREATE DATABASE

###🍀其中zyl_local为指定创建的表空间名称

1234

🔰 1.5 创建SCHEMA

###🍀语法🍀###
CREATE SCHEMA 模式名 AUTHORIZATION 用户名;

###🍀创建一个属于zyl用户,名为zyl_schema的schema


12345

🎯 拓展:schema
schema又称作模式。

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

管理schema包括创建schema使用schema删除schema设置schema的搜索路径以及schema的权限控制

❗ 注意事项:

🔔 一个数据库可以包含一个或多个已命名的schema,schema又包含表及其他数据库对象,包括数据类型、函数、操作符等。

🔔 schema 和数据库不同,schema不是严格分离的。用户根据其对schema的权限,可以访问所连接数据库的schema中的对象

🔔 不能创建以PG_为前缀的schema名,该类schema为数据库系统预留的。

🔔 在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名Schema。对于其他数据库,若需要同名Schema,则需要用户手动创建。

🔔 通过未修饰的表名(名称中只含有表名,没有“schema名”)引用表时,系统会通过search_path(搜索路径)来判断该表是哪个schema下的表。

🔔 每个数据库都包含一个pg_catalog schema,它包含系统表和所有内置数据类型、函数、操作符。

🔰 1.6 创建表

###🍀语法🍀###
CREATE TABLE 表名 (字段名1 字段类型,字段名2 字段类型,字段名3 字段类型,.....);

###🍀创建一个名称为table01,三列的表。字段名为id,name age ,字段类型分别为integer,varchar,integer。
db_test01=> CREATE TABLE table01 (id int,name varchar,age int);                        
CREATE TABLE
db_test01=> 

###🍀向表中插入数据:
###🍀语法🍀###
INSERT INTO 表名 values ('字段值1','字段值2','字段值3',...);

db_test01=> INSERT INTO table01 values (1001,'zyl',18);
INSERT 0 1
db_test01=> 

###🍀查看表中数据
###🍀语法🍀###
 SELECT 字段名1, 字段名2, ... from 表名 where 查询条件;

db_test01=> SELECT * from table01;
  id  | name | age 
------+------+-----
 1001 | zyl  |  18
(1 row)

db_test01=>