暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SUNDB客户端gsql使用说明

原创 科蓝SUNDB编辑部 2023-01-05
1099

1.1 登录命令行客户端
使用环境变量中已定义好的别名gs或gsql sys gliese --as sysdba --prompt=gSQL登录命令行客户端。

1.2 命令行客户端使用
gSQL> help
1)\help
#命令行客户端帮助。

2)\q[uit]
说明:退出命令行客户端,关闭时提交所有未提交的事务并关闭。
语句:\quit 或 \q

3)\i[mport] {‘FILE’}
说明:导入SQL,file_name可以使用绝对路径或相对路径,。
语句:\import ‘file_name’ 或 \i ‘file_name’
示例1:\import ‘/home/csii/sample.sql’;
示例2:\i ‘sample.sql’;

4)\ed[it] [{‘FILE’ | [HISTORY] num}]
说明:使用Text Editor编辑SQL语句。此时,可在环境变量EDITOR指定要使用的Text Editor,没有环境变量EDITOR时,默认使用vi。
使用编辑功能时,gsql执行编辑器并将控制权交给编辑器。用户可以在编辑器自由编辑SQL语句内容,
关闭编辑器时,gsql收回控制权并将其内容添加到最后一个履历。如此通过编辑器编辑的SQL语句可通过最后一个履历执行命令\执行。
注意:只能使用SQL编辑功能编辑单个SQL语句。如果编辑多个SQL语句,则会发生错误。
使用Text Editor编辑最后执行的SQL语句。如果没有执行过任何语句,则在没有任何内容的情况下执行text editor。
语句1:
\edit ‘file_name’
\ed ‘file_name’
使用Text编辑器编辑指定的file_name。file_name用单引号(’)引住。
file_name可以如下使用绝对路径或相对路径,使用相对路径时,根据执行gsql的路径查找file_name。
示例:
使用绝对路径:gSQL> \edit ‘/home/csii/sample.sql’
使用相对路径:gSQL> \edit ‘sample.sql’
语句2:
\edit [history] {n}
\ed [history] {n}
\set history命令可查询到的SQL执行history中,编辑number相关的SQL语句。number的值应为\set history 执行结果的ID值。
示例:
编辑存储的履历中ID为9的内容。
gSQL> \edit 9
gSQL> \

5)\
说明:执行最近成功的SQL语句而不是失败的SQL语句。

6){n}
说明:执行可通过\history命令查询的SQL执行记录中属于n的语句。
语句:\n

7)\hi[story]
说明:显示执行gsql程序后的SQL语句执行目录,仅管理执行成功的SQL语句,不包含以gsql () 开头的对话型命令执行的命令或执行失败的SQL语句。
语句:\history 或 \hi

8)\desc {[schema.]table_name}
说明:查询表结构信息,表可以只描述表名,也可以与schema一起描述。未指定schema名时,表的schema名取决于用户的Schema Path。
语句: \desc t1 或 \desc public.t1
如下,通过Identifiers(标识符)创建表名称时,使用双引号(")。创建表:CREATE TABLE “TaBle#@^" ( id INTEGER );
使用\desc "TaBle#@^
” 或\desc “PUBLIC”."TaBle#@^*"查询。
执行结果包含以下信息:
1> column信息
column名
数据类型
可否为NULL
2> 索引信息
索引名
索引存储空间
索引类型
是否UNIQUE
key column名
3> 约束条件信息
约束条件名
约束条件类型
相关索引
约束条件column

9)\idesc {[schema.]index_name}
说明:显示索引说明
语句:
\idesc index_name
\idesc schema_name.index_name

