美文网首页
编程环境下的SQL是如何编译和执行的

编程环境下的SQL是如何编译和执行的

作者: 一叶舟遥 | 来源:发表于2019-08-05 11:56 被阅读0次

编程环境下的SQL也称嵌入式SQL(Embedded SQL, ESQL),是一种将SQL语句直接写入C、C++、JAVA等编程语言中的使用方式,从而让应用程序拥有了访问数据库、操作数据的能力。这些嵌入SQL的语言称为宿主语言。

为提供对嵌入式SQL的支持,数据库厂商需要提供DBMS和一些工具,并且在技术上必须解决以下4个问题:

  1. 宿主语言的编译器不可能识别和接受SQL语言,所以需要解决如何将宿主语言源代码中的SQL编译成可执行码;
  2. 宿主语言的应用程序如何与DBMS之间传递数据和消息;
  3. 如何把对数据的查询结果逐次赋值给宿主语言程序中的变量,以供其处理;
  4. 有时,数据库的数据类型与宿主语言的数据类型不完全对应或等价,如何解决必要的数据类型转换问题;

为了解决以上问题,数据库厂商采用两种方法处理:一种是预编译;另一种是修改和扩充宿主语言,使之能处理SQL语句。目前采用较多的是预编译的方法。数据库厂商需要提供一个嵌入式SQL的预编译器,对源程序进行扫描,识别出SQL语句,把它们转换成主语言调用语句,以使宿主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。

相关文章

  • 编程环境下的SQL是如何编译和执行的

    编程环境下的SQL也称嵌入式SQL(Embedded SQL, ESQL),是一种将SQL语句直接写入C、C++、...

  • Spark CBO调优

    操作场景 SQL语句转化为具体执行计划是由SQL查询编译器决定的,同一个SQL语句可以转化成多种物理执行计划,如何...

  • iOS的编译原理和应用

    iOS的编译原理和应用 什么是编译和编译器 在一般的编程过程中,都要先编译再执行。所谓编译就是把C语言等编程语言编...

  • Mysql预编译

    首先,我们要清楚一条sql的执行过程,明白什么是预编译 词法和语义解析 优化sql语句,制定执行计划 执行并返回结...

  • JDBC进阶 & BeanUtils组件简介

    预编译sql处理(防止sql注入) Statement : 执行SQL命令CallableStatement : ...

  • SQL性能分析

    sql语句执行顺序: sql语句和其他相关的编程语言最大不同的地方应该是执行顺序。对于大多数编程语言来说都是按照顺...

  • 存储过程(一)

    上面是sql语句的执行流程,如果我们省略了其中的语法分析和编译的环节,那么sql语句的执行效率就会大大提高,关键是...

  • js运行时流程

    宿主环境->引擎->创建执行环境->退栈->环境销毁 其中创建执行环境包括:执行栈->编译->执行,而编译包括: ...

  • java面试题 --- MySQL③

    1. 生产环境中一条 SQL 执行特别慢,你要如何排查问题?可以查看 SQL 的执行计划。 2. 执行计划怎么用?...

  • 一种Join时数据倾斜的解决方法

    一、引子 在用Spark SQL编程时,不论是执行SQL语句,还是编写算子提交SparkSubmit 执行,在Da...

网友评论

      本文标题:编程环境下的SQL是如何编译和执行的

      本文链接:https://www.haomeiwen.com/subject/vkgpdctx.html