收藏 分销(赏)

第五章T-SQL程序设计-PPT课件.ppt

上传人:天**** 文档编号:6540709 上传时间:2024-12-12 格式:PPT 页数:32 大小:410KB
下载 相关 举报
第五章T-SQL程序设计-PPT课件.ppt_第1页
第1页 / 共32页
第五章T-SQL程序设计-PPT课件.ppt_第2页
第2页 / 共32页
第五章T-SQL程序设计-PPT课件.ppt_第3页
第3页 / 共32页
第五章T-SQL程序设计-PPT课件.ppt_第4页
第4页 / 共32页
第五章T-SQL程序设计-PPT课件.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,第,5,章,Transact-SQL,程序设计,5.2,变量,5.3,运算符,5.1,注释,5.5,流程控制语句,5.4,函数,1,能力目标,掌握,Transact-SQL,的语法结构;,学会,Transact-SQL,变量和函数的用法;,了解,Transact-SQL,各种控制结构的区别,和用法。,2,态度目标,团队精神;,态度积极;,任务按时完成;,出勤。,3,重点难点,重点:,掌握,Transact-SQL,的语法结构。,难点:,学会使用,Transact-SQL,语言编写程序。,4,案例一,declare x int,y int,

2、i int-,局部变量的定义,select i=1,x=0,y=0 /*,局部变量赋值,等同于,set i=1*/,while(idegree,项目二,演示局部变量的作用,Declare msg varchar(50),Set msg=,hello world!,Go,Print msg,go,7,项目三,按学号查询,查询是否存在,040302,的同学记录并显示相应信息,declare sno char(8),set sno=,040302,if sno=(select s_number from t_student where s_number=,040302,),print,学号为,+sn

3、o+,的同学存在,else,print,学号为,+sno+,的同学不存在,注:可以使用,exists,8,项目三,查询学生表中,7,月份出生的学生人数,以标题,人数,输出,declare number int,set number=7,select count(*)as,人数,from t_student where month(birthday)=number,9,5.1,注释,注释是表示用户提供的说明内容。有两种格式:,单行注释,:使用两个联在一起的减号,“,-,”,作为注,释内容标记,其后为注释内容。,多行注释,:使用,“,/*,注释内容*,/,”,格式。可以将注,释插入单独行中或嵌套(

4、只限,“,-,”,)在,Transact-SQL,命令行的末端或者,Transact-SQL,语句中。服务器不对,注释进行解释。,注意:不要将,GO,命令包含在注释中。,10,5.2,变量,1.,局部变量定义,DECLAER,变量名称 数据类型,|,游标变量名称,CURSOR,n,2.,局部变量的赋值,使用,SET,命令或,SELECT,命令对局部变量赋值。,SET,变量名称,=,表达式,或,SELECT,变量名称,=,表达式,n,3.,系统全局变量,全局变量是由系统提供且预先声明的变量,通过,在名称前保留两个,符号区别于局部变量,(IDENTITY,ERROR),11,5.3,运算符,1.,

5、算术运算符,+,,,-,,,*,,,/,,,%,(模余),2.,赋值运算符,=,3.,按位运算符,&,(按位与运算)、,|,(按位或运算)和,(按位异或运算,4.,比较运算符,=,、,、,=,、,=,、,、,!=,、,!,12,5.3,运算符,5.,逻辑运算符,13,5.3,运算符,5.,字符串串联运算符,字符串串联运算符允许通过加号(,+,)进行字,符串串联。,例如:,print,abc,+,123,的输出结果是,abc123,。,7.,一元运算符,+,(数值为正)、,-,(数值为负)和,(返回数,值的补数即按位,NOT,),14,5.4,函数,1.,聚合函数,AVG(ALL|DISTINC

6、T expression),返回平均值,COUNT(ALL|DISTINCT expression|*),返回统计记录行数,MAX|MIN(ALL|DISTINCT expression),返回最大,|,最小值,SUM(ALL|DISTINCT expression),返回汇总和,15,5.4,函数,2.,标量函数,GETDATE(),获取服务器系统日期时间,3.,数学函数,ROUND(numeric_expression,length ,function ),4.,字符串函数,SUBSTRING(expression,start,length),16,5.4,函数,5.,用户自定义函数,语法

7、格式,1,:标量函数(,Scalar Functions,),CREATE FUNCTION schema_name.function_name(parameter_name AS type_schema_name.,parameter_data_type,=default ,.n,),RETURNS return_data_type,WITH ,.n ,AS,BEGIN,function_body,RETURN scalar_expression,END;,17,5.4,函数,5.,用户自定义函数,语法格式,2,:内嵌表值函数,(,Inline Table-Valued Functions,

8、),CREATE FUNCTION schema_name.function_name,(parameter_name,AS type_schema_name.,parameter_data_type,=default ,.n,),RETURNS TABLE,WITH ,.n ,AS,RETURN (select_stmt ),;,18,5.4,函数,5.,用户自定义函数,语法格式,3,:多语句表值函数,(,Multistatement Table-Valued Functions,),CREATE FUNCTION schema_name.function_name,(parameter_n

9、ame,AS type_schema_name.,parameter_data_type,=default ,.n,),RETURNS return_variable TABLE,WITH ,.n ,AS,BEGIN,function_body,RETURN,END;,19,5.5,流程控制语句,1.,BEGIN.END,语句,【,案例,5.2】,从,goods,表中,判断商品售价是否大于,2800,,并显示售价大于,2800,的商品名称和实际售价。,BEGIN,sql_statement|statement_block,END,IF(SELECT AVG(saleprice)FROM goo

10、ds)=2800,BEGIN,PRINT,下面列出的是售价大于,2800,的商品名称和实际售价。,PRINT ,SELECT gname AS,商品名称,saleprice AS,售价,FROM goods,WHERE saleprice=2800,END,ELSE,PRINT,售价不到,2800,元。,20,5.5,流程控制语句,2.,IF,ELSE,语句,【,案例,5.3】,使用多个,IF.ELSE,块,对产品型号为,“,MAC,重型机械,”,的产品平均价格和,2800000,比较,分别显示在,2800000,上下的该类产品,的名称。,IF Boolean_expression,sql_s

11、tatement|statement_block,ELSE,sql_statement|statement_block ,21,5.5,流程控制语句,项目四,判断,SALES,数据库是否有商品的库存少于,10,,如果有,则将每一商品都入货,50,,直至所有商品的库存量都多于,10,或者有商品的库存量超过,200,While exists(select*from goods where number200,break,end,22,5.5,流程控制语句,3.CASE,语句,格式,1,:简单,CASE,函数,CASE input_expression,WHEN when_expression TH

12、EN result_expression .n,ELSE else_result_expression,END,格式,2,:,CASE,搜索函数,CASE,WHEN Boolean_expression THEN result_expression,.n,ELSE else_result_expression,END,23,5.5,流程控制语句,4.WHILE,语句,WHILE Boolean_expression,sql_statement|statement_block,BREAK,sql_statement|statement_block,CONTINUE,24,WAITFOR,语句,两

13、种用法:,waitfor delay:,使查询在一段时间间隔后继续执行,例:,waitfor delay,00:00:05,select gname,manufacturer,costprice from goods where indate=,2005-1-1,waitfor time,:使查询在某一时刻继续执行,例:,waitfor time,9:25:50,select gname,manufacturer,costprice from goods where indate=,2005-1-1,25,12 十二月 2024,Oracle 10g,管理及应用,5.6,游标基本操作,如果希望

14、对,SELECT,结果集中的数据进行逐行处理操作,需要用到游标。游标中有一个指针,通过,FETCH,语句行动该指针。,在通过游标对表的行数据进行处理的操作过程,主要包括以下四步:声明游标、打开游标、提取数据和关闭游标。,1,声明游标,声明游标就是声明变量,使变量成为指定的,PL/SQL,控制结构。,声明游标的语法格式如下所示:,DECLARE,游标名,CURSOR FOR SELECT,语句,2,打开游标,在游标声明以后,读取数据之前,必须先打开游标才能使用游标,打开游标使用,OPEN,语句,其语法格式如下所示:,OPEN,游标名,;,26,12 十二月 2024,Oracle 10g,管理及

15、应用,5.6,游标基本操作,3,提取数据,提取数据操作是通过游标处理表中的各数据行,提取数据时,需要把游标中的数据行提取到对应结构的变量中。,提取数据的命令为,FETCH,,其语法格式如下所示:,FETCH,游标名,INTO,变量,1,变量,2,4,关闭游标,在游标使用完之后,必须要关闭游标。关闭游标使用,CLOSE,语句,其语法结构如下所示:,CLOSE,游标变量名,;,使用游标主要用于逐行处理数据表中的数据,27,使用游标从学生信息数据库中查询学生的信息,DECLARE stu_cursor CURSOR FOR,SELECT*FROM t_student,OPEN stu_cursor,

16、FETCH NEXT FROM stu_cursor,WHILE(FETCH_STATUS=0),BEGIN,FETCH NEXT FROM stu_cursor,END,28,案例分析,使用案例数据库,eTradeInfo,,在,“,SQL Server,Management Studio,”,管理窗口中,完成以下题目对象,创建和,Transact-SQL,代码调试。,1.,编写一个函数,返回所有价格在,80,至,530,元的,U,盘的生,产数量。,2.,编写一个函数,返回员工,“,李小鹏,”,在,2007,年第,2,季度销,售的产品名称、数量。,3.,编写一个函数,返回,“,生产部,”,所

17、有员工销售产品的员,工姓名、职位以及客户姓名、地址等信息。,4.,编写一段代码,根据商品库存数量显示相应的提示,,如果库存量小于,500,,显示,“,库存已到临界,需进货,”,;如果库,存书量大于,5000,,显示,“,库存量太大,是否降价促销?,”,。,5.,编写一段代码,自,2000,年以来,销售数量超过,50000,的员工和所在部门员工分别提高薪水,10%,和,5%,。,29,案例分析,要求,:,1.,正确用,T-SQL,语句编写三种格式的自定义,函数,并在,“,SQL,编辑器,”,窗口中调试;,2.,正确调用自定义函数;,3.,熟练掌握自定义函数的代码调试技术。,问题:,1.,不带传递

18、参数的自定义函数有何要求格式?,2.,为何调用自定义函数需要用户名?,讨论:,当查询返回多个值时,使用第,2,种格式与第,3,种格式有何异同?,30,本章小结,从语言体系结构出发,介绍,Transact-SQL,语言元,素的构成、语法和用法,讲解了,Transact-SQL,的各种,系统函数及其调用方法。,系统函数,是实现数据库操作和编程的重要组成部,分,正确理解和使用这些系统函数具有重要意义。,SQL Server 2005,支持用户自定义的函数,为用户,编写私有的专用函数提供了手段,从而增强了编程的,灵活性。,31,作业:,1.t-sql,中的变量划分,局部变量如何声明和赋值,2.,游标应如何使用,3.,测试学生表中是否有,张三,这个学生,如果有,显示该学生信息,否则显示,无此人信息,!,4.,查询,电子商务,这门课程的成绩并按成绩折算为等级,:60,不及格,60-70,及格,70-90,良好,90-100,优秀,其他情况定为,无成绩,5.,使用游标修改数据,查找,s_number,是,20040101,的学生,修改该生的,6,号课程成绩,加上,5,分,32,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服