10)\spo[ol] [‘filename’ | OFF]
说明:将查询结果存储在文件中,\spool ‘filename’ [CREATE | REPLACE | APPEND]
语句:
\spool ‘filename’ [CREATE | REPLACE | APPEND]
\spo ‘filename’ [CREATE | REPLACE | APPEND]
启动Spool功能。执行此语句后,将在gsql执行的所有输出结果写入指定的filename。
通过以下选项可以描述打开文件的方式。
1)CREATE - 创建新的文件。如果已有文件,则报错。
2)REPLACE - 删除原文件的内容,重新开始写入。如果没有原文件,则与CREATE相同。
3)APPEND - 在原文件后面继续追加写入。如果没有原文件,则与CREATE相同。
如果没有指定选项,默认为REPLACE模式。
注意:Spool功能执行过程中开始新的Spool,则关闭之前的Spool,启动新的Spool。

11)\ho[st] [command]
说明:在未关闭gsql程序的状态下执行操作系统命令。
输入无command的HOST时,显示操作系统提示符,并可继续输入操作系统命令。
在Windows可用"$",在UNIX可用"!"代替HOST。
语句:
\host [command]
\ho [command]

12)\set vertical {ON|OFF}
说明:行转列显示,设置是否将column值以line为单位输出,vertical的默认值为OFF。
语句:
\set vertical on #以line为单位输出column。
\set vertical off #以line为单位输出row。

13)\set time {ON|OFF}
说明:设置是否输出当前时间,time的默认值为OFF。
语句:
\set time on #输出当前时间。
\set time off #不输出当前时间。

14)\set timing {ON|OFF}
说明:设置是否输出SQL语句的执行时间,timing的默认值为OFF。
语句:
\set timing on #输出执行时间。
\set timing off #不输出执行时间。

15)\set color {ON|OFF}
说明:为了在terminal上区分执行结果的每个行,设置是否将输出结果设置为不同颜色,color的默认值为OFF。
\set color on #每行的输出颜色不同。
\set color off #每行的输出颜色相同。

16)\set error {ON|OFF}
说明:设置是否输出错误信息,error的默认值为ON。
语句:
\set error on #输出错误信息。
\set error off #不输出错误信息。

17)\set autocommit {ON|OFF}
说明:设置执行SQL语句后是否自动提交,autocommit的默认值为OFF。
语句:
\set autocommit on #执行SQL语句后自动提交。
\set autocommit off #执行SQL语句后不自动提交。

18)\set autotrace {ON|TRACEONLY|OFF}
说明:设置是是否输出执行计划,默认值为off。
语句:
\set autotrace on #执行SQL语句后与执行结果一起输出执行计划。
\set autotrace traceonly #不执行SQL语句,仅输出执行计划。
\set autotrace off #不输出执行计划。

19)\set serveroutput {ON|OFF}
说明:管理由gsql或gsqlnet中DBMS_OUTPUT package提供的函数写入的消息的自动输出,serveroutput的默认值为OFF。
语句:
\set serveroutput on #执行SQL后,DBMS_OUTPUT.PUT_LINE自动输出服务器上积累的消息。
\set serveroutput off #不使用DBMS_OUTPUT Package。

20)\set heading {ON|OFF}
说明:决定是否在查询结果输出header信息。

21)\set linesize {n}
说明:设置输出查询结果时一行的最大大小,linesize的默认值为80。linesize值范围为1 ~ 10000范围内的正整数。

22)\set pagesize {n}
说明:设置每页显示的row数,pagesize的默认值为20。pagesize值范围为1 ~ 10000范围内的正整数。

23)\set colsize {n}
说明:设置输出LONG VARCHAR,LONG VARBINARY数据类型时的最大大小,colsize的默认值为8192, 0 < n <= 104857600。

24)\set numsize {n}
说明:设置输出数字值的最大digit数量,numsize的默认值为20。numsize值为1 ~ 50范围内的正整数。

25)\set ddlsize {n}
说明:设置输出DDL时输出语句的缓冲区大小,ddlsize的默认值为10000,0 < n <= 100000。

26)\set history {n}
说明:设置管理历史信息的SQL语句的数量,history的默认值为128,n <= 100000 ( if n < 0, clear history buffer )。

