DM_SQL教程:数据定义语句与对象类型体实现
需积分: 30 151 浏览量
更新于2024-08-07
收藏 4.25MB PDF 举报
"这篇文档是关于达梦数据库系统(DM)中使用结构化查询语言(SQL)进行数据定义的教程,特别提到了`创建类型体`的语法,这是在对象类型中实现过程和函数的关键部分。同时,文档还涵盖了DM_SQL的特性、保留字与标识符、数据类型、表达式、数据库模式的管理以及用户、模式、表空间、表、索引等数据库对象的定义、修改和删除操作。"
在DM数据库中,创建类型体是用于在对象类型中定义和实现过程和函数的。语法格式如下:
```sql
CREATE [OR REPLACE] TYPE BODY [<模式名>.]<类型名>[WITH ENCRYPTION] AS|IS
<对象类型体定义子句>
END
<对象类型体定义子句>::= <对象类型体定义>,{<对象类型体定义>}
<对象类型体定义>::= <过程实现>|<函数实现>|<构造函数实现>
```
这里,`CREATE TYPE BODY`语句用于创建或替换类型体,`<模式名>`和`<类型名>`分别指定模式和类型的名称,`WITH ENCRYPTION`选项可选,表示该类型体的内容会被加密。接着是`AS|IS`关键字后跟对象类型体定义子句,包括过程实现、函数实现和构造函数实现。
过程实现和函数实现可以指定方法继承属性,如是否允许重载(`OVERRIDING`)、是否为最终方法(`FINAL`)、是否可实例化(`INSTANTIABLE`)等。这些属性影响了类型实例的方法行为。
例如,一个过程实现的示例可能如下所示:
```sql
CREATE OR REPLACE TYPE BODY MyType AS
MEMBER PROCEDURE MyProcedure(param1 datatype1, param2 datatype2) AS
BEGIN
-- 实现过程的代码
END MyProcedure;
END;
```
而函数实现则会包含返回类型和可能的`MAP`、`STATIC`或`MEMBER`属性,如下:
```sql
CREATE OR REPLACE TYPE BODY MyType AS
MEMBER FUNCTION MyFunction(param1 datatype1) RETURN datatype2 AS
BEGIN
-- 实现函数的代码
RETURN result;
END MyFunction;
END;
```
此外,文档还提到了DM_SQL的一些基本概念,如保留字、标识符、数据类型(常规、位串、日期时间、多媒体)、表达式(数值、字符串、时间值、时间间隔值)以及数据库模式的管理。这包括用户定义、模式定义、表空间的创建、修改和删除,以及各种类型的表、索引的管理。这些构成了DM数据库中进行数据操作和管理的核心内容。
2013-02-26 上传
2024-04-14 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Davider_Wu
- 粉丝: 45
- 资源: 3892
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建