返回首页

gbase数据、南大通用产品文档:GBase8a执行多条语句

更新日期:2024年09月11日

使用游标执行多条SQL语句。
from GBaseConnector import connect, GBaseError
if __name__ == '__main__':
config = {'host':'172.16.0.131',
'user':'root',
'passwd':'111111',
'port':5258,



GBase Python 接口开发手册
南大通用数据技术股份有限公司

- 7 -
'db':'test'}
try:
conn = connect()
conn.connect(**config)
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS test(id INT, name VARCHAR(20))")
cur.execute("INSERT INTO test VALUES(%s,%s)", (1,'hello'))

iters = cur.execute("UPDATE test SET id=%s,name=%s;DELETE FROM test;SELECT
'result';",
params=(2,'world'), multi_stmt=True)
for i in iters:
try:
print i.fetchall()
except GBaseError.InterfaceError:
pass
cur.execute("DROP TABLE IF EXISTS test")
except GBaseError.DatabaseError, err:
print err
finally:
conn.close()

功能说明
修改视图列字段。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
995
语法格式
ALTER
VIEW
[vc_name.][database_name.]view_name
[(column_list)]
AS
select_statement
表5- 70 参数说明
参数名称


vc_name
vc 名,可选项。
database_name
数据库名,可选项。
view_name
视图名。
column_list
修改的视图列列表。
select_statement
提供给定义视图的SELECT 语句。本语句可以从其它表或者
视图中提取数据。
示例
示例1:修改视图v_t 中的列为指定列。
gbase> CREATE TABLE t (name VARCHAR(20),address VARCHAR(40),sex
INT);
Query OK, 0 rows affected (Elapsed: 00:00:00.06)
gbase> CREATE VIEW v_t AS SELECT * FROM t;
Query OK, 0 rows affected (Elapsed: 00:00:00.05)
gbase> INSERT INTO t VALUES('TOM','east street','23'),('jack','west road
NO
15','22'),('MIKE','DongFang
road
NO
22','21'),('TONY','EA
Street','34'),('Rose','TangRen Street NO.191','31');
Query OK, 5 rows affected (Elapsed: 00:00:00.05)
Records: 5
Duplicates: 0
Warnings: 0
gbase> DESC v_t;
+---------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name
| varchar(20) | YES
|
| NULL
|
|
| address | varchar(40) | YES
|
| NULL
|
|
| sex
| int(11)
| YES
|
| NULL
|
|
+---------+-------------+------+-----+---------+-------+
3 rows in set (Elapsed: 00:00:00.01)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
996
gbase> SELECT * FROM v_t;
+------+-----------------------+------+
| name | address
| sex
|
+------+-----------------------+------+
| TOM
| east street
|
23 |
| jack | west road NO 15
|
22 |
| MIKE | DongFang road NO 22
|
21 |
| TONY | EA Street
|
34 |
| Rose | TangRen Street NO.191 |
31 |
+------+-----------------------+------+
5 rows in set (Elapsed: 00:00:00.03)
gbase> ALTER VIEW v_t(a,b) AS SELECT name,address FROM t;
Query OK, 0 rows affected (Elapsed: 00:00:00.07)
gbase> DESC v_t;
+-------+-------------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| a
| varchar(20) | YES
|
| NULL
|
|
| b
| varchar(40) | YES
|
| NULL
|
|
+-------+-------------+------+-----+---------+-------+
2 rows in set (Elapsed: 00:00:00.00)
gbase> SELECT * FROM v_t;
+------+-----------------------+
| a
| b
|
+------+-----------------------+
| TOM
| east street
|
| jack | west road NO 15
|
| MIKE | DongFang road NO 22
|
| TONY | EA Street
|
| Rose | TangRen Street NO.191 |
+------+-----------------------+
5 rows in set (Elapsed: 00:00:00.02)

函数说明
在字符串str 中,
从pos 位置开始,
选取len 个字符长度的子串替换为字符串newstr。
如果pos 值不在长度范围之内,则返回原来的字符串;如果len 值不在字符串剩
余长度范围之内,
则替换从pos 位置开始的其余字符串;
任何一个参数是NULL,
则返回NULL。
示例
示例1:
从字符串
“Quadratic”
的第3 个位置开始的4 个字符
“adra”
替换为
“What”

gbase> SELECT INSERT('Quadratic', 3, 4, 'What') FROM dual;
+-----------------------------------+
| INSERT('Quadratic', 3, 4, 'What') |
+-----------------------------------+
| QuWhattic
|
+-----------------------------------+
1 row in set
示例2:pos 的值不在长度范围之内,返回原字符串。
gbase> SELECT INSERT('Quadratic', -1, 4, 'What') FROM dual;
+------------------------------------+
| INSERT('Quadratic', -1, 4, 'What') |
+------------------------------------+
| Quadratic
|
+------------------------------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
690
示例3:len 不在字符串剩余长度范围之内,用“What”替换从第3 个位置开始的
其余字符串。
gbase> SELECT INSERT('Quadratic', 3, 100, 'What') FROM dual;
+-------------------------------------+
| INSERT('Quadratic', 3, 100, 'What') |
+-------------------------------------+
| QuWhat
|
+-------------------------------------+
1 row in set