返回首页

gbase数据、南大通用产品文档:GBase8sSQL 语句的类别

更新日期:2024年09月11日

传统上将 SQL 语句划分为以下逻辑类别:
数据定义语句
这些数据定义语言(DDL)语句可声明、重命名、修改或破坏数据库对象。
数据操纵语句

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 15
这些数据操纵语言(DML)语句可检索、插入、删除或修改数据值。
游标操纵语句
这些语句可声明、打开和关闭游标,游标是用于对多行数据操作的数据结构。
动态管理语句
这些语句支持内存管理并运行用户在运行时指定 DML 操作的详细信息。
数据访问语句
这些语句指定访问特权并支持多个用户对数据库的同时访问。
数据完整性语句
这些语句执行事务日志记录并支持数据库的参照完整性。
优化语句
这些语句可用于提高数据库操作的性能。
例程定义语句
这些语句可声明、定义、修改、执行或破坏数据库存储的用户定义的例程。
客户机/服务器连接语句
这些语句可打开或关闭数据库和客户机应用程序之间的连接。
辅助语句
这些语句可提供关于数据库的信息。(这也是一个剩余类别,用于不与其他语句
紧密相关的语句。)
数据定义语言语句
SQL 数据定义语言(DDL)创建、修改、重命名或销毁数据库对象并对数据库中
系统目录表中的行进行相应的修改。

ALTER ACCESS_METHOD

ALTER FRAGMENT

ALTER FUNCTION

ALTER INDEX

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 16

ALTER PROCEDURE

ALTER ROUTINE

ALTER SEQUENCE

ALTER SECURITY LABEL COMPONENT

ALTER TABLE

ALTER TRUSTED CONTEXT

ALTER USER

CLOSE DATABASE

CREATE ACCESS_METHOD

CREATE AGGREGATE

CREATE CAST

CREATE DATABASE

CREATE DEFAULT USER

CREATE DISTINCT TYPE

CREATE EXTERNAL TABLE

CREATE FUNCTION

CREATE FUNCTION FROM

CREATE INDEX

CREATE OPAQUE TYPE

CREATE OPCLASS

CREATE PROCEDURE

CREATE PROCEDURE FROM

CREATE ROLE

CREATE ROUTINE FROM

CREATE ROW TYPE

CREATE SCHEMA

CREATE SECURITY LABEL

CREATE SECURITY LABEL COMPONENT

CREATE SECURITY POLICY

CREATE SEQUENCE

CREATE SYNONYM

CREATE TABLE

CREATE TEMP TABLE

CREATE TRIGGER

CREATE TRUSTED CONTEXT

CREATE USER

CREATE VIEW

CREATE XADATASOURCE

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 17

CREATE XADATASOURCE TYPE

DROP ACCESS_METHOD

DROP AGGREGATE

DROP CAST

DROP DATABASE

DROP FUNCTION

DROP INDEX

DROP OPCLASS

DROP PROCEDURE

DROP ROLE

DROP ROUTINE

DROP ROW TYPE

DROP SECURITY

DROP SEQUENCE

DROP TRUSTED CONTEXT

DROP SYNONYM

DROP TABLE

DROP TRIGGER

DROP TYPE

DROP USER

DROP VIEW

DROP XADATASOURCE

DROP XADATASOURCE TYPE

RENAME COLUMN

RENAME DATABASE

RENAME INDEX

RENAME SECURITY

RENAME SEQUENCE

RENAME TABLE

RENAME TRUSTED CONTEXT

RENAME USER

TRUNCATE

UPDATE STATISTICS
数据操纵语言语句

DELETE

INSERT

LOAD

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 18

MERGE

SELECT

UNLOAD

UPDATE
注: SQL 的 ANSI/ISO 标准中的 DML 语句包括 DELETE 、INSERT 、
MERGE 、SELECT 和 UPDATE 语句。MERGE 可模拟 INSERT 和 DELETE
或 UPDATE 。尽管 LOAD 和 UNLOAD 在功能上类似于 DML ,但这些 DB-
Access 宏不在本手册中对“DML 语句”的大多数引用范围内。
数据完整性语句

BEGIN WORK

COMMIT WORK

SAVEPOINT

RELEASE SAVEPOINT

ROLLBACK WORK

