第7章_T-SQL高级编程.ppt_第1页
第7章_T-SQL高级编程.ppt_第2页
第7章_T-SQL高级编程.ppt_第3页
第7章_T-SQL高级编程.ppt_第4页
第7章_T-SQL高级编程.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章,T-SQL高级编程,回顾,建库的语法?补充下列语句:IFEXISTS(SELECT*FROM?WHEREname=student)DROPDATABASEstudent建表的语法?补充下列语句:IFEXISTS(SELECT*FROM?WHEREname=tblstudent)DROPTABLEtblstudent解释下列语句的含义?EXECsp_helpindextblstudent,补充下列语句:1.ALTERTABLEtblstudentADDCONSTRAINT?PRIMARYKEY(stuNo)2.ALTERTABLEtblstudentADDCONSTRAINTUQ_identity_id?3.ALTERTABLEtblstudentADDCONSTRAINTDF_stud_sex?4.ALTERTABLEtblstudentADDCONSTRAINTCK_stud_sexCHECK(?)5.ALTERTABLEtblscoreADDCONSTRAINTFK_stud_idFOREIGNKEY?REFERENCES?,回顾,学习T-SQL高级编程的目的,在SQLSERVER的应用程序开发中,有两种访问数据库的方法:一是使用应用程序编程接口(API),另一种是使用数据库语言。对于前一种方法是定义如何编写连接并传送命令到数据库的应用程序代码,通过应用程序开发工具编写数据库应用系统;后一种方法是在SQLSERVER中使用T-SQL语言。对于许多应用程序的开发,都是一方面在客户端进行应用程序的开发,另一方面在数据库服务器端进行复杂的完整性设计,为了确保数据库数据的完整性,需要使用T-SQL语言编写复杂的触发器、存储过程、自定义函数,游标和事物等数据库语言程序。,掌握IF、WHILE、CASE逻辑控制语句学习用户自定义函数的建立理解游标知识并学会运用,本章目标,Beginend语句,将两条或两条以上的T-SQL语句组合成一个整体成为块语句,相当于C语言中的块语句的句法结构:Beginend说明:块语句中至少要包含一条T-SQL语句。Beginend必须成对初向,单独各占一行块语句常用于分支结构和循环结构中块语句可以嵌套在其他块语句中,IFELSE语句,C语言中的if-else语句if(条件)语句1;语句2;else语句1;语句2;,SQL中的IF-ELSE语句IF(条件)BEGIN语句1语句2ENDELSEBEGIN语句1;语句2;END,同C语言一样:ELSE是可选部分如果有多条语句,才需要BEGIN-END语句块,ifelse语句,示例7.1,示例7.1答案,ifelse语句,示例7.2,示例7.2答案,ifelse语句,设置输出结果的格式,为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式,WHILE循环语句,C语言中的while语句while(条件)语句1;continue;语句2;break;,SQL中的WHILE语句WHILE(条件)BEGIN语句1CONTINUE语句2BREAKEND,同C语言一样:BREAK表示退出循环,CONTINUE结束本次循环继续下一循环。如果有多条语句,才需要BEGIN-END语句块,while循环语句,示例7.3,示例7.3答案,while循环语句,END对不能少!,示例7.4,while循环语句,CASEEND多分支语句形式1,casewhen条件判断表达式结果1thenwhen条件判断表达式结果2thenwhen条件判断表达式结果nthenelseend,case多分支语句,示例7.5,case多分支语句,else前不能有when!,CASEEND多分支语句形式2,casewhen条件表达式1thenwhen条件表达式2thenwhen条件表达式nthenelseend,case多分支语句,case多分支语句,Goto、return语句,1goto语句句法goto例:查询学生成绩表(tblscore),若存在学号为“31022001”的学生,就显示存在的学生成绩,如果没有则跳过这些语句。if(31022001notin(selectdistinctstud_idfromtblscore)GotoabcBeginPrint已经存在该学生的成绩Selectstud_id学号,course_id课程号,term学期,score成绩Fromtblscorewherestud_id=31022001endabc:print没有该学生的成绩,2return语句该语句可以在存储过程,触发器,函数,批处理和语句块的任何位置使用,其作用是无条件地从存储过程,触发器,函数,批处理和语句块中退出,在return之后的其他语句不会被执行。,标量值型函数,createfunction(参数名输出参数的类型=默认值,.)returns函数返回值类型withencryption-对函数定义的文本加密asbegin函数体return函数返回值-该语句是必须包括的end,用户自定义函数,标量值函数,内嵌表值型函数,createfunction(参数名输出参数的类型=默认值,.)returnstablewithencryptionasreturn(select语句),用户自定义函数,函数返回值为表table,对函数定义的文本加密,内嵌表值型函数,示例7.9,createfunction(参数名输出参数的类型=默认值,.)returns局部变量tablewithencryptionasbegin函数体returnend,多语句表值型函数,用户自定义函数,多语句表值型函数,游标的使用,在数据库应用程序中,操作数据行集合通常有两种方法:一种是数据行集合的整体处理方式,有用户直接对数据行使用T-SQL命令;但是有时应用程序不能有效地将一个数据行集合作为一个整体来处理,他需要一种每次只处理一行或几行数据的机制,此时可以使用另一种基于游标的处理方式游标是以逐行的方式集中处理数据,实际上,它可以看做是一个指针,用以识别数据行集合内指定的行,该行由select查询语句返回,它包含了满足where子句中查询条件的所有数据行。使用游标可以控制对某个特定行的操作,也可以不需要索引定位要操作的数据行,因而可以提供更多的灵活性,使用游标的步骤:,1)声明游标:使用declarecursor声明游标。declare游标名cursorforselect语句2)打开游标:使用open语句填充该游标3)读取游标:使用fetch语句,从结果集中检索特定的一行。在打开一个游标后,它将被放在游标结果集的首行前,必须用fetch语句访问该首行。fetchnextfrom游标名into变量名4)关闭游标:使用close语句关闭游标5)删除游标:使用deallocate语句删除游标引用,游标的使用,声明游标语法结构:,declareinsensitivescrollstatic|keyset|dynamic|fast_forwordcursorforforreadonly|updateof列名1,列名2,.,游标的使用,打开游标语法结构:,open,读取游标语法结构:,fetchnext|prior|first|last|absoluten|nvar|relativen|nvarfrominto变量,.n,关闭和释放游标语法结构:,closedeallocate,示例7.15,游标的使用,定位修改游标数据的语法结构:,updateset列名1=表达式1,列名2=表达式2,wherecurrentof,定位、更新和删除游标的使用,定位删除游标数据的语法结构:,deletewherecurrentof,示例7.16,游标的使用,本章介绍了利用T-SQL的流程控制语句实现复杂的数据库语言编程。T-SQL提供了为数不多的流程控制语句,但它已足以使T-SQL比标准的SQL功能强大很多。流程控制语句包括分支(ifelse和case)、循环(只有while一种,但它可以带continu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论