返回首页

gbase数据、南大通用产品文档:GBase8sCOMMENT 语句

更新日期:2024年09月11日

使用 COMMENT 语句对表、视图或列添加注释。
语法
该语句的语法格式如下所示:
COMMENT ON
{ TABLE [ dbname:]{ table }
| COLUMN [ dbname:]
{ table. } column
}
IS 'text' ;
语法图为:

用法
要向表、视图或列添加注释,您必须具有 COMMENT ANY TABLE 权限,或有对
该数据库的 DBA 权限。
您可以通过查询视图 SYSCOMMENTS、SYSCOLCOMMENTS 来查看特定表、
视图或列上的注释。
要从数据库中删除注释,请将其设置为空字符串‘’。
TABLE 子句
指定要添加注释的表或视图的模式和名称,包括所有用户表,不包括系统表。若
连接时指定数据库名,则数据库名可省略。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 194
重要:当您想要向视图添加注释时,也请使用关键字 TABLE ,后跟视图名称,
即可向此视图添加注释。
例如,以下示例向视图 View1 添加注释 ’视图 1’:
COMMENT ON TABLE View1 IS '视图1';
COLUMN 子句
指定要注释的表或视图的列的名称。若连接时指定数据库名,则数据库名可省
略。
IS 'text'
指定注释的文本。
COMMENT ON 的示例
以下示例给 EMPLOYEE 表添加注释:
COMMENT ON TABLE employee IS '员工表';
要查看此表的注释,请执行以下语句:
select * from syscomments where TABNAME='EMPLOYEE';
查询结果为:
TANAME COMMENTS
------------------------------ -------------
EMPLOYEE 员工表
以下示例给 employee 表的 salary 列添加注释:
COMMENT ON COLUMN employees.salary IS '薪水';
要查看此表的列的注释,请执行以下语句:
select * from syscolcomments where TABNAME='EMPLOYEE';
查询结果为:
TABNAME COLNAME COMMENTS
--------------- --------------- -------------
EMPLOYEE EMP_ID
EMPLOYEE NAME
EMPLOYEE ADDRESS

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 195
EMPLOYEE SALARY 薪水
要从数据库删除此列的注释,请执行以下语句:
COMMENT ON COLUMN employee.salary IS ' ';
以下示例授予用户注释权限:
GRANT COMMENT ANY TABLE TO user_name;

使用GBase C API 连接集群
GBASE* gbase=NULL;
CHAR* host=”192.168.5.64;192.168.5.67;”; // 集群各节点的IP 地址
/*初始化GBASE 结构体*/
if(!(gbase = gbase_init(0)))
{
fprintf(stderr, "不能初始化GBASE 结构体!\n");
exit(1);
}

GBase 8a 程序员手册C API 篇


- 70 -

南大通用数据技术股份有限公司
/*数据库连接*/
if(!gbase_real_connect(gbase, host, user, passwd, db, port, NULL,
0))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
/*释放数据库连接句柄*/
gbase_close(gbase);

集合派生的表这一节中的查询示例通过使用 TABLE 关键字后面
(括号内)
跟 SELECT 语
句来指定集合派生的表。该语法是对 SQL 语言的 ANSI/ISO 标准的 GBase 8s 扩展。
但是,

(且仅在)
SELECT 的 FROM 子句中,
可以通过指定子查询来代替使用 SQL 符
合 ANSI/ISO 标准的语法,在不使用 TABLE 关键字或嵌套括号的情况下,来定义集合派
生的表。
下列查询在逻辑上等价于 图 3,并为集合派生的表 c_table 指定拍摄了列
表 s_month 和 s_amount。
图: 查询
SELECT * FROM (SELECT sales FROM sales_rep
WHERE sales_rep.rep_num = 102) c_table(s_month, s_amount);
图: 查询结果
s_month s_amount

1998-03 $53.22

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 146 -

1998-04 $18.22
如 GBase 8s 扩展语法中一样,声明派生表或其列的名称是可选的,而不是必需的。下列查
询对外部查询的 FROM 子句使用符合ANSI/ISO 标准的语法,并产生与图 5相同的结果:

图: 查询
SELECT * FROM (SELECT sales FROM sales_rep
WHERE sales_rep.rep_num = 102);
图: 查询结果
month amount

1998-03 $53.22
1998-04 $18.22