SET Database Object Mode

SET LOG

SET Transaction Mode

START VIOLATIONS TABLE

STOP VIOLATIONS TABLE
游标操纵语句

CLOSE

DECLARE

FETCH

FLUSH

FREE

OPEN

OPEN FOR

PUT

SET AUTOFREE
动态管理语句

ALLOCATE COLLECTION

ALLOCATE DESCRIPTOR

ALLOCATE ROW

DEALLOCATE COLLECTION

DEALLOCATE DESCRIPTOR

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 19

DEALLOCATE ROW

DESCRIBE

DESCRIBE INPUT

EXECUTE

EXECUTE IMMEDIATE

FREE

GET DESCRIPTOR

INFO

PREPARE

SET DEFERRED_PREPARE

SET DESCRIPTOR
数据访问语句

GRANT

GRANT FRAGMENT

LOCK TABLE

REVOKE

REVOKE FRAGMENT

SET ISOLATION

SET LOCK MODE

SET ROLE

SET SESSION AUTHORIZATION

SET TRANSACTION

SET Transaction Mode

UNLOCK TABLE
优化语句

SAVE EXTERNAL DIRECTIVES

SET ENVIRONMENT

SET EXPLAIN

SET OPTIMIZATION

SET PDQPRIORITY

SET STATEMENT CACHE
例程定义语句

ALTER FUNCTION

ALTER PROCEDURE

ALTER ROUTINE

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 20

CREATE FUNCTION

CREATE FUNCTION FROM

CREATE PROCEDURE

CREATE PROCEDURE FROM

CREATE ROUTINE FROM

DROP FUNCTION

DROP PROCEDURE

DROP ROUTINE

EXECUTE FUNCTION

EXECUTE PROCEDURE

SET DEBUG FILE TO
辅助语句

GET DIAGNOSTICS

INFO

OUTPUT

SET COLLATION

SET DATASKIP

SET ENCRYPTION PASSWORD

SET USER PASSWORD

WHENEVER
客户机/服务器连接语句

CONNECT

DATABASE

DISCONNECT

SET CONNECTION

数据库服务器和应用程序都可以部分实现客户端函数。
可以使用 SQLPrepare() 和 SQLExecute() 或者使用 SQLExecDirect() 执行客户端函数。

调用 SQLExecute() 或 SQLExecDirect() 之前,需要调用 SQLBindParameter() 或
SQLBindCol() 绑定每个参数。
使用 SQLPrepare() 和 SQLExecute() 执行客户端函数
可以使用 SQLPrepare() 和 SQLExecute() 执行客户端函数。
要使用 SQLPrepare() 和 SQLExecute() 执行客户端函数:
1. 为客户端函数准备 SQL 语句。
2. 绑定参数。
3. 执行 SQL 语句。
下列代码示例说明了使用 ifx_lo_open()的这些步骤:
rc = SQLPrepare(hstmt, "{? = call ifx_lo_open(?, ?, ?)}", SQL_NTS);
rc = SQLBindParameter(...);

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 159 -

rc = SQLExecute(hstmt);

使用 SQLExecDirect() 执行客户端函数
可以使用 SQLExecDirect() 函数执行客户端函数。
要使用 SQLExecDirect() 执行客户端函数:
1. 绑定参数。
2. 执行 SQL 语句。
以下示例代码说明了使用 ifx_lo_open()的这些步骤:
rc = SQLBindParameter(...);
rc = SQLExecDirect(hstmt, "{? = call ifx_lo_open(?, ?, ?)}", SQL_NTS);

管理员口令长度可设置,口令至少为 8 位,复杂度至少为字母数字组合
1. server 端分别修改 sysdba、sysdsa、sysdaa 管理员口令,修改为不符合长
度、复杂度要求的口令,修改失败;
onmode -wf CONF_SWITCH=1;
dbaccess sysuser -
alter user sysdba modify passowrd ‘gbase123’;
alter user sysdsa modify passowrd ‘gbaseabc’;
alter user sysdaa modify passowrd ‘GBase12’;
2. 修改为符合长度、复杂度要求的口令,修改成功;
alter user sysdba modify passowrd ‘GBase123’;
alter user sysdsa modify passowrd ‘GBase123’;
alter user sysdaa modify passowrd ‘GBase123’;