GaussDB元命令使用指导

2023-12-27 10:56:56

所谓元命令就是在gsql里输入的任何以不带引号的反斜杠开头的命令。本课程通过实际使用gsql实践,介绍GaussDB数据库gsql所提供的元命令。?

本课程仅展示基础的元命令使用。

一、操作步骤

步骤1? ?使用gsql连接到GaussDB实例。

gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。

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

示例,使用root用户连接到远程主机postgres数据库的8000端口。


gsql -h 10.180.123.163 -d postgres -U root -p 8000复制

步骤2? ?使用元命令查看所有的数据库。

l

回显如下:



   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges 
-----------+----------+----------+---------+-------+----------------------- 
 postgres  | rdsAdmin | UTF8     | C       | C     | 
 template0 | rdsAdmin | UTF8     | C       | C     | =c/rdsAdmin          + 
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin 
 template1 | rdsAdmin | UTF8     | C       | C     | =c/rdsAdmin          + 
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin 
(3 rows)
复制

可以看到,新创建的实例默认存在postgres库和两个模板数据库。

步骤3? ?使用元命令,查看或设置客户端字符编码格式。

encoding


UTF8复制

使用encoding?ENCODING,在元命令后指定对应的字符集类型即可设置客户端字符编码格式。

步骤4? ?使用元命令查看实例的所有角色。

du

回显如下:


Role name |                                                    Attributes                                                    | 
                Member of 
-----------+------------------------------------------------------------------------------------------------------------------+-------------------------------- 
------------------------------------------------------------------------- 
 rdsAdmin  | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} 
 rdsBackup | Operatoradmin, Persistence                                                                                       | {} 
 rdsMetric | Monitoradmin, Persistence                                                                                        | {} 
 rdsRepl   | Replication, Persistence                                                                                         | {} 
 root      | Create role, Create DB, Monitoradmin                                                                             | {gs_role_copy_files,gs_role_sig 
nal_backend,gs_role_tablespace,gs_role_replication,gs_role_account_lock}
复制

可以看到当前数据库的所有角色,以及角色所拥有的所有权限。

也可以使用如下方法模糊查找指定角色。

du ro?t


Role name |              Attributes              |                                                Membe o 
-----------+--------------------------------------+--------------------------------------------------------------------------------------------------------- 
 root      | Create role, Create DB, Monitoradmin | {gs_role_copy_files,gs_role_signal_backend,gs_role_tablespace,gs_role_replication,gs_role_account_lock} 复制

步骤5? ?使用元命令,查看当前连接的数据库的信息。

conninfo


You are connected to database "postgres" as user "root" on host "10.xxx.xxx.xxx" at port "8000".复制

步骤6? ?创建一个新的库,并使用元命令快速切换至新的数据库。

执行如下语句,创建新的数据库。

CREATE DATABASE?db_tpcds;

执行如下元命令,快速切换至新库。

c db_tpcds

输入密码,成功切换至新库。


Password for user root: 
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128) 
You are now connected to database "db_tpcds" as user "root". 
db_tpcds=>复制

步骤7? ?执行元命令,退出数据库。

q

二、更多元命令参考

接下来介绍使用GaussDB数据库命令行交互工具登录数据库后,gsql所提供的元命令。

1、注意事项

  • 一个gsql元命令的格式是反斜杠后面紧跟一个动词,然后是任意参数。参数命令动词和其他参数以任意个空白字符间隔。
  • 要在参数里面包含空白,必须用单引号把它引起来。要在这样的参数里包含单引号,可以在前面加一个反斜杠。任何包含在单引号里的内容都会被进一步进行类似C语言的替换:\n(新行)、\t(制表符)、\b(退格)、\r(回车)、\f(换页)、\digits(八进制表示的字符)、\xdigits(十六进制表示的字符)。
  • 用""包围的内容被当做一个命令行传入shell。该命令的输出(删除了结尾的新行)被当做参数值。
  • 如果不带引号的参数以冒号(:)开头,它会被当做一个gsql变量,并且该变量的值最终会成为真正的参数值。
  • 有些命令以一个SQL标识的名称(比如一个表)为参数。这些参数遵循SQL语法关于双引号的规则:不带双引号的标识强制转换成小写,而双引号保护字母不进行大小写转换,并且允许在标识符中使用空白。在双引号中,成对的双引号在结果名称中分析成一个双引号。比如,FOO"BAR"BAZ解析成fooBARbaz;而"Aweird""name"解析成A weird"name。
  • 对参数的分析在遇到另一个不带引号的反斜杠时停止。这里会认为是一个新的元命令的开始。特殊的双反斜杠序列(\\)标识参数的结尾并将继续分析后面的SQL语句(如果存在)。这样SQL和gsql命令可以自由的在一行里面混合。但是在任何情况下,一条元命令的参数不能延续超过行尾。

?

?2、元命令

元命令的详细说明请参见表1、表2、表3、表4。

?表4、表5、表6、表7、表8详情请见此处

三、总结?

GaussDB是华为公司倾力打造的自研企业级分布式关系型数据库,该产品支持优异的分布式事务,同城跨AZ部署,数据0丢失,支持1000+扩展能力,PB级海量存储等企业级数据库特性。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。

?

欢迎小伙伴们交流,一起学习数据库相关知识。?

文章来源:https://blog.csdn.net/GaussDB/article/details/135231624
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。