数据库应用基础 Fundamental and Application of Database 第七讲 测控技术与自动化教研中心冯仁剑
Fundamental and Application of Fundamental and Application of Database Database 数据库应用基础 数据库应用基础 第七讲 测控技术与自动化教研中心 测控技术与自动化教研中心 冯仁剑
3.10空值的处理 空值的产生 ●空值的利断 ●可否取空值的制 0有空值的逻辑
3.10 空值的处理 z空值的产生 z空值的判断 z可否取空值的限制 可否取空值的限制 z有空值的逻辑
311嵌入式SQL ●SQL语言提供了两种不同的使用方式 交互式 嵌入式 为什么要引入嵌入式SOL SQL语言是非过程性语言 事务处理应用需要高级语 0这两种方式细节上有差别,在程序设计的环 下,SOL语句要做某些必要的扩充
3.11 嵌 入 式 SQL z SQL语言提供了两种不同的使用方式: 语言提供了两种不同的使用方式: – – 交互式 – – 嵌入式 z 为什么要引入嵌入式 为什么要引入嵌入式SQL – – SQL语言是非过程性语言 语言是非过程性语言 – – 事务处理应用需要高级语言 事务处理应用需要高级语言 z 这两种方式细节上有差别,在程序设计的环境 这两种方式细节上有差别,在程序设计的环境 下,SQL语句要做某些必要的扩充 语句要做某些必要的扩充
3.111嵌入式SQL的一般形式 0为了区分S0L语句与主语言语句,要 ●前缀: EXEC SQ ●结束标志:随主语言的不同而不同 以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL Bi]: EXEC SQL DROP TABLE Student 以 COBOL作为主语言的嵌入式SOL语的一般形式 EXEC SQL END-EXEC B: EXEC SQL DROP TABLE Student END-EXEC
3.11.1嵌入式SQL的一般形式 z 为了区分SQL语句与主语言语句,需要 语句与主语言语句,需要: z前缀:EXEC SQL EXEC SQL z 结束标志:随主语言的不同而不同 结束标志:随主语言的不同而不同 z 以C为主语言的嵌入式 为主语言的嵌入式SQL语句的一般形式 语句的一般形式 EXEC SQL ; 例:EXEC SQL DROP TABLE Student EXEC SQL DROP TABLE Student; z 以COBOL作为主语言的嵌入式 作为主语言的嵌入式SQL语句的一般形式 语句的一般形式 EXEC SQL END-EXEC 例: EXEC SQL DROP TABLE Student END EXEC SQL DROP TABLE Student END-EXEC
DBMS处理宿主型数据库语言SQL的方法 0预编译 修改和扩充主语言使之能处理SO旬
DBMS处理宿主型数据库语言 处理宿主型数据库语言SQL 的方法 z预编译 z修改和扩充主语言使之能处理 修改和扩充主语言使之能处理SQL语句
SQL库函数 嵌入了 SQL的源程序丬目标代码}*丬可执行代码 应用程序 SQL预编译器 编译器 连接器DBMS DB
Compile tir Precompiler Services C Source Program ISqlprepexe(16-bit Windows sqlprepl exe (16-bit Windows) MSD0s」 Embedded SOL Code Nsqlprep. exe (Windows NT) H Sqlalw 32 dI windows NT) Windows 95) Program Bind file aw. ib (16-bit windows] Object File Sqlakw. ib (16-bit Windows) Caw32. i (windows NT) Caw32 ib (indows 951 SOLakw32. i indows Sglakw32. lib (indows 95) Ca励bMsD0s Salad. li (MS-DOS) Rldblib ib [ MS-DOS) Access Plan Your Application SOL Server Exe) Database Run Time Stored Procedure Run Time services. Sqlakw32 dl windows NT) Sqlakw32. dl (indows 95) Sqlakd. lib (MS DOS
预编译 1,由DBMS的预处理程序对程序进行扫描, 识别出SQL语句 2.把它们转换成主语言调用语句,以询 编译程序能识别它 3.最后由主语言的编译程序将整个源程序 成目标码
预编译 1.由DBMS的预处理程序对源程序进行扫描, 的预处理程序对源程序进行扫描, 识别出SQL语句 2.把它们转换成主语言调用语句,以使主语言 成主语言调用语句,以使主语言 编译程序能识别它 编译程序能识别它 3.最后由主语言的编译程序将整个源程序 .最后由主语言的编译程序将整个源程序编译 成目标码
嵌入SQL语句 说明性语句 嵌入SQL语句 数据定义 可执行语句数据控 数据操纵 0允许出现可执行的高级语言语旬的地方,部可 以写可执行SQL语句 允许出现说明语句的地方,都可以写说明性 SOL语句
嵌入SQL语句 说明性语句 嵌入SQL语句 数据定义 可执行语句 数据控制 数据操纵 z 允许出现可执行的高级语言语句的地方,都可 允许出现可执行的高级语言语句的地方,都可 以写可执行SQL语句 z 允许出现说明语句的地方,都可以写说明性 允许出现说明语句的地方,都可以写说明性 SQL语句
3112嵌入式SQL语句与 主语言之间的通信 将SQL俄入到高级语言中混合编程,程序中会含 有两种不同计算模型的语句 SQL语句 ●描述性的面向集合的语句 ●负责操纵数据库 高级语言语句 ●过程性的面向记录的语句 ●负责控制程序流程
3.11.2 嵌入式SQL语句与 主语言之间的通信 主语言之间的通信 将SQL嵌入到高级语言中混合编程,程序中会含 嵌入到高级语言中混合编程,程序中会含 有两种不同计算模型的语句 有两种不同计算模型的语句 – – SQL语句 z 描述性的面向集合的语句 描述性的面向集合的语句 z 负责操纵数据库 负责操纵数据库 – – 高级语言语句 z 过程性的面向记录的语句 过程性的面向记录的语句 z 负责控制程序流程 负责控制程序流程