ransactSQL程序设计课件

上传人:仙*** 文档编号:154327766 上传时间:2022-09-20 格式:PPT 页数:72 大小:354.50KB
收藏 版权申诉 举报 下载
ransactSQL程序设计课件_第1页
第1页 / 共72页
ransactSQL程序设计课件_第2页
第2页 / 共72页
ransactSQL程序设计课件_第3页
第3页 / 共72页
资源描述:

《ransactSQL程序设计课件》由会员分享,可在线阅读,更多相关《ransactSQL程序设计课件(72页珍藏版)》请在装配图网上搜索。

1、ransactSQL程序设计1第四章 Transact SQL 程序设计ransactSQL程序设计2 本章内容:1、如何在T-SQL里面使用变量 2、如何使用语句控制程序的执行顺序 3、如何在T-SQL里面使用函数 4、如何使用批处理语句 5、如何使用游标处理数据ransactSQL程序设计3 在进行数据库应用软件开发的过程中,sql server 和前端开发工具的通讯都是通过T-SQL代码实现的,因此从事数据库管理系统的开发都要了解T-SQL 程序设计ransactSQL程序设计4 作用:在程序设计中变量是用来传递数据的方式之一,它由系统或用户自定义并赋值变量分为:全局变量局部变量4.1

2、变 量ransactSQL程序设计5A:全局变量作用:SQL使用全局变量来记录SQLSERVER 服务器的活动状态。是由系统预先定义好的变量,以开头,用户无法对它进行修改或管理,对于用户来讲是只读的。全局变量的用途ransactSQL程序设计6举例说明1、ERROR 作用:该全局变量将返回最后执行的T-SQL 语句的错误代码,返回值的数据类型 整数.输入SQL语句执行成功则返回0,如果不成功,则返回相关错误信息对 应的错误号而错误信息对应的代码存放在 master.dbo.SYSMESSAGE系统表中ransactSQL程序设计7 eg:使用ERROR变量检验SQL语句是否执行成功select

