返回首页

gbase数据、南大通用产品文档:GBase8s总结

更新日期:2024年09月11日

本章介绍了在基本 SELECT 语句中用来查询关系数据库和处理返回数据的函数的样本语
法和结果。在 SELECT 语句中使用函数 显示如何执行以下操作:

在 Projection 子句中使用聚集函数来计算并检索特定数据。

在 SELECT 语句中包括时间函数 DATE 、
DAY 、
MDY 、
MONTH 、
WEEKDAY 、
YEAR 、CURRENT 和 EXTEND 以及 TODAY 、LENGTH 和 USER 函数。

在 SELECT 子句中使用转换函数来在日期与字符串之间转换。

在 SELECT 子句中使用字符串处理函数来转换大写和小写字母或以各种方法处理
字符串。



GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 115 -
6 编写高级 SELECT 语句
本章中增大了使用 SELECT 语句可执行的操作的范围。
并使您能够执行更复杂的数据库查
询和数据处理。编写 SELECT 语句着重于 SELECT 语句语法中的五个子句。本章添加了
GROUP BY 子句和 HAVING 子句。
可以将 GROUP BY 子句与聚集函数配合使用来组织
FROM 子句返回的行。可以包括 HAVING 子句来对 GROUP BY 子句返回的值设置条件。

本章还扩展了连接的早期讨论。它说明了自连接(它使您能够将表连接至它本身)和四种
类型的外连接(在其中应用关键字 OUTER 来以不同的方式处理两个或多个连接的表)。
本章还介绍了相关和非相关子查询及其操作关键字,显示了如何使用 UNION 运算符来组
合查询。并定义了称为联合、相交和差异的集合运算。
本章中的示例显示如何在查询中使用 SELECT 语句子句的一部分或全部。
子句必须按以下
顺序显示
1.
Projection
2.
FROM
3.
WHERE
4.
GROUP BY
5.
HAVING
6.
ORDER BY
7.
INTO TEMP
有关以正确顺序使用所有这些子句的 SELECT 语句的示例,请参阅图 5。
附加 SELECT 语句子句 INTO (可用于在 SQL API 中指定程序和主变量)在 SQL 编程
和随产品提供的出版物中进行描述。
本章还描述嵌套的 SELECT 语句,
其中子查询在主查询的 Projection 、
FROM 或 WHERE
子句中指定。
其它几节说明 SELECT 语句如何定义和操作集合,
以及如何对查询结果进行
集合运算。

参数说明:kerberos 服务端key 文件所在位置,需要配置为绝对路径。该文件通常为
${GAUSSHOME}/kerberos 路径下,以keytab 格式结尾,文件名与数据库运行所在用户名相
同。与上述cm_auth_method 参数是配对的,当cm_auth_method 参数修改为gss 时,该参数
也必须配置为正确路径,否则将影响数据库状态
取值范围:
字符串类型,
修改后需要重启cm_server 才能生效。
参数修改请参考表GUC
参数设置方式进行设置。
默认值:${GAUSSHOME}/kerberos/{UserName}.keytab,默认值无法生效,仅作为提示

通过 GBase ADO.NET 接口读取GBase Server 数据需要下面的步骤:
1)
使用GBaseConnection 创建数据库连接对象
2)
使用GBaseCommand 创建命令对象
3)
使用连接对象打开连接
4)
设置命令对象的CommandText 属性,指明查询语句,并关联连接对象

GBase 8a 程序员手册ADO.NET 篇


- 18 -

南大通用数据技术股份有限公司
5)
执行命令对象的ExecuteReader 方法后返回结果集

ExecuteReader方法指定 CommandBehavior.SingleResult参数时返回
单个结果集。

ExecuteReader 方法指定 CommandBehavior.Default 参数时返回多个
结果集。
6)
关闭数据连接
下面的例子将展示如何循环读取某一列的所有数据,并打印出来。
C# 示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Data;
using GBase.Data.GBaseClient;

namespace UsingAdoNet
{
class Program
{
static void Main(string[] args)
{
String _ConnStr = "server=192.168.5.41;user
id=root;password=1;database=test;pooling=false";
using (GBaseConnection _Conn = new
GBaseConnection(_ConnStr))
{
try
{
_ String _CmdText = "select * from
`test`.`test`";



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 19 -
GBaseCommand cmd = new GBaseCommand(_CmdText,
_Conn);

_Conn.Open();
GBaseDataReader reader =
cmd.ExecuteReader(CommandBehavior.SingleResult);
while (reader.Read())
{
Console.WriteLine(reader.GetValue(0));
}
reader.Close();
}
catch (GBaseException ex)
{
Console.WriteLine(ex.StackTrace);
}
finally
{
if( _Conn != null )
_Conn.Close();
}
}
}
}
}