10271438

当前课程知识点:数据库系统原理与开发 >  第6章 数据库应用编程 >  6.5 嵌入式SQL编程 >  6.5 嵌入式SQL编程

返回《数据库系统原理与开发》慕课在线视频课程列表

6.5 嵌入式SQL编程在线视频

下一节:第6章 数据库应用编程--重点问题讨论

返回《数据库系统原理与开发》慕课在线视频列表

6.5 嵌入式SQL编程课程教案、知识点、字幕

同学们大家好

我是主讲教师陈安龙

下面我们开始学习数据库编程的第6小节

“嵌入式SQL编程”

本节学习目标如下

了解SQL与宿主语言的关系

理解嵌入式SQL的处理过程

理解嵌入式SQL与主语言之间的通信

掌握嵌入SQL的使用方式

一 嵌入式SQL与宿主语言

(1)SQL语言具有很强的查询处理能力

而逻辑表达的能力很弱

界面编程能力也很弱

(2)JAVA,C/C++等高级语言具有很强逻辑表达能力

能实现复杂的处理逻辑

同时具有较强的用户界面实现功能

(3)为了使程序语言同时具有他们的优点

在JAVA、C/C++等高级语言中嵌入SQL语句

称高级语言为宿主语言

(4)由数据库管理系统的预编译器扫描识别处理SQL语句

把SQL语句转换成主语言调用语句

以使主语言编译程序能识别它

最后由主语言的编译程序将整个源程序编译成目标码

然后连接生成装载模块

二、嵌入式SQL的处理过程

(1)嵌入式SQL是一个语句级接口

通过程序访问的数据库模式必须在编写程序时已知

以便构造SQL语句

例如 程序员必须知道数据表名称 列名称及它的域

(2)对于嵌入式SQL

RDBMS一般采用预编译方法处理

即由关系数据库的预处理程序对源程序进行扫描

识别出嵌入的SQL语句

把它转换成主语言调用语句

以使主语言编译程序能识别它们

然后由主语言的编译程序将纯的主语言编译成目标码

如图 此图展现对嵌入式SQL程序的处理过程

对于含有SQL语句的主语言程序

如JAVA程序

关系数据库管理系统对主语言程序进行预处理

将嵌入的SQL语句转换为函数调用

然后主语言的编译器对预编译后的程序进行编译

生成目标程序

嵌入式的SQL语句如何与主语言之间的通信

将SQL嵌入到高级语言中混合编程

SQL语句负责操纵数据库

高级语言语句负责控制流程

这时程序中会含有两种不同的计算模型的语句

从而需要二者之间建立通信

数据库工作单元与源程序工作单元之间的通信主要包括

(1)向主语言传递SQL语句的执行状态信息

使主语言能够根据此信息控制程序流程

主要用SQL通信区实现

(2)主语言向SQL语句提供参数

主要用主变量实现

(3)将SQL语句查询数据库的结果传回主语言处理

主要用主变量和游标实现

三、嵌入SQL的使用规定

(1)在程序中要区分SQL语句和宿主语言语句

在嵌入式SQL中

为了能够区分SQL语句与宿主语言语句

所有的SQL语句都必须加前缀标识“EXEC SQL”

并以“END_EXEC”作为语句的结束标志

嵌入式SQL语句的格式如:

EXEC SQL END_EXEC

结束标志在不同的宿主语言中可能是不同的

在C和PASCAL语言程序中规定结束标志为分号

而不是“END_EXEC”

(2)SQL的集合处理方式与宿主语言单记录处理方式之间的协调

由于SQL语句处理的是记录集合

而宿主语言语句一次只能处理一条记录

因此需要使用游标(Cursor)机制

把集合操作转换为单记录处理方式

与游标有关的SQL语句如下

1)游标定义语句(DECLARE)

游标是与某一查询结果相联系的符号名

游标用SQL的DECLARE语句定义

其格式如下

EXEC SQL DECLARE CURSOR FOR

END EXEC

游标定义语句是一个说明语句

定义中的SELECT并不立即执行

2)游标打开语句(OPEN)

该语句在执行游标定义中的SELECT语句

同时游标处于活动状态

游标是一个指针

此时指向查询结果的第一行之前

OPEN语句的格式如下

EXEC SQL OPEN

END_EXEC

3)游标取数据语句(FETCH)

此时游标推进一行

并把游标指向的行(即当前行)中的值取出并送到共享变量

其格式如下:

EXEC SQL FETCH FROM INTO END_EXEC

变量表由逗号分开的共享变量组成

FETCH语句通常置于宿主语言程序的循环结构中

并借助宿主语言的处理语句逐一处理查询结果中的每一个元组

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

6.5 嵌入式SQL编程笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。