【梳理】数据库系统概论 第8章 数据库编程 8.1 嵌入式SQL 8.2 过程化SQL 8.3 存储过程和函数 8.4 ODBC编程

本文详细介绍了数据库编程,包括嵌入式SQL的概念、SQL通信区、游标和连接管理,过程化SQL的流程控制语句,以及存储过程和函数的优势。此外,还讲解了ODBC的原因、组成、工作流程,以及如何通过ODBC进行数据库连接和操作。
摘要由CSDN通过智能技术生成

教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后

第8章 数据库编程

标准SQL是非过程化的查询语言,操作统一、面向集合、功能丰富、使用简单。非过程化语言是相对于过程化语言而言的,语言的使用者只需给出输入,计算机执行并输出,使用者无需干预执行过程。相对地,关系代数是过程化的,使用者必须一步一步指定执行过程。高度非过程化的语言的一个弱点是:缺少流程控制能力,难以实现应用中的逻辑控制。SQL编程技术可以有效克服SQL语言的复杂应用的不足,提高应用系统和DBMS的互操作性。

8.1 嵌入式SQL

1、嵌入式SQL,是指将SQL语句包含到程序设计语言中去。被嵌入的程序设计语言,如C / CPP / Java等,称为宿主语言,简称主语言。对嵌入式SQL,DBMS一般采用预编译方法处理,即DBMS的预处理程序对源程序扫描,识别出嵌入式SQL语句并转换成主语言的语句,主语言的编译器就能识别它们并连通代码的其它部分进行编译。
对编程语言的语法部分的细节不会被写入本归纳梳理中。

2、SQL通信区(SQL Communication Area,SQLCA)是一片内存空间,主要包括描述当前工作状态和运行环境的各种数据。SQL语句执行后,相应的信息会传入SQLCA。应用程序据此决定接下来的执行语句。SQLCA中的变量SQLCODE存放每次执行SQL语句后返回的代码。每执行完一条SQL语句,都应该测试SQLCODE的值,了解执行情况并作相应处理。一般而言0为成功,非0为出错。程序员可以根据SQLCODE的错误代码查找问题。

3、嵌入式SQL语句可以使用整份代码的SQL语句以外的变量,即主语言的程序变量来输入输出。SQL语句中使用的来自主语言程序的变量简称主变量(host variable),分为输入主变量和输出主变量。输入主变量由应用程序赋值,SQL语句引用;输出主变量由SQL语句赋值或设置状态信息,返回给应用程序。
一个主变量可附带一个任选的指示变量(indicator variable),它是整型的,用于“指示”所指主变量的值或条件。例如:指示输入主变量是否为空,检测输出主变量是否为空,值是否被截断。

4、SQL面向集合,一条SQL语句可以产生或处理多条记录;主语言是面向记录的,一组主变量一次只能存放一条记录。嵌入式SQL引入了游标(cursor),通过在多条记录中移动游标,可以将指向的记录传给主变量。游标的本质是数据缓冲区,存放SQL语句的执行结果。每个游标区都有命名。

5、嵌入式SQL程序访问数据库时必须首先连接数据库,RDBMS根据用户信息对连接进行合法性验证,通过身份验证才能建立可用的合法连接。当某个连接上的所有数据库操作完成后,应用程序应该主动释放占用的连接资源。

6、当嵌入式SQL语句中使用的主变量、查询的目标列和条件等都是固定的时候,SQL语句属于静态SQL语句。而某些应用可能需要在执行过程中才能确定需要执行的SQL语句和查询的条件,这时候需要使用动态SQL语句解决这类问题。动态SQL方法允许在程序运行过程临时“构造”SQL语句。动态SQL支持动态组装SQL语句和动态参数两种形式,给开发者提供设计任意SQL语句的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值