• 端午节期间济南增开20.5对热门方向列车 2019-05-16
  • 整治凸显民生 采砂更需环保 2019-05-16
  • “国风秦韵”走进上合国家 陕西文创品首次海外巡展 2019-05-08
  • 日本想拥有核弹的愿望是真。一星期之内拥有核弹是超级夸张。 2019-05-08
  • 人民日报评论员:共创中华民族伟大复兴的美好未来 2019-05-08
  • 人民日报创刊70周年 老报人送祝福 2019-05-07
  • 经济日报:微观基础改善 经济稳健可期 2019-05-07
  • 社会主义核心价值观主题微电影征集展示活动作品征集公告 2019-05-06
  • “一带一路”建设与网络媒体责任论坛 2019-05-05
  • 青锋的专栏作者中国国家地理网 2019-05-04
  • 绿色变奏 文化和声(全国精神文明建设先进典型巡礼) 2019-05-04
  • 培育高技能人才 推进高质量发展 2019-05-03
  • 实拍重庆"僵尸车集中营"  警察蜀黍喊“你”来认领! 2019-05-01
  • 说的有道理 。说明我们的教育方向确实是有问题,毛主席当年对教育领域的有关指示是正确的。 2019-05-01
  • 回复@笑傲江湖V:中国人啥不炒?君子兰、普洱茶、大蒜……凡事保存周期比较长的都有人炒,跟市场经济充不充分有啥关系? 2019-04-20
  • 今日福彩3d好运彩字谜
    购买

    ¥20.0

    加入VIP
    • 专属下载券
    • 上传内容扩展
    • 资料优先审核
    • 免费资料无限下载

    上传资料

    关闭

    关闭

    关闭

    封号提示

    内容

    今日福彩3d好运彩字谜 04TransactSQL程序设计

    好运查理第一季字幕:04TransactSQL程序设计.ppt

    04TransactSQL程序设计

    ranfand
    2019-03-07 0人阅读 举报 0 0 0 暂无简介

    今日福彩3d好运彩字谜 www.qwbcf.com 简介:本文档为《04TransactSQL程序设计ppt》,可适用于市场营销领域

    第四章TransactSQL程序设计本章内容:、如何在TSQL里面使用变量、如何使用语句控制程序的执行顺序、如何在TSQL里面使用函数、如何使用批处理语句、如何使用游标处理数据在进行数据库应用软件开发的过程中,sqlserver和前端开发工具的通讯都是通过TSQL代码实现的因此从事数据库管理系统的开发都要了解TSQL程序设计变量作用:在程序设计中变量是用来传递数据的方式之一,它由系统或用户自定义并赋值变量分为:全局变量局部变量A:全局变量作用:SQL使用全局变量来记录SQLSERVER服务器的活动状态。是由系统预先定义好的变量以开头用户无法对它进行修改或管理对于用户来讲是只读的。全局变量的用途举例说明、ERROR作用:该全局变量将返回最后执行的TSQL语句的错误代码,返回值的数据类型整数输入SQL语句执行成功则返回,如果不成功,则返回相关错误信息对 应的错误号而错误信息对应的代码存放在masterdboSYSMESSAGE系统表中eg:使用ERROR变量检验SQL语句是否执行成功selectsnofromstudentswheresname=lsquo周杰伦rsquoiferror=printlsquo你的SQL语句执行成功rsquoEg:使用ERROR全局变量检测在SQL语句中出现的限制冲突假设在数据库的STUDENTS表中为BDAY字段建立了CHECK约束(bday##andbdaylsquo#)updatestudentssetbday=##wheresname=#周迅#iferror=print#你更改的出生日期是不允许的#、rowcount使用作用:该变量将返回受上面SQL语句影响的记录条数返回的数据类型是整数型数据如果不返回记录的SQL语句将返回eg:在update语句中使rowcout检测是否存在发生更改的记录数更新teachers表给pay大于的教师工资增加Updateteacherssetpay=paywherepayPrint#共有#RTRIM(rowcount)#人增长工资#B:局部变量在TransactSQL批处理中用来保存数据值的对象。作用范围:从申明该局部变量的地方开始到申明局部变量的批处理或存储过程的地方结尾。B:局部变量①如何声明局部变量使用DECLARE语句来声明TSQL变量格式:DECLEAR变量名称数据类型可以是系统提供的数据类型也可以是用户自己定义的数据类型Eg:DECLAREVchar(),vint②如何为变量赋值可以使用SET和SELECT给变量赋值eg:setv=常量变量表达式eg:selectv=MAX(mgrade)fromstudentsprintv补充:运算符SQLSERVER支持的运算符有算术运算符、比较运算符、字符串连接运算符、逻辑运算符和位运算符字符串连接运算符字符串连接用号来连接EG:rsquoABCrsquorsquorsquo=lsquoABClsquo运算符优先权括号()求反(~)乘除(times、divide)加减(、mdash)按位异或(^)按位与()按位或(|)逻辑非(NOT)逻辑与(AND)逻辑或(OR)程序流程控制作用:程序流程控制语句主要用于控制TSQL语句、语句块和存储过程的执行过程。BEGINhellipEND语句块作用:将多条TSQL语句组合在一起组成一个逻辑块当控制流语句必须执行一个包含一条或两条以上的TSQL语句的语句块时使用。注意:相当与很多语言中的{}IFhellipELSE语句格式IF(布尔表达式){SQL语句块}ELSE{SQL语句块}eg:如果学生表中有入学总分大于分的学生请输出信息否则提示用户没有IFexists(selectsnofromstudentswheremgrade)BEGINPRINT#下列学生成绩#select*fromstudentswheremgradeENDELSEBEGINPRINT#没有总分大于的学生#ENDcasehellipwhenCASE表达式是一个特殊的TSQL表达式它使用户能够方便的实现多重选择的情况。使用CASE表达式实际上相当于使用多重IFhellipELSE语句的嵌套CASE表达式语法CASE字段名或变量名when逻辑表示式then结果表达式when逻辑表示式then结果表达式when逻辑表示式then结果表达式hellipELSE结果表示式ENDEg:分别输出teachers表中教师姓名和所在的部门并在部门后面添加部门说明SELECTtname,dept,部门说明=CASEdeptwhen#基础部#then#教基础课程的部门#when#经管系#then#培养经济管理和行政管理的人才#when#计算机系#then#培养计算机高级技术人才#when#国际交流系#then#培养英语实用人才#else#其他lsquoendfromteachers、无条件转移(GOTO)格式:GOTO标号处作用:本语句将TSQL语句的执行顺序无条件的转移到用户指定的标号处如何定义标号出:标号名称:Eg:使用GOTO语句求的阶乘DECLAREIint,timeintselectI=,time=label:selectI=I*timeselecttime=timeiftime=GOTOLabelelseselecti,timeGOTO语句的使用注意情况在书写程序的过程中应尽量避免使用GOTO语句因为过多的GOTO语句可能造成TSQL处理的逻辑混乱而难于理解WHILE语句格式:WHILE布尔表达式BEGIN命令程序块END作用:当WHILE后面的布尔表达式为真会重复执行命令程序块直到条件不成立时为止通常与WHILE语句同时使用的TSQL语句有两条:BREAK和CONTINUE。BREAK:执行该语句时程序无条件的退出整个WHILE循环结构CONTINUE:执行该语句时程序无条件的跳过CONTINUE后面的语句而立即执行下一层循环EG:判断teachers表中是否有老师的奖金少于如果有则将所有老师的工资增加直到所有老师的奖金都多于(教师工资的是奖金)WHILEEXISTS(SELECT*FROMteacherswherepay*)BEGINUPDATEteacherssetpay=payENDRETURN语句作用:无条件终止查询、存储过程或批处理。RETURN后面的语句将不再执行。主要用于存储过程中Waitfor语句作用:挂起执行连接直到超过指定的时间间隔或者达到一天中指定的时间。语法格式:指定时间间隔:Waitfordelay时间间隔固定时间点:Waitfortime时间值EG在执行SELECT语句之前等待两秒Waitfordelayrsquo::rsquoSelectsno,snameFromstudentsWhereclass=rsquo物流rsquo下例在晚上:执行指定存储过程WAITFORTIME#:#EXECUTEupdateallstatsSQLServer函数、系统函数可以使用户在不访问系统表的情况下获取SQLServer系统表中的信息。Collength返回列长度EG:返回students表中sname字段的长度Selectcollength(lsquostudentsrsquo,rsquosnamersquo)as字段长度Fromstudents、聚合函数作用:用于计算SELECT语句查询行的统计值通常与GROUPBY语句一起使用对表分组统计。聚合函数函数参数功能COUNT(ALLDISTINCTexpression)计算表示式的数量TISTINCT用于删除重复MIN(expression)表达式的最小值忽略空值MAX(expression)表达式的最大值忽略空值函数参数功能SUM(ALLDISTINCTexpression)计算表达式所有值的和忽略空值AVG(ALLDISTINCTexpression)计算表达式平均值忽略空值字符串函数日期与时间函数数学函数字符串函数举例、SUBSTRING(expression,start,length)从expression的第start个字符处返回length个字符。PrintSUBSTRING(lsquoDIELDOSPOErsquo,,)结果:DOS、RTRIMRTRIM(expression)截断字符串中所有尾随空格。返回数据类型为varchar、STR(floatexpr,length,decimal)作用:将一个数值型数据转换为字符串length为字符串的长度decimal小数点后的位数(char)Eg:STR(,,)则结果是:日期和时间函数举例、GETDATE()作用:取的当前的日期、DATEPART(返回的日期部分日期)作用:返回日期的指定日期部分的整数。返回类型:int、DATEDIFF(datepart,date,date)作用:返回两个日期之间的时间间隔DATEDIFF(year,##,##)最终结果:PRINTDATEADD(MONTH,,##)、DATEADD(datepart,number,date)作用:给指定的日期的某一部分增加值datepart:指定部分number:增加的整数值date:指定的日期数学函数举例ABS(数字表达式)返回给定数字表达式的绝对值返回数据类型和给定数字表达式的数据类型相同。Eg:ABS()结果:用户自己定义的函数用户可以在SQLSERVER中创建自己的函数来补充和扩展系统支持的内置函数。用户自定义函数的输入参数可以有多个也可以没有。、用户函数的定义可以利用CREATEFUNCTION语句创建用户自己定义的函数创建语句指定输入参数的数据类型处理的过程以及函数最后的返回值语法格式:CREATEFUNCTION函数名(参数名称数据类型)RETURNS返回数据类型BEGIN函数内容RETRUN表示式ENDEG:定义个用来计算员工奖金的函数返回员工的奖金(工资的就是奖金)CREATEFUNCTIONbonus(salarysmallmoney)RETURNSsmallmoneyBEGINRETURN(salary*)END、函数的调用调用刚刚定义的奖金的函数求所有教师的奖金selecttname,dbobonus(pay)fromteachers注意:在调用函数的过程中要指明函数的拥有者和函数的名称和参数用户定义函数类型SQLServer支持种用户定义函数:标量函数(Scalarfunctions)、内嵌表值函数(Inlinetablevaluedfunctions)多语句表值函数(Multistatementtablevaluedfunctions)。标量函数返回在RETURNS子句中定义的类型的单个数据值??梢允褂盟斜炅渴堇嘈桶╞igint和sqlvariant。不支持timestamp数据类型、用户定义数据类型和非标量类型。表值函数返回table。对于内嵌表值函数没有函数主体表是单个SELECT语句的结果集。对于多语句表值函数在BEGINEND块中定义的函数主体包含TRANSACTSQL语句这些语句可生成行并将行插入返回的表中。、删除函数DROPFUNCTION函数名称DROPFUNCTIONbonussect游标作用:通常情况下关系数据库中的操作总是对整个记录集产生影响例如使用SELECT语句检索数据表时将得到所有满足该语句where子句中条件的记录而在实际应用过程中经常需要每次处理一条或者一部分记录。在这种情况下需要使用游标在服务器内部处理结果集合他可以有助于识别一个数据集合内部指定的记录从而可以有选择的按记录执行操作一:声明游标DECLAREcursornameCURSORLOCAL|GLOBALFORWARDONLY|SCROLLREADONLYFORselectstatementFORUPDATEOFcolumnname,n例子:声明一个游标选取所有籍贯是ldquo宁波rdquo的学生作为结果集为该结果集声明只读游标declarepmcursorcursorscrollreadonlyforselect*fromstudentswherebplace=#宁波#二、打开和使用游标打开游标:Open游标例:使用刚才申明的游标读取结果集中的所有记录。openpmcursorfetchnextfrompmcursorwhilefetchstatus=beginfetchnextfrompmcursorend三、关闭和释放游标在某个游标打开以后SQLSERVER服务器会自动特地为这个游标开辟一定的内存空间这些内存空间将用来存放游标操作的数据结果集。因此如果不再使用某个游标一定要将该游标关闭这样服务器就会释放该游标所占用的相关资源。关闭游标的语法格式:Close游标名称如果关闭了一个游标可以在需要时再次打开和使用它而不必重新申明。即使关闭游标结构还是会占用一定的计算机资源所以如果一个游标不再使用应及时将游标释放收回被占用的计算机资源。释放游标的语法格式:Deallocate游标名称注意:一旦释放游标如果要再次使用必须重新申明。使用批处理批处理是指包含一条或者多条TransactSQL语句的语句组这样的语句组从应用程序一次性的发送到SQLServer服务器执行。批处理命令是以GO为结束标志。作业与上机():书写语句将teachers表中计算机系教师的工资增长并使用全局变量检查更新过程中是否出错(所用到的表结构如下:teachers(tno,dept,pay)其中TNO代表教师编号DEPT代表教师系别PAY代表教师的工资)UpdateteachersSetpay=payWheredept=lsquo计算机系rsquoIferror=Printlsquo更新过程没有出错rsquoElsePrintlsquo更新过程出错rsquo查看STUDENTS信息表中是否有学号为lsquorsquo名字为lsquo李菊rsquo的学生如果有则显示已经存在该学生的信息否则插入该学生的信息(涉及到的表的结构为students(sno,sname))分别输出sno,cno,grade,在成绩后面添加一列将成绩从百分制转化为五级记分制Ifexists(select*fromstudentswheresname=lsquo李菊rsquo)Beginprintlsquo存在此人信息:rsquoselect*fromstudentswheresname=lsquo李菊rsquoEndElseBeginPrintlsquo添加此人信息rsquo:insertintostudents(sno,sname)valuse(,rsquo李菊rsquo)EndSelectsno,cno,grade,成绩等级=caseWhengrade=andgrade=ThenrsquoArsquoWhengrade=andgradeThenrsquoBrsquoWhengrade=andgradeThenrsquoCrsquoWhengrade=andgradeThenrsquoDrsquoElselsquoErsquoFromsc作业与上机():将字符串ldquosqlserverrdquo的首字母变成大写Upper(rtrim(substring(lsquosqlserverrsquo,,)))将students表中的sno第和第个字符间增加一个字符lsquo#selectsubstring(sno,,)##substring(sno,,)assno,sname,classfromstudents定义一个自定义的函数该函数是通过的出生年月和当前日期计算两个日期之间的年份差返回值为整数然后调用此函数计算学生信息表表中学生的年龄(学生信息表(学号姓名出生年月))书写语句将SC表中是所有学生的成绩加分,如果加分以后仍然有小于分的,那么继续加分,直到所有学生的成绩超过分或者有学生的最高分超过了(最高分不能超过)所用到的表结构为SC(SNO,CNO,GRADE)CREATEFUNCTIONage(staasdatetime,enasdatetime)returnsintbeginreturn(datediff(year,sta,en))endselect学号,姓名,年龄=dboage(bday,getdate())fromstudentswhileexists(select*fromscwheregrade)beginupdatescsetgrade=gradeif(selectmax(grade)fromsc)breakend

    用户评价(0)

    关闭

    新课改视野下建构高中语文教学实验成果报告(32KB)

    抱歉,积分不足下载失败,请稍后再试!

    提示

    试读已结束,如需要继续阅读或者下载,敬请购买!

    评分:

    /72

    ¥20.0

    立即购买

    VIP

    意见
    反馈

    今日福彩3d好运彩字谜
  • 端午节期间济南增开20.5对热门方向列车 2019-05-16
  • 整治凸显民生 采砂更需环保 2019-05-16
  • “国风秦韵”走进上合国家 陕西文创品首次海外巡展 2019-05-08
  • 日本想拥有核弹的愿望是真。一星期之内拥有核弹是超级夸张。 2019-05-08
  • 人民日报评论员:共创中华民族伟大复兴的美好未来 2019-05-08
  • 人民日报创刊70周年 老报人送祝福 2019-05-07
  • 经济日报:微观基础改善 经济稳健可期 2019-05-07
  • 社会主义核心价值观主题微电影征集展示活动作品征集公告 2019-05-06
  • “一带一路”建设与网络媒体责任论坛 2019-05-05
  • 青锋的专栏作者中国国家地理网 2019-05-04
  • 绿色变奏 文化和声(全国精神文明建设先进典型巡礼) 2019-05-04
  • 培育高技能人才 推进高质量发展 2019-05-03
  • 实拍重庆"僵尸车集中营"  警察蜀黍喊“你”来认领! 2019-05-01
  • 说的有道理 。说明我们的教育方向确实是有问题,毛主席当年对教育领域的有关指示是正确的。 2019-05-01
  • 回复@笑傲江湖V:中国人啥不炒?君子兰、普洱茶、大蒜……凡事保存周期比较长的都有人炒,跟市场经济充不充分有啥关系? 2019-04-20
  • 福利彩票刮刮乐骗局 北京赛车pk10五码计划 深圳快乐时时彩走势图 新时时彩大奖排行榜 双色球开奖结果双今天 网站彩票大奖会兑现吗 几月份买彩票中大奖 时彩老时时彩 广发彩票网 爱彩网即比分直播 2017131期福利彩票开奖结果 双色球111复式票中31 nba篮彩让分胜负投注技巧 新曾道内部玄机马报 20选5开奖结果走势图 淘金盈娱乐城