课程作业
1.gsql命令连到数据库omm
root@modb:~# su - omm
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.
2.查看数据库的版本、版权信息
--查看openGauss数据库的版本
omm=# select 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)
--查看对应的postgresql基础版本
omm=# show server_version;
9.2.4
--查看openGauss版权信息
omm=# \copyright
GaussDB Kernel Database Management System
Copyright (c) Huawei Technologies Co., Ltd. 2018. All rights reserved.
3.常见元命令使用
\l 显示数据库中数据库信息
\du 同\dg 显示数据库中所有用户和角色
\db 显示数据库中所有表空间信息
\dn 显示数据库中所有schema信息
\d 显示当前数据库下相关数据库对象信息(包含表、视图、物化视图、序列、外部表、stream\ contview)
\d tablename 查看某个表的详细信息
\dt 显示当前数据库中所有的表
\dt+ 以扩展方式显示当前数据库所有表信息,比起\dt 多了最后一列描述信息
\di 查看当前数据库中索引信息
\di indexname 查看当前数据库某个索引的信息
\dv 查看当前数据库视图信息
\ds 查看当前数据库序列信息
\df 查看当前数据库函数信息
\dx 查看已安装的扩展程序信息
\x 语法 \x[on|off|auto] 设置语句的输出模式,模式为行的方式输出,执行 \x on 切换为以列的方式来显示
\timing 语法 \timing [on|off] 控制显示SQL的执行时间,默认为off, on 为显示SQL语句的执行时间
\h 用于获取SQL语句的帮助,例如 \h merge
? 获取gsql的元命令的帮助
! os_command 用于执行操作系统命令,同oracle的 !,mysql的 system
\o filename 用于重定向输出到文件
\conninfo 显示gsql中显示会话的连接信息
\c[onnect] [DBNAME] 切换数据库
\echo [string] 打印字符串
\q 退出gsql
--示例
omm=# CREATE TABLE customer_t
omm-# omm(# ( c_customer_sk integer,
c_customer_id char(5),
omm(# c_first_name char(6),
omm(# omm(# ) ; c_last_name char(8)
CREATE TABLE
omm=# INSERT INTO customer_t (c_customer_sk, c_customer_id, c_first_name,c_last_name)
VALUES (3769, 5, 'Grace','White');
INSERT 0 1
omm=# \dt
List of relations
Schema | Name | Type | Owner | Storage
--------+------------+-------+-------+----------------------------------
public | customer_t | table | omm | {orientation=row,compression=no}
(1 row)
omm=# \d customer_t
Table "public.customer_t"
Column | Type | Modifiers
---------------+--------------+-----------
c_customer_sk | integer |
c_customer_id | character(5) |
c_first_name | character(6) |
c_last_name | character(8) |
omm=# create index idx_customer_id on customer_t(c_customer_id);
CREATE INDEX
omm=# \di
List of relations
Schema | Name | Type | Owner | Table | Storage
--------+-----------------+-------+-------+------------+---------
public | idx_customer_id | index | omm | customer_t |
(1 row)
omm=# \pset border 2
Border style is 2.
omm=# SELECT * FROM customer_t;
+---------------+---------------+--------------+-------------+
| c_customer_sk | c_customer_id | c_first_name | c_last_name |
+---------------+---------------+--------------+-------------+
| 3769 | 5 | Grace | White |
+---------------+---------------+--------------+-------------+
(1 row)
omm=# \x
Expanded display is on.
omm=# SELECT * FROM customer_t;
+-[ RECORD 1 ]--+----------+
| c_customer_sk | 3769 |
| c_customer_id | 5 |
| c_first_name | Grace |
| c_last_name | White |
+---------------+----------+
4.使用两种方法,连到postgres数据库中
--第一种:
openGauss=# \c postgres
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "postgres" as user "omm".
openGauss=#
--第二种:
omm@modb:~$ gsql -d postgres -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.
5.测试gsql中的默认事务自动提交功能
--查看是否打开自动提交功能
omm=# show AUTOCOMMIT;
+-[ RECORD 1 ]----+
| autocommit | on |
+------------+----+
--测试sql中的默认事务自动提交功能
omm=# create table customer_new as select * from customer_t;
INSERT 0 1
omm=# \q
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.
omm=# \dt
List of relations
Schema | Name | Type | Owner | Storage
--------+--------------+-------+-------+----------------------------------
public | customer_new | table | omm | {orientation=row,compression=no}
public | customer_t | table | omm | {orientation=row,compression=no}
(2 rows)
6.测试gsql中的事务手动提交功能
omm=# \set AUTOCOMMIT off
omm=# \echo :AUTOCOMMIT
off
omm=# INSERT INTO customer_t (c_customer_sk, c_customer_id, c_first_name,c_last_name) VALUES
omm-# omm-# (6885, 1, 'Joes', 'Hunter'),
(4321, 2, 'Lily','Carter'),
omm-# (9527, 3, 'James', 'Cook'),
omm-# (9500, 4, 'Lucy', 'Baker');
INSERT 0 4
omm=# select * from customer_t;
c_customer_sk | c_customer_id | c_first_name | c_last_name
---------------+---------------+--------------+-------------
6885 | 1 | Joes | Hunter
4321 | 2 | Lily | Carter
9527 | 3 | James | Cook
9500 | 4 | Lucy | Baker
(4 rows)
omm=# ROLLBACK;
ROLLBACK
omm=# SELECT * FROM customer_t;
c_customer_sk | c_customer_id | c_first_name | c_last_name
---------------+---------------+--------------+-------------
(0 rows)
7.了解gsql相关帮助
--连接数据库时,可以使用如下命令获取帮助信息。
gsql --help
--\h获取和SQL语法有关的帮助信息
\h
--\? 获取和元命令有关的帮助信息
\?
8.gsql工具总结
openGauss中的元命令是指以 \(反斜线)开头的命令,openGauss提供的丰富的元命令,能够便捷地管理数据库,比如查看数据库对象的定义,查看数据库对象占用空间的大小,列出数据库各种对象名称,数据导入导出等。
最后修改时间:2022-11-27 12:14:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