3、 sno from students where sname=周杰伦if error=0print 你的SQL 语句执行成功ransactSQL程序设计8Eg:使用ERROR全局变量检测在SQL语句中出现的限制冲突假设在数据库的STUDENTS表中为BDAY字段建立了CHECK约束(bday1980-1-1and bday2000 Print 共有+RTRIM(rowcount)+人增长工资ransactSQL程序设计11B:局部变量n在Transact-SQL批处理中用来保存数据值的对象。n作用范围:从申明该局部变量的地方开始,到申明局部变量的批处理或存储过程的地方结尾。ransactSQL

4、程序设计12B:局部变量 如何声明局部变量 使用DECLARE语句来声明T-SQL变量 格式:DECLEAR 变量名称 数据类型可以是系统提供的数据类型,也可以是用户自己定义的数据类型Eg:DECLARE V1 char(20),v2 intransactSQL程序设计13 如何为变量赋值 可以使用SET和SELECT给变量赋值 eg:set v1=常量/变量表达式 eg:select v2=MAX(mgrade)from students print v2 ransactSQL程序设计14补充:运算符 SQL SERVER支持的运算符有算术运算符、比较运算符、字符串连接运算符、逻辑运算符和位

5、运算符ransactSQL程序设计15字符串连接运算符n字符串连接用+号来连接nEG:ABC+123=ABC123 ransactSQL程序设计16运算符优先权括号()求反()乘除(、)加减(+、)按位异或()按位与(&)按位或(|)逻辑非(NOT)逻辑与(AND)逻辑或(OR)ransactSQL程序设计174.3 程序流程控制作用:程序流程控制语句主要用于控制 T-SQL语句、语句块和存储过程的 执行过程。ransactSQL程序设计184.3.1 BEGINEND语句块作用:将多条T-SQL语句组合在一起,组成一个逻辑块,当控制流语句必须执行一个包含一条或两条以上的T-SQL语句的语句块

6、时使用。注意:相当与很多语言中的 ransactSQL程序设计194.3.2 IF ELSE语句 格式 IF (布尔表达式)SQL语句块 ELSE SQL 语句块ransactSQL程序设计20 eg:如果学生表中有入学总分大于400分的学生,请输出信息,否则提示用户没有IF exists(select sno from students where mgrade400)BEGIN PRINT下列学生成绩400 select*from students where mgrade400 END ELSE BEGIN PRINT没有总分大于400的学生 ENDransactSQL程序设计214.3

7、.3.casewhen CASE表达式是一个特殊的T-SQL表达式,它使用户能够方便的实现多重选择的情况。使用CASE表达式,实际上相当于使用多重IF.ELSE语句的嵌套ransactSQL程序设计22CASE表达式语法CASE 字段名或变量名 when 逻辑表示式1 then 结果表达式1 when 逻辑表示式2 then 结果表达式2 when 逻辑表示式3 then 结果表达式3.ELSE 结果表示式END ransactSQL程序设计23Eg:分别输出teachers表中教师姓名和所在的部门,并在部门后面添加部门说明nSELECT tname,dept,部门说明=n CASE dept

8、n when基础部 then 教基础课程的部门n when经管系 then培养经济管理和行政管理的人才n when计算机系then培养计算机高级技术人才n when国际交流系then培养英语实用人才n else 其他 n endn from teachersransactSQL程序设计244.3.4、无条件转移(GOTO)格式:GOTO 标号处作用:本语句将T-SQL语句的执行顺序无条件的转移到用户指定的标号处如何定义标号出:标号名称:ransactSQL程序设计25Eg:使用GOTO语句求10的阶乘DECLARE I int,time int select I=1,time=2 label:

9、select I=I*time select time=time+1 if time=10 GOTO Label else select i,timeransactSQL程序设计26GOTO语句的使用注意情况 在书写程序的过程中,应尽量避免使用GOTO语句,因为过多的GOTO语句可能造成T-SQL处理的逻辑混乱,而难于理解ransactSQL程序设计274.3.5 WHILE语句格式:WHILE 布尔表达式BEGIN 命令程序块END作用:当WHILE后面的布尔表达式为真,会重复执行命令程序块,直到条件不成立时为止ransactSQL程序设计28 通常与WHILE语句同时使用的T-SQL语句有

10、两条:BREAK和CONTINUE。BREAK:执行该语句时,程序无条件的退 出整个WHILE循环结构CONTINUE:执行该语句时,程序无条件的跳过CONTINUE后面的语句,而立即执行下一层循环ransactSQL程序设计29 EG:n判断teachers表中是否有老师的奖金少于300,如果有,则将所有老师的工资增加500,直到所有老师的奖金都多于300(教师工资的30%是奖金)ransactSQL程序设计30WHILE EXISTS(SELECT*FROM teachers where pay*0.3=90 and grade=80 and grade=70 and grade=60 a

11、nd grade70 Then DnElse EnFrom scransactSQL程序设计69作业与上机(2-2):n将字符串“sqlserver”的首字母变成大写Upper(rtrim(substring(sqlserver,1,1)n将students表中的sno第2和第3个字符间增加一个字符9nselect substring(sno,1,2)+9+n substring(sno,3,5)as sno,n sname,classnfrom studentsransactSQL程序设计70n定义一个自定义的函数,该函数是通过的出生年月和当前日期,计算两个日期之间的年份差;返回值为整数,然

12、后调用此函数计算学生信息表表中学生的年龄(学生信息表(学号,姓名,出生年月))n书写语句将SC表中是所有学生的成绩加10分,如果加分以后仍然有小于60分的,那么继续加10分,直到所有学生的成绩超过60分或者有学生的最高分超过100了(最高分不能超过100)所用到的表结构为SC(SNO,CNO,GRADE)ransactSQL程序设计71nCREATE FUNCTION agen (sta as datetime,en as datetime)n returns intn beginnreturn(datediff(year,sta,en)n endnselect 学号,姓名,年龄 =dbo.age(bday,getdate()nfrom studentsransactSQL程序设计72nwhile exists(select*from sc where grade90n breaknend

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!