前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式SQL

嵌入式SQL

作者头像
ellipse
发布2019-08-16 17:08:13
1.4K0
发布2019-08-16 17:08:13
举报

SQL语言是作为一种独立的自含式语言,它是联机终端用户在交互式环境下使用,交互式SQL简称(ISQL)。

SQL还可以作为一种数据子语言嵌入某些主语言中,SQL可以嵌入到C、C++中使用、称之为嵌入式SQL,简称(ESQL)。

主要区别

交互式SQL:

select sname, sage from student where sname='xy';

嵌入式SQL: 以宿主语言C语言为例,


exec sql select sname, sage into :vsname, :vsage from student where sname='xy';

主要区别:

(1) exex sql 是一个引导词, 它引导sql 语句, 将SQL语句预编译成C编译器可识别的语句.

(2) 增加 into 子句, 用于把SQL 语句的检索结果赋给高级语言的程序变量

(3) 用冒号开头 表示高级语言的程序变量 :vsname , :vsage

冒号很重要, 用于区分是程序变量 还是 表的字段!!

游标语句的使用

在嵌入方式下,SQL的变量是集合型的,而主变量则是标量型的,因此SQL变量不能直接供主程序使用,而需要有一种机制将SQL变量中的集合量逐个去除送入主变量内,在提供主程序使用,提供此种机制的方法是在嵌入式SQL中增加一组游标(Cursor)语句

1. 游标的概念

①游标是一个指向某检索记录集的指针

②作用:通过该指针的移动,可依次处理记录集中的每一个记录

3. 游标的使用

单行:可以将结果直接传送到宿主主程序的变量中, select ... into ...

exec sql select sname, sage into :vsname, :vsage from studentwhere sname=:specname;

多行:

①需要先定义一个游标,再打开(执行),然后开始逐行处理,最后关闭:

exec sql declare cur_student cursor for select Sno, Sname, Sclass from Student where Sclass = '035101';
        exec sql open cur_student;
        exec sql fetch cur_student into :vSno, :vSname, :vSclass;
        ...
        exec sql close cur_student;

②游标可以定义一次,多次打开(执行),多次关闭。

③标准的游标始终是自开始向结束方向移动的,每fetch一次,向结束方向移动一次,这样一条记录只能被访问一次,再次访问该记录只能关闭该游标后重新打开。

4. 可滚动游标

①可滚动游标不同于标准的游标,它可在记录集之间灵活移动,从而可使每条记录被反复访问

②定义方式:

exec sql declare 游标名 [INSENSITIVE] [SCROLL] cursor for ...

③使用方式:

exec sql fecth [NEXT | PRIOR | FIRST | LAST | [ABSOLUTE | RELATIVE] value_spec] from 游标名 into ...

· NEXT:向结束方向移动一条

· PRIOR:向开始方向移动一条

· FIRST:移动到第一条

· LAST:移动到最后一条

· ABSOLUTE value_spec:定向检索指定位置的行,value_spec取值范围为1~当前记录集最大值

· RELATIVE value_spec:相对当前记录向前或向后移动

· value_spec:为正数则向结束方向移动,为负数则向开始方向移动

④可滚动游标在移动前需判断是否到结束位置EOF,或到开始位置BOF


本文摘自:

全国计算机等级考试教材 三级数据库技术教程——主编:赵宏杰

以及网络资源https://www.cnblogs.com/xuying-fall/p/9425036.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ellipse数据库技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL语言是作为一种独立的自含式语言,它是联机终端用户在交互式环境下使用,交互式SQL简称(ISQL)。
    • 主要区别
      • 游标语句的使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档