版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目六
程序设计任务1程序设计基础任务2事务处理任务3使用游标任务1程序设计基础任务引入小林不仅想查询数据,还想对表中的数据进行运算和控制。那么,怎么利用SQL语言进行编程满足要求呢?编写的程序中会用到什么变量以及流程控制语句呢?知识准备一、变量在SQLServer中,变量分为局部变量和全局变量。全局变量名称前面有两个at符号(@@),由系统定义和维护。局部变量前面有一个at符号(@),由用户定义和使用。1.局部变最局部变量由用户定义,仅在声明它的批处理、存储过程或者触发器中有效。批处理结束后,局部变量将变成无效。各参数含义如下:@local_variable:是变量的名称。data_type:是任何由系统提供的或用户定义的数据类型。案例——查询并输出学院号为03的院长姓名案例——查询score表中选修课程号为“01054010”且成绩高于80的记录
查询03号学院的院长名称查询成绩高于80的记录2.全局变量全局变量记录了SQLServer的各种状态信息,它们不能被显式地赋值或声明,而且不能由用户定义。在SQLServer中,定义了全局变量,如表所示。二、流程控制语句SQL提供称为控制流的特殊关键字,用于控制SQL语句、语句块和存储过程的执行流。这些关键字可用于SQL语句、批处理和存储过程中。控制流语句就是用来控制程序执行流程的语句,使用控制流语句可以在程序中组织语句的执行流程,提高编程语言的处理能力。SQLServer提供的控制流语句如表所示。1.BEGIN…END语句BEGIN…END语句用于将多个SQL语句组合为一个逻辑块。在执行时,该逻辑块作为一个整体被执行。案例——设置变量值设置变量值下面几种情况经常要用到BEGIN和END语句:WHILE循环需要包含语句块。CASE函数的元素需要包含语句块。IF或ELSE子句需要包含语句块。2.IF…ELSE语句使用IF…ELSE语句,可以有条件地执行语句。案例——查询大学语文课程的成绩状况
查询成绩3.CASE语句使用CASE语句可以进行多个分支的选择。CASE具有两种格式:简单CASE格式将某个表达式与一组简单表达式进行比较以确定结果。搜索CASE格式计算一组布尔表达式以确定结果。(1)简单CASE格式案例——查询课程的课程类型(2)搜索CASE格式案例——查询学生成绩查询老师的单位和职称查询学生成绩4.WHILE语句WHILE语句可以设置重复执行SQL语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK和CONTINUE关键字在循环内部控制WHILE循环中语句的执行。案例——在查询到成绩表中没有学生成绩超过95分的情况下,将所有成绩提高5分,反复执行,直到成绩超过95分。5.GOTO语句GOTO语句可以实现无条件的跳转。高学生成绩案例——输出18032142学号学生的平均成绩6.RETURN语句使用RETURN语句,可以从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出,而不执行位于RETURN之后的语句。案例——查询18032142学号学生的成绩和平均分7.WAITFOR语句使用WAITFOR语句,可以在指定的时间或者过了一定时间后,执行语句块、存储过程或者事务。输出18032142学号学生的平均成绩输出18032142学号学生的成绩和平均分任务2事务处理任务引入小林需要对之前做的数据库进行大量的修改,但是他又担心修改后不对还得一点一点恢复,他咨询老师,怎么处理这个问题,老师告诉他可以采用事物处理来解决这一问题。那么,什么是事物,事物又分为哪些类别呢?显示事务有哪些步骤呢?知识准备事务是SQLServer中的单个逻辑单元,一个事务内的所有SQL语句作为一个整体执行,要么全部执行,要么都不执行。一个逻辑工作单元必须有4个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务。原子性(Atomicity):事务必须是原子工作单元。一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态。隔离性(Isolation):由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。持久性(Durability):事务完成之后,它对于系统的影响是永久性的。一、事务分类按事务的启动和执行方式,可以将事务分为3类:显式事务:也称为用户定义或用户指定的事务,即可以显式地定义启动和结束的事务。自动提交事务:自动提交模式是SQLServer的默认事务管理模式。
隐性事务:当连接以隐性事务模式进行操作时,SQLServer将在提交或回滚当前事务后自动启动新事务。二、显式事务显式事务需要显式地定义事务的启动和结束。它是通过BEGINTRANSACTION、COMMITTRANSACTION、COMMITWORK、ROLLBACKTRANSACTION或ROLLBACKWORK等SQL语句来完成的。1.启动事务启动事务使用BEGINTRANSACTION语句,该语句将@@TRANCOUNT加1。2.结束事务如果没有遇到错误,可使用COMMITTRANSACTION语句成功地结束事务。3.回滚事务如果事务中出现错误,或者用户决定取消事务,可回滚该事务。案例——启动一个事务向college表中插入一个记录,然后回滚该事务4.在事务内设置保存点设置保存点使用SAVETRANSACTION语句案例——在事务内设置保存点查询表
查询表5.标记事务WITHMARK选项使事务名置于事务日志中。将数据库还原到早期状态时,可使用标记事务替代日期和时间。6.不能用于事务的操作在事务处理中,并不是所有的SQL语句都可以取消执行,一些不能撤消的操作(如创建、删除和修改数据库的操作),即使SQLServer取消了事务执行或者对事务进行了回滚,这些操作对数据库造成的影响也是不能恢复的。因此,这些操作不能用于事务处理。这些操作如表所示。7.自动提交事务SQLServer使用BEGINTRANSACTION语句启动显式事务,或隐性事务模式设置为打开之前,将以自动提交模式进行操作。不能用于事务的操作三、隐式事务在为连接将隐性事务模式设置为打开之后,当SQLServer首次执行某些SQL语句时,都会自动启动一个事务,而不需要使用BEGINTRANSACTION语句。任务3使用游标任务引入小刘老师让小林帮忙从学校的数据库中查询他们专业前十名的学生信息并打印出来,可是小林查询出来是所有学生信息按名次排名,这时小林想到用游标来提取数据。那么,怎么使用游标呢?知识准备关系数据库中的操作会对整个行集产生影响。由SELECT语句返回的行集包括所有满足该语句WHERE子句中条件的行。由语句所返回的这一完整的行集称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制,以便每次处理一行或一部分行。游标就是用来提供这种机制的结果集扩展。游标包括以下两个部分:游标结果集(CursorResultSet):由定义该游标的SELECT语句返回的行的集合。游标位置(CursorPosition):指向这个集合中某一行的指针。游标使得SQLServer语言可以逐行处理结果集中的数据,游标具有以下优点:允许定位在结果集的特定行。从结果集的当前位置检索一行或多行。支持对结果集中当前位置的行进行数据修改。为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。提供脚本、存储过程和触发器中使用的访问结果集中的数据的SQL语句。使用游标的典型过程如下:(1)声明SQL变量包含游标返回的数据。(2)使用DECLARECURSOR语句把SQL游标与一个SELECT语句相关联。(3)使用OPEN语句执行SELECT语句并生成游标。(4)使用FETCHINTO语句提取单个行,并把每列中的数据转移到指定的变量中。(5)结束游标时使用CLOSE语句。
游标的典型使用过程1.声明游标声明游标使用DECLARECURSOR语句2.打开游标打开游标使用OPEN语句3.从打开的游标中提取行游标声明,而且被打开以后,游标位置位于第一行。4.关闭游标关闭游标使用CLOSE语句5.释放游标释放游标将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东师范大学第二附属中学第二批公开招聘人员备考题库(4名)及答案详解(夺冠系列)
- 2026浙江杭州市钱塘区卫生健康局所属事业单位招聘15人备考题库及一套完整答案详解
- 2026重庆财经职业学院考核招聘10人备考题库附答案详解(模拟题)
- 2026湖北民族大学附属民大医院招聘2人备考题库附答案详解(培优)
- 2026西南民族大学合同制教职工招聘19人备考题库附答案详解(精练)
- 2026年郑州工业技师学院招聘工作人员13名备考题库及参考答案详解一套
- 2026广东广州黄埔区南岗街南岗经联社招聘工作人员的1人备考题库(出纳)及答案详解(历年真题)
- 《搭船的鸟》教学设计
- 2026届河北省枣强中学高三下学期4月阶段检测历史试题(含答案)
- 2026年上海市青浦区高三二模英语试卷(含答案)
- 【课件】历史的图谱(文化色彩)+课件高中美术人教版(2019)选择性必修1+绘画
- DB36-T 657-2023 棘胸蛙养殖技术规程
- 物料掩埋事故分析原因分析报告
- 某自来水厂施工组织设计完整方案
- 十年(14-23)高考物理真题分项汇编专题58 气体的等圧変化(含解析)
- 2023建筑结构弹塑性分析技术规程
- 110kv变电站设计外文翻译
- 2023年中考数学压轴题专题22 二次函数与新定义综合问题【含答案】
- 毛主席诗词(132首)
- SB-2100流量积算仪说明书
- 【毕业论文撰写】开题报告、文献综述、文献检索
评论
0/150
提交评论