27)\var {host_var_name} {INTEGER|BIGINT|VARCHAR(n)}
说明:声明主机变量。声明与variable_name相同的主机变量时,删除原有的主机变量,并重新声明新的主机变量。variable_name的最大长度为128 byte。主机变量的数据类型与SUNDB的数据类型一致。
语句:
\var variable_name data_type

28)\exec [{:host_var_name} := {constant}]
执行通过\prepare sql 命令预编译好的SQL语句。\exec 命令类似于ODBC的SQLExecute函数和JDBC的PreparedStatement::execute 函数。通过\exec 命令可反复执行预编译好的SQL语句。

29)\exec sql {sql string}
说明:直接执行SQL语句

30)\prepare sql {sql string}
说明:准备sql

31)\dynamic sql {host_var_name}
说明:预编译<sql_statement>的SQL语句。通过\exec 命令可反复执行预编译的语句。

32)\explain plan [{ON|ONLY}] {sql string}
说明:输出<sql_statement>中的SELECT语句等的执行计划。
语句:
\explain plan <sql_statement> #不执行SQL语句,仅输出执行计划。
\explain plan on <sql_statement> #执行SQL语句并与执行结果一起输出执行计划。
\explain plan only <sql_statement> #未指定on或only时,默认为on。

33)\print [{host_var_name}]
说明:查询用\var 命令声明的主机变量值。
语句:
\print
\print variable

34)\ddl_cluster
说明:输出集群系统的当前状态的集群DDL语句。

35)\ddl_db
语句:
\ddl_db #输出数据库生成的所有对象的DDL语句。
\ddl_db GRANT #输出数据库对象权限信息的GRANT … ON DATABASE语句。
\ddl_db COMMENT #输出数据库对象注释信息的COMMENT ON DATABASE语句。

36)\ddl_tablespace {name}
语句(name为表空间名):
\ddl_tablespace name #执行以下所有选项。
\ddl_tablespace name CREATE #输出表空间的CREATE TABLESPACE语句。
\ddl_tablespace name ALTER #输出表空间中添加的datafile或memory的ALTER TABLESPACE语句
\ddl_tablespace name TABLE #输出表空间中存储的表的CREATE TABLE语句。
\ddl_tablespace name CONSTRAINT #输出表空间中存储的约束条件的ALTER TABLE语句。
\ddl_tablespace name INDEX #输出表空间中存储的索引的CREATE INDEX语句。
\ddl_tablespace name GRANT #输出表空间权限信息的GRANT … ON TABLESPACE语句。
\ddl_tablespace name COMMENT #输出表空间注释的COMMENT ON TABLESPACE语句。

37)\ddl_profile {name}
语句:
\ddl_profile name #执行以下所有选项。
\ddl_profile name CREATE #输出Profile对象的CREATE PROFILE语句。
\ddl_profile name COMMENT #输出Profile的注释的COMMENT ON PROFILE语句。

38)\ddl_audit_policy {name}
Audit Policy(审记策略)语句:
\ddl_audit_policy name #执行以下所有选项。
\ddl_audit_policy name CREATE #输出Audit Policy对象的CREATE AUDIT POLICY语句。
\ddl_audit_policy name AUDIT #输出Audit Policy对象的AUDIT POLICY语句。
\ddl_audit_policy name COMMENT #输出Audit Policy对象的COMMENT ON AUDIT POLICY语句。

39)\ddl_auth {name}
语句:
\ddl_auth name #执行以下所有选项。
\ddl_auth name CREATE #输出用户对象的CREATE USER语句。
\ddl_auth name SCHEMA #输出用户所有的schema的CREATE SCHEMA语句。
\ddl_auth name SCHEMA PATH #输出账号的schema path的ALTER USER语句。
\ddl_auth name TABLE #输出用户所有的表的CREATE TABLE语句。
\ddl_auth name CONSTRAINT #输出用户所有的约束条件的ALTER TABLE语句。
\ddl_auth name INDEX #输出用户所有的索引的CREATE INDEX语句。
\ddl_auth name VIEW #输出用户所有的视图的CREATE VIEW语句。
\ddl_auth name SEQUENCE #输出用户所有的序列的CREATE SEQUENCE语句。
\ddl_auth name SYNONYM #输出用户所有的序列的CREATE SYNONYM语句。
\ddl_auth name PROCEDURE #输出用户所有的序列的CREATE PROCEDURE/FUNCTION语句。
\ddl_auth name COMMENT #输出账号的注释的COMMENT ON AUTHORIZATION语句。

