Table of Contents
学习目标
学习openGauss数据库客户端工具gsql的使用,归结为如下几点:
- 学习连接数据库
- 学习如何查看数据库版本、pg基础版本和版权信息
- 学习常见元命令
- 学习事务的简单使用
- 学习使用帮助
学习内容
摘要
gsql是openGauss提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。
1. 使用gsql命令连接数据库
--使用omm用户连接到本机omm数据库的5432端口,命令中的-r选项提供了对gsql命令的历史版本支持。
su - omm
gsql -r 或 gsql -d omm -p 5432 -r
注:
gsql数据库在omm用户下,须切换omm用户后才可操作,或在root用户环境变量中添加gsql。
结果:
root@modb:~# su - omm
omm@modb:~$ gsql -d omm -p 5432 -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
2. 在gsql中,查看数据库的版本、pg基础版本和版权信息
# 查看数据库版本
select version();
# 查看PG基础版本
show server_version;
# 查看版本信息
\copyright
结果:
omm=# select version();
version
-------------------------------------------------------------------------------------------------------------------------------------------------------
(openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr on aarch64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
omm=# show server_version;
server_version
----------------
9.2.4
(1 row)
omm=# \copyright
GaussDB Kernel Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.
3. 常见元命令的使用
元命令:Meta-Command,元命令常常被称作斜线或者反斜线命令。
元命令 | 示例 | 记忆点 | 作用 |
---|---|---|---|
\l | \l | \l(ist) | 显示openGauss数据库集簇中,目前有哪些数据库。 |
\conninfo | \conninfo | \conn(ection )info | 在gsql中,显示会话的连接信息。 |
\c[onnect] [DBNAME] | \c postgres | \c(onnect) [DBNAME] | 在gsql中,切换连接的数据库postgres。 |
\du 或 \dg | \du 或 \dg | \d(atabase )u(ser) | 显示openGauss数据库集簇中,目前有哪些用户和角色。list roles |
\db | \db | \d(ata )b(ase) | 显示openGauss数据库集簇中,目前有哪些表空间。list tablespace |
CREATE TABLE | CREATE TABLE customer_t ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) ); | 创建表。define a new table | |
INSERT INTO | INSERT INTO customer_t (c_customer_sk, c_customer_id, c_first_name,c_last_name) VALUES (3769, 5, ‘Grace’,‘White’); | 插入数据 |
结果:
omm=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+---------+-------+-------------------
omm | omm | UTF8 | C | C |
postgres | omm | UTF8 | C | C |
template0 | omm | UTF8 | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | UTF8 | C | C | =c/omm +
| | | | | omm=CTc/omm
(4 rows)
omm-# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
gaussdb | Sysadmin | {}
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
omm=# \c postgres
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "omm".
openGauss=# CREATE TABLE customer_t ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) );
CREATE TABLE
4. gsql事务的简单使用
show AUTOCOMMIT;
--测试gsql中事务默认为自动提交功能
create table customer_new as select * from customer_t;
\q
--重新登录后看到之前创建的表customer_new:
gsql -d postgres -p 5432 -r
\dt
注:
重新登录后,需要连接数据库 \c postgres
结果:
openGauss=# show AUTOCOMMIT;
+-[ RECORD 1 ]----+
| autocommit | on |
+------------+----+
openGauss=# create table customer_new as select * from customer_t;
INSERT 0 1
openGauss=# \q
omm@modb:~$ gsql -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
omm=# \dt
No relations found.
omm=# \c postgres
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "omm".
openGauss=# \dt
public | customer_t | table | omm | {orientation=row,compression=no}
(2 rows)
openGauss=# List of relations
Schema | Name | Type | Owner | Storage
--------+--------------+-------+-------+----------------------------------
public | customer_new | table | omm | {orientation=row,compression=no}
–测试gsql手动提交
#Opengauss默认执行完一条语句后,立即提交。可以关闭自动提交功能:
#注意:此处设置ATUOCOMMIT必须用大写!
\set AUTOCOMMIT off
--插入一些数据
INSERT INTO customer_t (c_customer_sk, c_customer_id, c_first_name,c_last_name) VALUES
(6885, 1, 'Joes', 'Hunter'),
(4321, 2, 'Lily','Carter'),
(9527, 3, 'James', 'Cook'),
(9500, 4, 'Lucy', 'Baker');
--查看表中数据
select * from customer_t;
--执行回滚
ROLLBACK;
--检查是否回滚成功
SELECT * FROM customer_t;
注:
此处虚拟环境中有bug,使用 \set AUTOCOMMIT off 后,查看状态,并未显示为 off,使用 \echo :AUTOCOMMIT 可查看正确状态值。
上文中使用了ROLLBACK;进行回滚操作,在手动提交模式下,需要输入COMMIT;才能确保变更成功。
openGauss=# \set AUTOCOMMIT off
openGauss=# show AUTOCOMMIT;
autocommit
------------
on
(1 row)
openGauss=# \echo :AUTOCOMMIT
off
5. gsql相关帮助
--连接数据库时,可以使用如下命令获取帮助信息。
gsql --help
--\h获取和SQL语法有关的帮助信息
\h
--\? 获取和元命令有关的帮助信息
\?
相关帮助可以用来查看命令的具体使用方法和说明,对于初学者非常有帮助。当然,教学和帮助中没有的知识内容,可以请教群内的大佬们。
往期内容
最后修改时间:2022-12-13 17:04:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。