GBase 8c
运维管理
文章

GBase 8c gsql使用指导

GBase社区管理员
发表于2024-02-04 17:08:3863次浏览0个评论

前提条件

连接数据库时使用的用户需要具备访问数据库的权限。

背景信息

使用gsql命令可以连接数据库。在连接远程数据库时,需要在服务器上设置允许远程连接。

操作步骤

步骤1使用gsql连接到GBase 8c服务器。格式为:

gsql -d dbname -p port <-U user_name> <-h hostip>
  • -d参数指定要连接到的数据库名称。首次连接可以指定生成的默认数据库postgres。

  • -p参数指定通过端口号信息。

  • -U参数指定以数据库用户名。缺省默认为gbase。

  • -h参数指定数据库节点所在的服务器IP。缺省默认为当前服务器IP。

若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。

示例如下:

#示例1:使用gbase用户连接到本机postgres数据库的15400端口。
[gbase@gbasehost ~]$ gsql -d postgres -p 15400
#示例2:使用jack用户连接到远程主机postgres数据库的15400端口。
[gbase@gbasehost ~]$ gsql -h 10.180.123.163 -d postgres -U jack -p 15400
#示例3:参数postgres和gbase不属于任何选项时,分别被解释成了数据库名和用户名。
[gbase@gbasehost ~]$ gsql postgres gbase -p 15400
#等效于
[gbase@gbasehost ~]$ gsql -d postgres -U gbase -p 15400
详细的gsql参数请参见命令参考。

步骤2 执行SQL语句。

例如,创建数据库human_staff:

gbase=# CREATE DATABASE human_staff;
CREATE DATABASE

通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。

步骤3执行gsql元命令。

首先创建一个表空间,例如EXAMPLE:

gbase=# CREATE TABLESPACE EXAMPLE RELATIVE LOCATION 'tablespace1/tablespace_1';
CREATE TABLESPACE

然后创建模式,例如HR:

gbase=# CREATE schema HR;
CREATE SCHEMA

以把一个查询分成多行输入为例。注意提示符的变化:

gbase=# CREATE TABLE HR.areaS(
gbase(# area_ID NUMBER,area_NAME VARCHAR2(25)
gbase(# )
gbase-# tablespace EXAMPLE;
CREATE TABLE

查看表的定义:

gbase=# \d HR.areaS
Table "hr.areas"
Column|Type| Modifiers
-----------+-----------------------+-----------
area_id| numeric|
area_name | character varying(25) |
Tablespace: "example"

向HR.areaS表插入数据:

gbase=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1,'Europe'),(2, 'Americas'),(3, 'Asia'),(4, 'Middle East and Africa');
INSERT 0 4

切换提示符:

gbase=# \set PROMPT1 '%n@%m %~%R%#'
gbase@local gbase=#

查看表:

gbase@local gbase=# SELECT * FROM HR.areaS;
area_id |area_name
---------+------------------------
1 | Europe
2 | Americas
3 | Asia
4 | Middle East and Africa
(4 rows)

可以用\pset命令以不同的方法显示表:

gbase@local gbase=# \pset border 2
Border style is 2
gbase@local gbase=# SELECT * FROM HR.areaS;
+---------+------------------------+
| area_id |area_name|
+---------+------------------------+
|1 | Europe|
|2 | Americas|
|3 | Asia|
|4 | Middle East and Africa |
+---------+------------------------+
(4 rows)

gbase@local gbase=# \pset border 0
Border style is 0.
gbase@local gbase=# SELECT * FROM HR.areaS;
area_idarea_name
------- ----------------------
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
(4 rows)

使用元命令:

gbase@local gbase=# \a \t \x
Output format is unaligned.
Showing only tuples.
Expanded display is on.
gbase@local gbase=# SELECT * FROM HR.areaS;
area_id|1
area_name|Europe

area_id|2
area_name|Americas

area_id|3
area_name|Asia

area_id|4
area_name|Middle East and Africa

gbase@local gbase=# 
评论已关闭