当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

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

资源类别:文库,文档格式:PPT,文档页数:39,文件大小:115KB,团购合买
在程序中使用SQL SQL语言的程序使用方式就是嵌 入某种高级语言程序中(例如C) ,该语言称为宿主语言。在这样的 程序中,由SQL语句实现对数据库 的访问,而宿主语言的语句则完成 对数据的各种处理功能,还可担当 与用户的交互。很多数据库应用程 序就是采用此种编程方式实现的。
点击下载完整版文档(PPT)

程序环境中的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 ; }

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共39页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有