40)\ddl_schema {name}
输出SCHEMA对象的当前状态的DDL语句:
\ddl_schema name #执行以下所有选项。
\ddl_schema name CREATE #输出SCHEMA对象的CREATE SCHEMA语句。
\ddl_schema name TABLE #输出属于此SCHEMA的表的CREATE TABLE语句。
\ddl_schema name CONSTRAINT #输出属于此SCHEMA的约束条件的ALTER TABLE语句。
\ddl_schema name INDEX #输出属于此SCHEMA的索引的CREATE INDEX语句。
\ddl_schema name VIEW #输出属于此SCHEMA的视图的CREATE VIEW语句。
\ddl_schema name SEQUENCE #输出属于此SCHEMA的序列的CREATE SEQUENCE语句。
\ddl_schema name SYNONYM #输出属于此SCHEMA的CREATE SYNONYM语句。
\ddl_schema name PROCEDURE #输出属于此SCHEMA的CREATE PROCEDURE/FUNCTION语句。
\ddl_schema name GRANT #输出SCHEMA访问权限相关的GRANT … ON SCHEMA语句。
\ddl_schema name COMMENT #输出SCHEMA的注释相关的COMMENT ON SCHEMA语句。

41)\ddl_table {[schema.]name}
输出表对象当前状态的DDL语句:
\ddl_table name #执行以下所有选项。
\ddl_table name CREATE #输出表对象的CREATE TABLE语句。
\ddl_table name CONSTRAINT #输出表生成的约束条件的ALTER TABLE语句。
\ddl_table name INDEX #输出表生成的索引的CREATE INDEX语句。
\ddl_table name IDENTITY #表中有identity column时,输出restart值相关的ALTER TABLE语句。
\ddl_table name SUPPLEMENTAL #表中有supplemental log选项时,输出ALTER TABLE语句。
\ddl_table name GRANT #输出表的访问权限相关的GRANT … ON TABLE语句。
\ddl_table name COMMENT #输出表的注释相关的COMMENT ON TABLE语句。

42)\ddl_constraint {[schema.]name}
输出当前约束条件状态相关的DDL:
\ddl_constraint name #执行以下所有选项。
\ddl_constraint name ALTER #输出约束条件对象的ALTER TABLE语句。
\ddl_constraint name COMMENT #输出约束条件的注释相关的COMMENT ON CONSTRAINT语句。

43)\ddl_index {[schema.]name}
输出索引对象当前状态相关的DDL语句:
\ddl_index name #执行以下所有选项。
\ddl_index name CREATE #输出索引对象的CREATE INDEX语句。
\ddl_index name COMMENT #输出索引的注释相关的COMMENT ON INDEX语句。

44)\ddl_view {[schema.]name}
输出视图对象当前状态相关的DDL语句:
\ddl_view name #执行以下所有选项。
\ddl_view name CREATE #输出视图对象的CREATE VIEW语句。
\ddl_view name GRANT #输出视图访问权限相关的GRANT … ON TABLE语句。
\ddl_view name COMMENT #输出视图的注释相关的COMMENT ON TABLE语句。

45)\ddl_sequence {[schema.]name}
输出序列对象当前状态相关的DDL:
\ddl_sequence name #执行以下所有选项。
\ddl_sequence name CREATE #输出序列对象的CREATE SEQUENCE语句。
\ddl_sequence name RESTART #输出序列对象的restart值相关的ALTER SEQUENCE语句。
\ddl_sequence name GRANT #输出序列的访问权限相关的GRANT … ON SEQUENCE语句。
\ddl_sequence name COMMENT #输出序列的注释相关的COMMENT ON SEQUENCE语句。

