《计算机信息管理基础》第一讲 程序环境中的SQL语句

程序环境中的S咀语句
程序环境中的SQL语句

在程序中使用SL SQL语言的程序使用方式就是嵌入 某种高级语言程序中(例如C), 该语言称为宿主语言。在这样的程 序中,由SQL语句实现对数据库的 访问,而宿主语言的语句则完成对 数据的各种处理功能,还可担当与 用户的交互。很多数据库应用程序 就是采用此种编程方式实现的
在程序中使用SQL SQL语言的程序使用方式就是嵌入 某种高级语言程序中(例如C), 该语言称为宿主语言。在这样的程 序中,由SQL语句实现对数据库的 访问,而宿主语言的语句则完成对 数据的各种处理功能,还可担当与 用户的交互。很多数据库应用程序 就是采用此种编程方式实现的

包含S叫的宿主语言程序 主语言+嵌入的SQL语句 预处理程序 主语言+函数调用 主语言编译程序4SQL库 主语言程序
包含SQL的宿主语言程序 主语言+嵌入的 SQL 语句 SQL 库 预处理程序 主语言+函数调用 主语言编译程序 主语言程序

SL与宿主语言 信息沟通一用能被SQL语句使用的主 语言变量来传递信息。这些共享的变 量在主语言中使用时同其他变量一样 但在SQL语句中引用时,要在变量名 前加上冒号 语法形式一当在主语言中书写SQL代 码时,为了便于预处理程序识别它 我们要在SQL语句前加上 EXEC SQL 关键字
SQL与宿主语言 信息沟通-用能被SQL语句使用的主 语言变量来传递信息。这些共享的变 量在主语言中使用时同其他变量一样, 但在SQL语句中引用时,要在变量名 前加上冒号。 语法形式-当在主语言中书写SQL代 码时,为了便于预处理程序识别它, 我们要在SQL语句前加上EXEC SQL 关键字

