您好,欢迎访问三七文档
使用ESQL编写一个按学号查询成绩的程序。输出格式模版:×××学生成绩明细表序号课程名成绩备注1数据结构652Java语言853OS缓考(有病)4数据库75平均成绩:75分计算机科学与技术系郑海旭数据库系统概论AnIntroductiontoDatabaseSystem第八章数据库编程JavaC/C++/C#SQL*plus网络TCP/IPDBS的Client/Server结构DBMSDBPL/SQLPythonDBServer问题的提出:已知教学数据库TDB包含学生表S,试编写一个按系别查询学生信息的程序。输出格式模版:×××系学生信息表序号姓名性别年龄备注1刘德华男222张惠妹女203孙燕姿女19休学1年……………#刘欢男242)在S表中查询该系别对应的成绩信息。算法:3)按输出格式显示每个学生的信息。高级语言的工作数据库的工作1)输入系别。结论:解决实际业务问题只用SQL语言或只用高级语言是远远不够的,必须SQL语言与高级语言一起使用才能够高效地解决之。完整的解决方案:过程化语言和SQL语言混合编程1)高级语言负责提供程序控制流程,即:顺序、分支和循环,以及对变量的处理2)SQL语言负责提供从数据库中存取信息功能select、update、delete、grant、…目前,过程化语言和SQL语言混合编程的方法:1)嵌入式SQL:ESQL(EmbeddedSQL)2)PL/SQL(ProceduralLanguage/SQL)4)ODBC(OpenDataBaseConnectivity)3)JDBC(JavaDataBaseConnectivity)5)OLEDB(ObjectLinkingandEmbeddingDB)§8.1嵌入式SQL(ESQL)8.1.1嵌入式SQL程序实例编写应用程序,实现查询某学生的姓名和年龄,并按照下面的格式输出。×××的年龄是:***岁3)在S表中查询该学号对应的姓名和年龄,并将其值分别放到相应的变量中。2)输入学号,存储在变量中。4)按输出格式显示变量的值,算法:1)应用程序与数据库连接5)断开应用程序与数据库的连接高级语言的工作数据库的工作即该学生的名字和年龄。程序代码8.1.2ESQL的几个重要概念1、ESQL?嵌入到高级语言中的SQL2、宿主语言(主语言):被嵌入的高级语言如C、C++、Java等。语法是EXECSQLSQL语句;例如:EXECSQLselectsname,ageinto:vsn,:vagefromstudentwheresno=‘1002’;ESQL的几个重要概念(续)3、主变量(Hostvariable)SQL语句中使用的主语言程序变量。(1)主变量必须在begindeclaresection与enddeclaresection之间进行说明。(2)在SQL语句中使用主变量,须在变量前加冒号(:)。ESQL的几个重要概念(续)(3)主变量应用举例begindeclaresectioncharv_sn[10];intv_age;chargivensno[6];enddeclaresectionEXECSQLselectsname,ageinto:v_sn,:v_agefromstudentwheresno=:givensno;主变量说明主变量引用ESQL的几个重要概念(续)4、建立和关闭数据库(以Oracle为例)(1)建立与数据库的连接execsqlconnect:systemidentifiedby:1234using:mydb;(2)关闭与数据库连接execsqldisconnectmydb;8.1.3嵌入式SQL程序实现方法编写应用程序,实现查询某学生的姓名和年龄,并按照下面的格式输出。×××的年龄是:***岁3)在S表中查询该学号对应的姓名和年龄,并将其值分别放到相应的变量中。2)输入学号,存储在变量中。4)按输出格式显示变量的值,算法:1)应用程序与数据库连接。5)断开应用程序与数据库的连接高级语言的工作数据库的工作即该学生的名字和年龄。程序源代码8.1.4游标(Cursor)及其应用EXECSQLselectsname,ageinto:v_sn,:v_agefromstudentwheresno=‘10201’;EXECSQLselectsname,ageinto:v_sn,:v_agefromstudentwheredept=‘计算机系’;考察以下两个ESQL语句的合理性?游标及其应用(续)一、游标的概念1、游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。3、游标的作用:可以通过游标逐一获取记录,并赋给主变量,交给主语言进一步处理。2、每个游标区都有一个名字。二、使用游标的SQL语句使用游标的步骤1.说明游标(declare)2.打开游标(open)3.推进游标指针并取当前记录(fetch)4.关闭游标(close)1.说明游标语句格式EXECSQLDECLARE游标名CURSORFORSELECT语句;功能是一条说明性语句,这时DBMS并不执行SELECT指定的查询操作。2.打开游标语句格式EXECSQLOPEN游标名;这时游标处于活动状态,指针指向查询结果集中第一条记录。功能执行相应的SELECT语句,把所有满足查询条件的记录从指定表取到缓冲区中。3.推进游标指针并取当前记录语句格式EXECSQLFETCHFROM游标名INTO主变量表;功能指针下移一行。将当前行的记录数据取出,依次给主变量赋值。4.关闭游标语句格式EXECSQLCLOSE游标名;功能关闭游标释放结果集占用的缓冲区及其他资源。已知教学数据库TDB包含学生表S,试编写一个按系别查询学生信息的程序。输出格式模版:×××系学生信息表序号姓名性别年龄备注1刘德华男222张惠妹女203孙燕姿女19休学1年……………#刘欢男24三、游标应用嵌入式SQL的处理过程(续)二、处理过程演示C+ESQL源程序VC++6.0.exeC源程序Pro*CSQL函数库高级语言与DBMS通信主语言环境过程控制I/O处理DBMS环境数据定义数据操纵数据控制主变量SQL语句OracleDB2等C,JavaAsp等高级语言与DBMS通信主语言环境过程控制I/O处理DBMS环境数据定义数据操纵数据控制主变量SQL语句SQLCAC,JavaAsp等OracleDB2等下课了。。。休息一会儿。。。
本文标题:ESQL 数据库
链接地址:https://www.777doc.com/doc-3690899 .html