数据库常见问题(P3)

什么是嵌入式SQL?什么是过程化SQL?什么是存储过程?它们的作用是什么?

 标准的SQL是非过程化的查询语言,非过程化使其操作统一且使用简单,但是也导致其没有过程化编程语言那样的流程控制和代码复用性。为了克服这个缺点,出现了嵌入式SQL和过程化SQL以及存储过程等使用SQL的方式。
 嵌入式SQL指的是将SQL语句嵌入程序设计语言,如C++、Java等,嵌入SQL后的代码需要首先经过数据库管理系统的预编译,将代码中的SQL语言转换成主语言编译器能够理解的代码后,再送入主语言的编译器或解释器中生成目标代码。
 不同于嵌入式SQL将SQL语句嵌入程序设计语言中的方式,过程化SQL是在SQL发展过程中对自身进行了拓展,可以使用数据库管理系统自己的过程语言来实现过程化控制。
 有了以上两个方案,基本上可以解决SQL非过程化的问题,但是无法解决代码复用的问题,也就是说,每次执行SQL语句的时候都要重新进行输入再编译,因此,出现了存储过程与函数的概念,指的是将过程或函数编译后保存在数据库中,称保存在数据库中的过程和函数为持久性存储模块,它们可以被反复调用,运行速度较快。

存储过程与存储函数有和不同?

 首先存储过程和存储函数的语法不同,除了关键字不同以外(procedure和function)以外,存储函数还有返回值。如果存储过程想实现有返回值可以使用使用out类型的参数。
 存储过程指的是流程化的SQL步骤,设置返回值被认为是没有必要的,它通常用来进行一系列的数据库操作;而存储函数通常用来进行一些操作后返回一个结果,比如一次查询的结果等。

什么是游标?

 游标(cursor)是系统为用户开设的一个数据缓存区,可以理解为存储了许多SQL语句返回结果的对象。游标的存在是因为SQL是面向集合的,一条语句可能产生很多结果,用一个变量来接受显然不太合适,所以有了游标。
 使用了游标来接受SQL语句或过程的返回结果,再打开游标从中选取用户所需(可以将游标当做一个指向变量池的指针)。
 光标的使用过程为:声明游标(游标名和游标要执行的SELECT语句)–> 打开游标 --> 使用游标 --> 关闭游标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值