使用无返回值的SL语句 void getdep( f EXEC SQL BEGIN DECLARE SECTION char depno3, depname[101 char deptel 4 EXEC SQL END DECLARE SECTION /*程序读入 depo系号)、 depname(系名 和 deptel(电话)的值* EXEC SQL INSERT INTO dep VALUES( depno ,: depname,: deptel)
使用无返回值的SQL语句 void getdep() { EXEC SQL BEGIN DECLARE SECTION ; char depno[3] , depname[10] ; char deptel[4] ; EXEC SQL END DECLARE SECTION ; /* 程序读入depno(系号)、depname(系名) 和deptel(电话)的值*/ EXEC SQL INSERT INTO dep VALUES(:depno , :depname , :deptel) ; }

返回单行的Se语句 void printageo f EXEC SQL BEGIN DECLARE SECTION int eage, float esal: char empname 6 char SQlstate[6; EXEC SQL END DECLARE SECTION /程序读入要查询的职工姓名读入值 放到变量 empname 中) EXEC SQL SELECT age, sal INTO eage, esal FROM emp Where ename=:empname i IF SQLSTATE ==00000
返回单行的select语句 void printage() { EXEC SQL BEGIN DECLARE SECTION ; int eage; float esal; char empname[6] ; char SQLSTATE[6] ; EXEC SQL END DECLARE SECTION ; /* 程序读入要查询的职工姓名(读入值 放到变量empname中)*/ EXEC SQL SELECT age,sal INTO :eage , :esal FROM emp WHERE ename=:empname ; IF SQLSTATE == '00000' …

使用Se返回结果的更一般方法一光标 ①定义光标 EXEC SQL DECLARE CURSOR FOR 查询语句 该语句属说明语句,其核心是定义了一个光标标识 名和一个查询语句。 ②打开光 EXEC SQL OPEN<光标名 该语句实际上是执行了光标定义中的查询语句,查 询结果(结果关系)存放在光标区中。该语句为 访问光标区中的第一个元组做好了准备
使用select返回结果的更一般方法-光标 ① 定义光标 EXEC SQL DECLARE CURSOR FOR 该语句属说明语句,其核心是定义了一个光标标识 名和一个查询语句。 ② 打开光标 EXEC SQL OPEN 该语句实际上是执行了光标定义中的查询语句,查 询结果(结果关系)存放在光标区中。该语句为 访问光标区中的第一个元组做好了准备

使用Se返回结果的更一般方法一光标 ③读光标区中的当前元组 EXEC SQL FETCH FROMINTO<变量 列表 该语句读取光标区中下一个元组的值,并将它的 各分量依次赋值给指定的共享变量。 如果光标区的元组已经读完,那么系统变量 SQLSTATE的值被设为‘02000,意为“ no tuple found。 ④关闭光杉 EXEC SQL CLOSE<光标名
使用select返回结果的更一般方法-光标 ③ 读光标区中的当前元组 EXEC SQL FETCH FROM INTO 该语句读取光标区中下一个元组的值,并将它的 各分量依次赋值给指定的共享变量。 如果光标区的元组已经读完,那么系统变量 SQLSTATE的值被设为‘02000’,意为“no tuple found”。 ④ 关闭光标 EXEC SQL CLOSE

光标应用例一返回多行的S|et 例:上级部门为职工普调工资,调资的办法是:从 最低工资调起,每人长10%,但工资总额不能超 过50万元。程序代码如下: void addsalaryo LEXEC SQL BEGIN DECLARE SECTION char empnob3], sqlstate[6 float s sal. e sal EXEC SQL END DECLARE SECTION EXEC SQL DECLARE CI CURSOR FOR SELECT eno, sal FROM emp OrDER BY sal ASC
光标应用例-返回多行的select 例:上级部门为职工普调工资,调资的办法是:从 最低工资调起,每人长10%,但工资总额不能超 过50万元。程序代码如下: void addsalary() { EXEC SQL BEGIN DECLARE SECTION; char empno[3] , SQLSTATE[6]; float s_sal, e_sal ; EXEC SQL END DECLARE SECTION ; EXEC SQL DECLARE c1 CURSOR FOR SELECT eno,sal FROM emp ORDER BY sal ASC ;

光标应用例一返回多行的Sect EXEC SQL OPEN cl EXEC SQL SELECT SUM(Sal) into s sal from emp while(s sal < 500000.00) EXEC SQL FETCH FROM CI INTO: e sno, e sal f( SQLSTATE=02000) BREAK;/读完职工记录, 退出循环* EXEC SQL UPDATE emp SET sal=sal* 1.1 WHERE eno= e eno s sa s sal +e sal i 0.1 EXEC SQL CLOSE CI
光标应用例-返回多行的select EXEC SQL OPEN c1 ; EXEC SQL SELECT SUM(sal) into :s_sal from emp ; while (s_sal < 500000.00) { EXEC SQL FETCH FROM c1 INTO :e_sno , :e_sal ; if(SQLSTATE=='02000') BREAK ; /*读完职工记录, 退出循环*/ EXEC SQL UPDATE emp SET sal=sal*1.1 WHERE eno=:e_eno; s_sal = s_sal + e_sal * 0.1 ; }; EXEC SQL CLOSE c1 ; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 复旦大学:《Matlab Math》(双语版)CHAPTER 1 黄金分割.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 2 线性方程组.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 10 Pseudorandom Number.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 6 Integrating Differential Equatioins.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 3 插值多项式.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 9 PDE Model.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 8 模型和曲线拟和.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 7 Touch-tone Dialing.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 5 Presentation.ppt
- 复旦大学:《Matlab Math》(双语版)CHAPTER 4 bisection.ppt
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第二讲 MATLAB程序设计.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第一讲 MATLAB概述与运算基础.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(课程介绍).doc
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第八讲 MATLAB图形用户界面设计.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第七讲 MATLAB的符号计算.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第六讲 数据处理方法与多项式.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第五讲 线性代数中的数值计算问题.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第四讲 绘图功能.pps
- 复旦大学:《科学计算与MATLAB语言》课程教学资源(PPT课件讲稿)第三讲 文件操作.pps
- 《计算机电路基础》课程教学资源(PPT课件讲稿)第8章 脉冲与脉冲电路.ppt
- 《计算机信息管理基础》第二讲 数据库保护.ppt
- 《计算机信息管理基础》第三讲 分布式数据库功能.ppt
- 《计算机信息管理基础》第四讲 数据库设计.ppt
- 《计算机信息管理基础》第五讲 计算机工业的变革.ppt
- 《计算机信息管理基础》第六讲 社会信息化进程加快.ppt
- 《计算机信息管理基础》第七讲 数据模型.ppt
- 《计算机信息管理基础》第八讲 主机字符串配置.ppt
- 《计算机信息管理基础》第九讲 关系数据库语言-SQL.ppt
- 《计算机信息管理基础》第十讲 用户界面设计.ppt
- 《计算机信息管理基础》第十一讲 数据库组件及应用实例.ppt
- 《计算机信息管理基础》第十二讲 数据库组件及应用.ppt
- 《计算机信息管理基础》第十三讲 面向对象的基本概念.ppt
- 《计算机信息管理基础》第十四讲 Delphi操作界面.ppt
- 《计算机信息管理基础》第十五讲 对象 PASCAL基本结构.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第10讲 系统备份与恢复.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第6讲 图形环境.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第7讲 帐户管理.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第8讲 文件系统管理.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第9讲 软件包管理.ppt
- 湖南商务职业技术学院:《操作系统基础》课程教学资源(PPT课件讲稿)第11讲 TCPIP网络配置.ppt