一、交互式SQL的局限 & 嵌入式SQL的必要性
专业人员(如DBA)可以熟练地运用交互式SQL语言,但普通用户却不是那么容易上手,所以需要通过数据库应用程序来使用数据库。编写一个可以与数据库交互的数据库应用程序,仅仅靠交互式SQL语言是无法完成的,还需要高级语言的加持。为了能让SQL语句能和高级语言交互,我们提出了嵌入式SQL语言这一概念。
从SQL语句本身的角度来看,交互式SQL语言存在以下局限性:特别复杂的检索结果难以用一条交互式SQL语句完成。此时需要结合高级语言中的流程控制语句(即联合多条SQL语句)来帮助处理,这也是嵌入式SQL语言所具备的一个特性。
二、嵌入式SQL语言的形式(假设宿主语言为C语言)
1. 示例:交互式SQL语句 & 嵌入式SQL语句
- select Sname, Sage from Student where Sname = '张三';
- exec sql select Sname, Sage into :vSname, :vSage from Student where Sname = '张三';
①exec sql:引导词,使得C编译器知道该条语句是嵌入式SQL语句
②增加into子句:指出用于接收SQL语句检索结果的程序变量
③为了区分属性和程序变量,应在程序变量前加上冒号