教据库系统概论 An Introduction to Database System 第三章关系数据库标准语言 sQL(续4) 中国人民大学信息学院计算机系 An Introduction to Database System
An Introduction to Database System 中国人民大学信息学院计算机系 数据库系统概论 An Introduction to Database System 第三章 关系数据库标准语言 SQL (续4)
第三章关系数据库标准语言SQL《 31SQL概述 3.2数据定义 3.3查询 3.4数据更新 3.5视图 3.6数据控制 37嵌入式SQL 3.8小结 An Introduction to Database System
An Introduction to Database System 第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图 3.6 数据控制 3.7 嵌入式SQL 3.8 小结
37嵌入式SQL SQL语言提供了两种不同的使用方式: 交互式 嵌入式 为什么要引入嵌入式SQL SQL语言是非过程性语言 事务处理应用需要高级语言 这两种方式细节上有差别,在程序设计的环境 下,SQ语句要做某些必要的扩充 An Introduction to Database System
An Introduction to Database System 3.7 嵌 入 式 SQL ◼ SQL语言提供了两种不同的使用方式: ◼ 交互式 ◼ 嵌入式 ◼ 为什么要引入嵌入式SQL ◼ SQL语言是非过程性语言 ◼ 事务处理应用需要高级语言 ◼ 这两种方式细节上有差别,在程序设计的环境 下,SQL语句要做某些必要的扩充
37嵌入式QL的一般形式) 为了区分SQL语句与主语言语句,需要: 前缀: EXEC SQL 结束标志:随主语言的不同而不同 以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL Wyl: EXEC SQL DROP TABLE Student 以 COBOL作为主语言的嵌入式SQL语句的一般形式 EXEC SQL END-EXEC F6 EXEC SQL DROP TABLE Student END-EXEC An Introduction to Database System
An Introduction to Database System 3.7.1嵌入式SQL的一般形式 ◼ 为了区分SQL语句与主语言语句,需要: ◼ 前缀:EXEC SQL ◼ 结束标志:随主语言的不同而不同 ◼ 以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL ; 例:EXEC SQL DROP TABLE Student; ◼ 以COBOL作为主语言的嵌入式SQL语句的一般形式 EXEC SQL END-EXEC 例: EXEC SQL DROP TABLE Student END-EXEC
DBMS处理宿主型数据库语言SQL的方法 ■预编译 修改和扩充主语言使之能处理SQL语句 An Introduction to Database System
An Introduction to Database System DBMS处理宿主型数据库语言SQL 的方法 ◼ 预编译 ◼ 修改和扩充主语言使之能处理SQL语句
预编译 1.由DBMS的预处理程序对源程序进行扫描, 识别出SQ语句 2.把它们转换成主语言调用语句,以使主语言 编译程序能识别它 3.最后由主语言的编译程序将整个源程序编译 成目标码。 An Introduction to Database System
An Introduction to Database System 预编译 1.由DBMS的预处理程序对源程序进行扫描, 识别出SQL语句 2.把它们转换成主语言调用语句,以使主语言 编译程序能识别它 3.最后由主语言的编译程序将整个源程序编译 成目标码
嵌入SQL语句 说明性语句 嵌入SQL语句 数据定义 可执行语句数据控制 数据操纵 ■允许出现可执行的高级语言语句的地方,都可 以写可执行SQL语句 允许出现说明语句的地方,都可以写说明性 SQL语句 An Introduction to Database System
An Introduction to Database System 嵌入SQL语句 说明性语句 嵌入SQL语句 数据定义 可执行语句 数据控制 数据操纵 ◼ 允许出现可执行的高级语言语句的地方,都可 以写可执行SQL语句 ◼ 允许出现说明语句的地方,都可以写说明性 SQL语句
372嵌入式SQL语句与主语言之间的通信 将SqL嵌入到高级语言中混合编程,程序中会含 有两种不同计算模型的语句 SQL语句 描述性的面向集合的语句 n负责操纵数据库 ■高级语言语句 过程性的面向记录的语句 负责控制程序流程 An Introduction to Database System
An Introduction to Database System 3.7.2 嵌入式SQL语句与主语言之间的通信 将SQL嵌入到高级语言中混合编程,程序中会含 有两种不同计算模型的语句 ◼ SQL语句 ◼ 描述性的面向集合的语句 ◼ 负责操纵数据库 ◼ 高级语言语句 ◼ 过程性的面向记录的语句 ◼ 负责控制程序流程
工作单元之间的通信方式 1.SQL通信区 向主语言传递SQL语句的执行状态信息 主语言能够据此控制程序流程 2.主变量 1)主语言向SQL语句提供参数 2)将SQL语句查询数据库的结果交主语言进一步处理 3.游标 解决集合性操作语言与过程性操作语言的不匹配 An Introduction to Database System
An Introduction to Database System 工作单元之间的通信方式 1. SQL通信区 向主语言传递SQL语句的执行状态信息 主语言能够据此控制程序流程 2. 主变量 1)主语言向SQL语句提供参数 2)将SQL语句查询数据库的结果交主语言进一步处理 3. 游标 解决集合性操作语言与过程性操作语言的不匹配
1.SQL通信区 SQLCA: SQL Communication Area SQLCA是一个数据结构 SQLCA的用途 ■SQL语句执行后,DBMS反馈给应用程序信息 描述系统当前工作状态 描述运行环境 这些信息将送到SQ通信区 SQLCA中 应用程序从 SQLCA中取出这些状态信息,据此决定 接下来执行的语句 An Introduction to Database System
An Introduction to Database System 1. SQL通信区 ◼ SQLCA: SQL Communication Area ◼ SQLCA是一个数据结构 ◼ SQLCA的用途 ◼ SQL语句执行后,DBMS反馈给应用程序信息 ◼ 描述系统当前工作状态 ◼ 描述运行环境 ◼ 这些信息将送到SQL通信区SQLCA中 ◼ 应用程序从SQLCA中取出这些状态信息,据此决定 接下来执行的语句