好文档 - 专业文书写作范文服务资料分享网站

GBase a学习总结

天下 分享 时间: 加入收藏 我要投稿 点赞

GBase 8a学习总结

INSERT [INTO] [database_name.]table_name [(col_name,...)] SELECT ... FROM [database_name.]table_name ...

INSERT 将新行插入到一个已存在的表中。INSERT...VALUES 形式的语句基于明确的值插入记录行。INSERT ... SELECT 形式的语句从另一个或多个表中选取出值,并将其插入。 1.4.2.2 UPDATE

语法格式:

UPDATE [database_name.]table_name

SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

当更新列的值是一个合法的表达式时,也可以进行正确的更新赋值操作。 需要说明的是,UPDATE 操作不支持更新DISTRIBUTED BY 列的值。 1.4.2.3 DELETE

语法格式: 单表语法:

DELETE [FROM] [database_name.]table_name [tbl_alias] [WHERE where_definition] 多表语法:

DELETE [database_name.]table_name1 [tbl_alias1] FROM

[database_name.]table_name1[tbl_alias1,[database_name.]table_name2 [tbl_alias2] [WHERE where_definition] 其中,

对于单表,关键字FROM 和表别名tbl_alias 是可选关键字,无论DELETE语句中是否包含表别名tbl_alias,都可以省略FROM 关键字。

对于多表,必须包含FROM 关键字。 注意事项:

当DELETE 语句中包含多个表时,以下情况要特别注意: 不允许实际删除表的个数超过一个。 不允许删除操作中带有被删除表的子查询。

29 / 38

GBase 8a学习总结

1.4.2.4 SELECT

语法格式: SELECT

[ALL | DISTINCT | DISTINCTROW ] select_expr, ... [FROM table_references [WHERE where_definition]

[GROUP BY {col_name | expr | position} , ...]

[HAVING where_definition]

[ORDER BY {col_name | expr | position} [ASC | DESC] , ...]

[LIMIT {[offset,] row_count | row_count OFFSET offset}] [INTO OUTFILE '' export_options]

在SELECT 关键字之后可以给出大量的选项,它们会影响到语句的操作。 ALL,DISTINCT 和DISTINCTROW 选项指定了是否返回重复的行,默认为ALL(所有匹配的行都返回)。DISTINCT 和DISTINCTROW 是同义的,用于删除结果集中重复的行。

select_expr:指查询显示的列,可以使用AS 来为SELECT 显示的列命名别名,别名不要和SELECT 显示的列名重复。

table_references:指定从其中找出行的一个或多个表。它的语法在JOIN语法中有描述。

where_definition:含有WHERE 关键字,其后是查询所要满足的一个或多个条件的表达式,但是where 中不能使用聚合函数。

1.5 存储过程、函数

1.5.1

创建存储过程、函数

存储过程和函数是由CREATE PROCEDURE 和CREATE FUNCTION 语句所创建的程序。存储过程通过CALL 语句来调用程序,而且只能通过输出变量得到返回值。

30 / 38

GBase 8a学习总结

函数可以像其它函数一样从语句内部来调用(通过调用函数名),并返回一个标量值。存储程序(过程和函数)也可以调用其它存储程序(过程和函数)。

存储过程语法格式:

CREATE PROCEDURE ([[,…] [,parameter_n]]) [characteristic ...] BEGIN <过程定义> END

函数语法格式:

CREATE FUNCTION ([[,…] [,parameter_n]]) RETURNS type BEGIN <函数定义> END

参数说明如下:

要创建的存储过程的名称。在同一数据库内,存储过程的名称必须唯一。存储过程名称只允许a~z、A~Z、0~9、下划线,且不能只包含数字。

([[,...] [,parameter_n]])定义存储过程的参数,每一个参数的定义格式是:

<参数方向><参数名称><参数数据类型>

存储过程的<参数方向>确定参数是输入、输出还是输入输出,只能取IN、OUT、INOUT 中的一个。函数的<参数方向>只能是输入IN。

<参数名称>在同一个存储过程中必须唯一,只允许a~z、A~Z、0~9、下划线,且不能只包含数字。

<参数数据类型>指定参数的数据类型。

<过程定义>、<函数定义>是一系列的SQL 语句的组合,其中包含一些数据操作以完成一定的功能逻辑。

定义存储过程时,存储过程名后面的括号是必需的,即使没有任何参数,也

31 / 38

GBase 8a学习总结

不能省略。

如果存储过程、函数中的<过程定义>仅包含一条SQL 语句,则可以省略BEGIN 和END,否则,在定义存储过程时,必须使用BEGIN...END 结构把相关的SQL 语句组织在一起形成<过程定义>。

存储过程、函数可以嵌套,也可以递归调用。 type 是GBase 8a MPP Cluster 支持的数据类型。

下面是一个使用IN,OUT 参数的简单的存储过程的示例。这个示例在存储过程定义前,使用GBase 客户端定界符命令来改变语句定界符从?;?到?//?。这允许在存储体中,定界符传递给服务器而不被GBase 解释。 1.5.2

修改存储过程、函数

语法格式:

ALTER {PROCEDURE | FUNCTION} [characteristic ...] characteristic:

{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string' 1.5.3

删除存储过程、函数

语法格式:

DROP {PROCEDURE | FUNCTION} [IF EXISTS] 参数说明如下:

要删除的存储过程(函数)的名称。 1.5.4

调用存储过程、函数

GBase 8a MPP Cluster 使用CALL 语句调用存储过程。 语法格式:

CALL [database_name.]proc_name([<参数列表>]) 说明:

调用存储过程时,如果存储过程有参数,则必须按照存储过程的定义中的顺序和类型为参数赋值,同时,对于OUT 和INOUT 参数,必须指明OUT 和INOUT关

32 / 38

GBase 8a学习总结

键字。

即使存储过程没有任何参数,在调用时也必须在<存储过程名称>后面加上括号。

GBase 8a MPP Cluster 使用SELECT 语句调用函数。 SET @变量名 = [database_name.]func_name([<参数列表>]) GBase 8a MPP Cluster 使用SELECT 语句查看调用函数的执行结果。 语法格式: SELECT @变量名; 1.5.5

查看存储过程、函数的状态

查看创建或修改后的存储过程或函数的状态,可以使用如下语句: SHOW {PROCEDURE | FUNCTION} STATUS

SHOW CREATE {PROCEDURE | FUNCTION}

2 GBase + Hibernate配置

2.1 配置

hibernate.cfg.xml文件

1. 根据hibernate 版本获取对应的dialect 包。

2. 引入hibernate,dialect 包和jdbc 驱动包

3. 配置hibernate.cfg.xml,设置gbase 使用的方言类,参考黑色背景设置。 4. 然后配置数据库连接。

33 / 38

GBase a学习总结

GBase8a学习总结INSERT[INTO][database_name.]table_name[(col_name,...)]SELECT...FROM[database_name.]table_name...INSERT将新行插入到一个已存在的表中。INSERT...VALUES形式的语句基于明确的值插入记录行。INSERT...
推荐度:
点击下载文档文档为doc格式
8actm5nwnq0fvqu4yw276b8ve00zl600v2c
领取福利

微信扫码领取福利

微信扫码分享