返回首页

gbase数据、南大通用产品文档:GBase8s实体完整性

更新日期:2024年09月11日

实体是要记录在数据库中的任何人、位置或事物。每一表都表示一个实体,且表的每一行
都表示那个实体的一个实例。例如,如果 order 是一个实体,则 orders 表表示订单的概念,
表中的每一行表示一特定的订单。
要标识表中的每一行,该表必须有一主键。主键是标识每一行的一个唯一值。此要求称为
实体完整性约束。
例如,orders 表的主键是 order_num。order_num 列为表中的每一行保存一个唯一的系统生
成的订单编号。要访问 orders 表中的一行数据,请使用下列 SELECT 语句:
SELECT * FROM orders WHERE order_num = 1001;
在此语句的 WHERE 子句中使用该订单编号使得您能够容易地访问行,
因为该订单编号唯
一地标识那一行。如果该表允许重复的订单编号,则它几乎不可能访问单个一行,因为此
表的所有其他列都允许重复的值。
要获取关于主键和实体完整性的更多信息,请参阅《GBase 8s 数据库设计和实现指南》。

要卸载数据库,您必须对数据库具有 DBA 特权或是用户 gbasedbt。要卸
载表,您必须拥有该表、对表所驻留的数据库具有 DBA 特权或是用户
gbasedbt。
对 gunload 和 gload,用户 root 不具有特殊的特权。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 618 -

byleng() 函数返回字符串中有效字符的数目,结尾的空格符不计数。

语法
mint byleng(from, count)
char *from;
mint count;
from
指向定长字符串(不以空结尾)的指针。
count
定长字符串中的字节数。这不包括结尾的空格符。

示例

此样例程序位于 demo 目录中的 byleng.ec 文件中。
/*
* byleng.ec *

The following program uses byleng() to count the significant characters in an area.
*/

#include

main()
{
mint x;
static char area[20] = "xxxxxxxxxx ";


printf("BYLENG Sample Program running.\n\n");

/* initial length */
printf("Initial string:\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 619 -

x = byleng(area, 15);
printf(" Length = %d, String = '%s'\n", x, area);

/* after copy */
printf("\nAfter copying two 's' characters starting ");
printf("at position 16:\n");
bycopy("ss", &area[16], 2);
x = byleng(area, 19);
printf(" Length = %d, String = '%s'\n", x, area);

printf("\nBYLENG Sample Program over.\n\n");
}

输出
BYLENG Sample Program running.

Initial string:
Length = 10, String = 'xxxxxxxxxx '
After copying two 's' characters starting at position 16:
Length = 18, String = 'xxxxxxxxxx ss '

BYLENG Sample Program over.