GBase新闻

专注于数据库软件产品和服务,致力于成为用户最信赖的数据库产品供应商

“G”术时刻:如何构建遵循ANSI标准的GBase 8s数据库环境

发布时间:2025-07-07

在使用GBase 8s数据库时,创建兼容ANSI的数据库是一个重要的功能,它可以帮助开发者更好地符合SQL语言的ANSI/ISO标准。本文将详细介绍如何创建兼容ANSI的数据库,并探讨不同模式下的数据库特性及其使用场景。

 

创建数据库的模式

在GBase 8s中,创建数据库时可以选择不同的模式,每种模式都有其特定的用途和特性:

无日志模式:这种模式下的数据库性能较好,但不支持逻辑恢复操作。

缓冲式日志模式:支持数据库逻辑恢复,同时避免频繁的I/O操作,适合生产系统。

无缓冲式日志模式:会有频繁的I/O操作,但一旦数据库宕机,数据损失较小。

ANSI模式:一种特殊的无缓冲式日志模式,符合额外的ANSI规则。

 

创建数据库的语法

创建数据库的基本语法如下:

CREATE DATABASE database [IN dbspace] [WITH LOG | WITH BUFFERED LOG | WITH LOG MODE ANSI] [NLSCASE SENSITIVE | NLSCASE INSENSITIVE];

参数说明

  • database:新数据库的名称,必须在数据库服务器中唯一

  • dbspace:数据库存储数据的dbspace,默认为rootdbs  

  • WITH LOG:启用日志记录

  • WITH BUFFERED LOG:启用缓冲日志记录

  • WITH LOG MODE ANSI:创建兼容ANSI的数据库

  • NLSCASE SENSITIVE:创建区分大小写的数据库

  • NLSCASE INSENSITIVE:创建不区分大小写的数据库

 

使用说明

当前数据库:CREATE DATABASE指定的数据库将成为当前数据库。

权限设置:如果未设置DBCREATE_PERMISSION配置参数,则任何用户都可以创建数据库。如果设置了该参数,则只有指定的用户才能创建数据库。gbasedbt用户始终具有创建数据库的权限。

 

创建不同模式的数据库

1.无日志模式

CREATE DATABASE db_no;

这种模式下的数据库不能使用事务日志记录的事务或语句,如BEGIN WORK、COMMIT WORK  、ROLLBACK WORK等。

2.缓冲日志模式

CREATE DATABASE db_buf WITH BUFFERED LOG;

使用缓冲日志可以提高日志记录的性能,但可能面临失败后无法恢复最后几个事务的风险。

3.无缓冲日志模式

CREATE DATABASE db_unbuf WITH LOG;

在高可用集群的辅助服务器上创建数据库时,必须使用WITH LOG选项。

4.兼容ANSI的数据库

CREATE DATABASE db_ansi WITH LOG MODE ANSI;

兼容ANSI的数据库具有以下特性:

  • 所有SQL语句自动包含在事务中

  • 使用无缓冲的日志记录

  • 实施所有者命名,查看表、视图等对象时必须使用所有者名称

  • 默认隔离级别为REPEATABLE READ

  • 对象上的默认权限与非兼容ANSI的数据库不同

  • 所有的DECIMAL数据类型是定点值

5.区分大小写的数据库

CREATE DATABASE db_sens1 WITH LOG;CREATE DATABASE db_sens2 WITH LOG NLSCASE SENSITIVE;

在区分大小写的数据库中,布尔条件'M' MATCHES 'm' 计算为假。

6.不区分大小写的数据库

CREATE DATABASE db_insens1 WITH LOG NLSCASE INSENSITIVE;

在不区分大小写的数据库中,NCHAR和NVARCHAR列的字符串处理不考虑字母大小写。

 

查询数据库属性

可以通过查询sysmaster:sysdatabases表来获取数据库的属性信息:

SELECT * FROM sysmaster:sysdatabases WHERE name = 'db_insens2';


属性说明

在GBase 8s中,创建兼容ANSI的数据库可以帮助开发者更好地符合SQL语言的ANSI/ISO标准。通过本文的介绍,你可以了解不同模式下的数据库特性及其使用场景。希望本文能帮助你在数据库开发中更高效地创建和管理数据库。