46)\ddl_synonym {[schema.]name}
输出同义词对象当前状态相关的DDL语句:
\ddl_synonym #执行以下所有选项。
\ddl_synonym name CREATE #输出同义词对象的CREATE SYNONYM语句。

47)\ddl_public_synonym {name}
输出Public Synonym对象当前状态相关的DDL语句:
\ddl_public_synonym #执行以下所有选项。
\ddl_public_synonym name CREATE #输出Public Synonym对象的CREATE PUBLIC SYNONYM语句。

48)\ddl_procedure {[schema.]name}
输出Stored Procedure或Function对象的当前状态相关的DDL语句:
\ddl_procedure #执行以下所有选项。
\ddl_procedure name CREATE #输出Stored Procedure/Function对象的CREATE PROCEDURE/FUNCTION语句。

49)\ddl_package {[schema.]name}
说明:输出属于package spec或package body对象的当前状态的DDL语句。
语句:
\ddl_package name
\ddl_package name CREATE

50)\startup {[nomount|mount|open]}
说明:启动SUNDB服务器,为了执行\startup 命令,需要以SYSDBA或ADMIN role访问。
语句:
\startup nomount #服务器启动至NOMOUNT阶段。
\startup mount #服务器启动至MOUNT阶段。
\startup open #服务器启动至OPEN阶段。
\startup #与\startup open 相同。

51)\shutdown {[abort|immediate|transactional|normal]}
说明:关闭SUNDB服务器。为了执行\shutdown命令,需要以SYSDBA或ADMIN role连接。
\shutdown normal #切断新的会话接入,等待执行中的所有会话关闭后,执行checkpoint并关闭服务器。
\shutdown transactional #切断新事务的开始,等待执行中的所有事务关闭后,执行checkpoint并关闭服务器。
\shutdown immediate #切断新的单位运算(ex: FETCH or EXECUTE等),等待执行中的所有单位运算关闭后,回滚所有事务,执行checkpoint并关闭服务器。
\shutdown abort #不管连接中的会话的状态,强行关闭服务器。
\shutdown #与\shutdown normal 相同。

52)\cstartup {[nomount|mount|open]}
说明:在集群环境中启动SUNDB服务器。为了执行\cstartup 命令,需要以SYSDBA或ADMIN role访问。
语句:
\cstartup #与\cstartup global open相同。
\cstartup nomount #将该服务器启动至NOMOUNT阶段。
\cstartup mount #将该服务器启动至MOUNT阶段。
\cstartup open #与cstartup global open相同。
\cstartup local open #将该服务器与其他服务器启动至LOCAL OPEN阶段。
\cstartup global open #将所有服务器启动至GLOBAL OPEN阶段。

53)\cshutdown {[abort|immediate|transactional|normal]}
说明:在集群环境中关闭SUNDB服务器。为了执行\cshutdown命令,需要以SYSDBA或ADMIN role连接。
语句:
\cshutdown #与\cshutdown normal 相同。
\cshutdown abort #不管连接中的会话状态,强行关闭服务器。
\cshutdown immediate #屏蔽新的单位运算(ex:FETCH or EXECUTE等),等待当前执行中的所有单位运算完成后,回滚所有事务,执行checkpoint并关闭服务器。
\cshutdown transactional #屏蔽新事务,等待当前执行中的事务完成后,执行checkpoint并关闭服务器。
\cshutdown normal #屏蔽新会话的连接,等待已连接的所有会话关闭后,执行checkpoint并关闭服务器。

54)\connect userid password [as {sysdba|admin}]
说明:在对话型模式中,可使用\connect命令如下以新用户连接数据库。\connect命令将断开原有会话并创建新的会话。

最后修改时间:2023-07-17 15:05:42
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论