返回首页

gbase数据、南大通用产品文档:GBase8aMONTH(date)

更新日期:2024年09月11日

函数说明
返回date 中对应的月份数值,范围为1 到12。
示例
示例1
date 值对应的月份值在1~12 之内。
gbase> SELECT MONTH('2011-08-30') FROM t;
+---------------------+
| MONTH('2011-08-30') |
+---------------------+
| 8 |
+---------------------+
1 row in set
示例2
date 值对应的月份值大于12,返回NULL。
gbase> SELECT MONTH('2011-13-30') FROM t;
+---------------------+
| MONTH('2011-13-30') |
+---------------------+
| NULL |
+---------------------+
1 row in set, 2 warnings

示例中用到的表及数据:
DROP TABLE IF EXISTS gs;
CREATE TABLE gs (a int DEFAULT NULL, b varchar(20) DEFAULT NULL);
INSERT INTO gs values(1,'qw\ner'),(2,'as\rdf');
如果在导出的数据中某字段
(通常为字符串类型,
如varchar)
中包含
“\n”

“\r”

则只对“\n”进行转义。
如果在“\n”前加转义字符(默认为“\”),“\r”不变,仍为不可见字符“\r”,
使用二进制方式查看为“0x0D”。
示例1:转义“\n”的原因是文本中的内容“\n”与默认的行分隔符(LINES
TERMINATED)相同,故将文本中的“\n”转义。
gbase> SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/n_1.txt';
Query OK, 2 rows affected
查看导出文件:
$ cat -b n_1.txt
1 1 qw\
2 er
df 3 2 as
注意
cat 命令中的-b 参数表示对非空输出行进行编号。
使用二进制方式查看导出文件:
$ hexdump -C n_1.txt
00000000 31 09 71 77 5c 0a 65 72 0a 32 09 61 73 0d 64 66 |1.qw\.er.2.as.df|
00000010 0a |.|
00000011
示例2:如果显示的指定行分隔符为其他字符,则不发生转义。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 245
gbase> SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/n_2.txt' LINES TERMINATED BY
';';
Query OK, 2 rows affected
查看导出文件:
$ vi n_2.txt
1 qw
er;2 as^Mdf;
说明
导出文件中的“^M”表示“\n”。
使用二进制方式查看导出文件:
$ hexdump -C n_2.txt
00000000 31 09 71 77 0a 65 72 3b 32 09 61 73 0d 64 66 3b |1.qw.er;2.as.df;|
00000010

虚拟索引
虚拟索引功能支持用户在数据库中直接进行操作,
本功能将模拟真实索引的建立,
避免
真实索引创建所需的时间和空间开销,
用户基于虚拟索引,
可通过优化器评估该索引对指定
查询语句的代价影响。
本功能涉及的系统函数接口如下表所示:
表11- 10 虚拟索引功能的接口
函数名
参数
功能
hypopg_create_index
创建索引语句的字符串
创建虚拟索引。
hypopg_display_index

显示所有创建的虚拟索引信息。
hypopg_drop_index
索引的oid
删除指定的虚拟索引。
hypopg_reset_index

清除所有虚拟索引。
hypopg_estimate_size
索引的oid
估计指定索引创建所需的空间大小。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
386
本功能涉及的GUC 参数如下:
表11- 11 虚拟索引功能的GUC 参数
参数名
功能
默认值
enable_hypo_index
是否开启虚拟索引功能
off
使用步骤
(1)
使用函数hypopg_create_index 创建虚拟索引。例如:
gsql=> select * from hypopg_create_index('create index on bmsql_customer(c_w_id)');
indexrelid |
indexname
------------+-------------------------------------
329726 | <329726>btree_bmsql_customer_c_w_id
(1 row)
(2)
开启GUC 参数enable_hypo_index,该参数控制数据库的优化器进行EXPLAIN 时是否
考虑创建的虚拟索引。通过对特定的查询语句执行explain,用户可根据优化器给出的
执行计划评估该索引是否能够提升该查询语句的执行效率。例如:
gsql=> set enable_hypo_index = on;
SET
开启GUC 参数前,执行EXPLAIN + 查询语句:
gsql=> explain SELECT c_discount from bmsql_customer where c_w_id = 10;
QUERY PLAN
----------------------------------------------------------------------
Seq Scan on bmsql_customer
(cost=0.00..52963.06 rows=31224 width=4)
Filter: (c_w_id = 10)
(2 rows)
开启GUC 参数后,执行EXPLAIN + 查询语句:
gsql=> explain SELECT c_discount from bmsql_customer where c_w_id = 10;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
[Bypass]
Index Scan using <329726>btree_bmsql_customer_c_w_id on bmsql_customer
(cost=0.00..39678.69 rows=31224 width=4)
Index Cond: (c_w_id = 10)
(3 rows)
通过对比两个执行计划可以观察到,
该索引预计会降低指定查询语句的执行代价,
用户

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
387
可考虑创建对应的真实索引。
(3)
(可选)使用函数hypopg_display_index 展示所有创建过的虚拟索引。例如:
gsql=> select * from hypopg_display_index();
indexname
| indexrelid |
table
|
column
--------------------------------------------+------------+----------------+------------------
<329726>btree_bmsql_customer_c_w_id
|
329726 | bmsql_customer | (c_w_id)
<329729>btree_bmsql_customer_c_d_id_c_w_id |
329729 | bmsql_customer | (c_d_id,
c_w_id)
(2 rows)
(4)
(可选)使用函数hypopg_estimate_size 估计虚拟索引创建所需的空间大小(单位:字
节)。例如:
gsql=> select * from hypopg_estimate_size(329730);
hypopg_estimate_size
----------------------
15687680
(1 row)
(5)
删除虚拟索引。
使用函数hypopg_drop_index 删除指定oid 的虚拟索引。例如:
gsql=> select * from hypopg_drop_index(329726);
hypopg_drop_index
-------------------
t
(1 row)
使用函数hypopg_reset_index 一次性清除所有创建的虚拟索引。例如:
gsql=> select * from hypopg_reset_index();
hypopg_reset_index
--------------------
(1 row)

执行EXPLAIN ANALYZE 不会涉及虚拟索引功能。

创建的虚拟索引是数据库实例级别的,各个会话(session)之间可共享设置,关闭
会话后虚拟索引仍可存在,但是重启数据库后将被清空。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
388

本功能暂不支持视图、物化视图、列存表。