单元9Transact-SQL语言编程.ppt

上传人:sh****n 文档编号:12702999 上传时间:2020-05-14 格式:PPT 页数:24 大小:556.50KB
返回 下载 相关 举报
单元9Transact-SQL语言编程.ppt_第1页
第1页 / 共24页
单元9Transact-SQL语言编程.ppt_第2页
第2页 / 共24页
单元9Transact-SQL语言编程.ppt_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单元9Transact-SQL语言编程,大型数据库,济宁职业技术学院数据库课程组,2,学习目标,【知识目标】掌握T-SQL语言的标识符、表达式、运算符、常量与变量的使用。掌握常用函数的使用方法。掌握常用系统存储过程的使用方法。会使用流控语句。【技能目标】会运用Transcact-SQL语言编写程序。,3,任务陈述,小李需要使用SQLServer编写程序:1、计算N!。2、计算1+2+.10000和。3、显示两个整数中的较大者。4、查看SQLServer版本信息。5、使用函数显示系统时间。,4,引用数据库对象的方法,前面引用的数据库对象都是基于对当前服务器上的实例、当前连接的数据库、并以sa的身份使用数据库对象。如果访问的数据库是其它服务器上的实例、非当前连接的数据库,或者以数据库对象所有者的身份来使用数据库时,可以采用如下方法引用数据库对象:server_name.database_name.owner_name.object_namedatabase_name.owner_name.object_nameowner_name.object_nameobject_name注意:方括号内的表示可选,当省略时圆点不可以省略:database_name.object_name,5,引用数据库对象的方法,启动SQLServer时,通常情况下master为当前数据库。此时查询“00多媒体”班的班级编号的SQL语句可写为:SELECTClassNoFROMHANDSQL2008.Xk.DBO.ClassWHEREClassName=00多媒体GOSELECTClassNoFROMXk.DBO.ClassWHEREClassName=00多媒体GOSELECTClassNoFROMXk.ClassWHEREClassName=00多媒体GO说明:HANDSQL2008为服务器命名实例,必须用括起来。Class的所有者是DBO(DataBaseOwner),6,Transact-SQL的语法元素,标识符(1)常规标识符:首字符为下列之一:26个大小写字母a-z、A-Z、下划线_、或#。其它字符可为大小写字母、十进制数字。、$、#、_。不允许嵌入空格或其他特殊字符。(2)分隔标识符:用双引号“”或者方括号分隔标识符。数据类型:请见教材29页。运算符:请见教材41-42页。表达式:函数:系统函数、用户自定函数注释:-或者/*/保留关键字:,7,练习1,下面的标识符是否符合SQLServer的命名规则?$tabletable#_var_1orderdetailsorder,8,常量和变量,回顾:何为常量?何为变量?常量(179页):字符串常量数值常量日期常量注:1、引用数值常量不用单引号,引用日期、字符串常量时需要加单引号2、如果字符串常量中包含有单引号,如ImaStudent,可以使用两个单引号表示这个字符串常量内的单引号,即表示为:ImaStudent。3、字符串常量前加上字符N表明该字符串常量是Unicode字符串常量。每个字符都使用两个字节存储。,9,变量,变量:在程序运行过程中其值是变化的量。变量类型:局部变量、全局变量。1、局部变量:以开头。必须先声明(使用DECLARE),然后再使用。【阅读程序】说明程序功能。DECLAREvar1int,var2moneySELECTvar1=50,var2=$29.95-赋值SELECTvar1,var2-显示变量的值2、全局变量:也称配置函数,以开头;它是系统定义的变量,用户只能使用。请说出如下语句的作用:SELECTversionSELECTrowcountSELECTservername,10,运算符,SQLServer提供有算术运算符、比较运算符、逻辑运算符、一元运算符、字符串连接运算符、赋值运算符、位运算符。算术运算符(+、*、/、%)比较运算符(=、=、!=、!)逻辑运算符(NOT、OR、AND、IN、LIKE、BETWEEN、EXISTS)一元运算符:+(正)、-(负)、(按位NOT)字符串连接运算符()赋值运算符(=)位运算符(&、|、),11,批处理,批处理的特点:一次发给数据库服务器的所有SQL语句,由GO作为结束标志。编译成一个可执行单元_执行计划执行时,每次执行计划中的一条语句特别注意:如果在一个批处理中,某条语句存在语法错误,SQLServer将不执行批处理中的任何语句。除了CREATEDATABASE、CREATETABLE和CREATEINDEX之外,其它大部分的CREATE命令要单独作为一个批,即以GO结束。,12,批处理,【问题91】创建显示Student表信息的视图V_Test,然后显示课程表的信息。USEXkCREATEVIEWV_TestASSELECT*FROMStudentSELECT*FROMCourseGO执行该段程序时,会遇到什么问题,为什么,如何解决?如下程序,有问题吗?DECLAREMyVarINTGOSELECTMyVar=33GO,13,流控语句,流控语句:流程控制语句。可以实现程序的三种基本结构。1IF语句2BEGIN.END3WHILE(条件)4GOTO语句5RETURN6CASE语句7PRINT语句:用于显示字符型数据。8、WAITFOR语句:WAITFORDELAYtime_延迟一段时间WAITFORTIMEtime_等待到一个时刻,14,SQLServer编程,【问题92】编写计算50与60之和的程序。【问题93】显示Course表中有多少类课程。要求声明局部变量、并进行赋值,然后显示局部变量的值。【问题94】计算1+2+3+4+100的和,并显示计算结果。【问题95】iNum1和iNum2为两个整型数,其值分别为76和90,编程,显示连个数中较大的那个数。,15,SQLServer编程,【问题96】对课程进行分类统计,要求显示课程类别、课程名称和报名人数,计算各类课程的平均报名人数。查询结果要按照课程类别、报名人数升序排序。【问题97】修改【问题95】的程序,输出结果时显示“两个数中较大的数为iNum”。,16,SQLServer编程,【问题94】计算1+2+3+4+100的和,并显示计算结果。编程思想(流程图):代码:分析:WHILE、BEGINEND、IFELSE、GOTO的使用用法,17,SQLServer编程,【练一练】1、编写程序,计算n!(n=20),并将结果显示出来2、在Xk数据库中显示班级编码、班级名称和系部名称(当系部编码为01时,显示系部名称为“计算机系”;当系部编码为02时,显示系部名称为“建筑系”;当系部编码为03时,显示系部名称为“旅游系”),要求使用CASE语句。,18,常用函数,思考:如何将数值型数据转换为字符型数据?如何截取字符串?如何通过出生年月使用日期函数计算出年龄?如何对一个数进行取整?进行四舍五入?函数:系统函数、用户自定义函数,19,系统(内置)函数,聚合函数:已讲。教材48-49页排序函数:已讲。教材57页。字符串函数:188页日期函数:190页系统函数:192页数学函数:191页元数据函数:193页安全函数:193页配置函数:194页,20,用户自定义函数,用户定义函数是由一个或多个T-SQL语句组成的子程序,一般为便于重用。用户定义函数可以有输入参数并有返回值,但没有输出参数。当函数的输入参数有默认值时,调用该函数时必须明确指定DEFAULT关键字才能获取默认值。使用CREATEFUNCTION创建用户定义函数;使用ALTERFUNCTION修改用户定义函数;使用DROPFUNCTION删除用户定义函数。,21,创建用户自定义函数,【问题926】使用T-SQL语句在Xk数据库中创建名为CalcRemainNum的用户定义函数,它计算课程剩余的选课名额,并将用户定义函数绑定到Course表上。CREATEFUNCTIONCalcRemainNum(Xdecimal(6,0),Ydecimal(6,0)RETURNSdecimal(6,0)ASBEGINRETURN(X-Y)ENDGO,22,使用自定义函数,使用自定义函数:方法1:ALTERTABLECourseADDRemainNumASdbo.CalcRemainNum(LimitNum,ChooseNum)GO方法2:-删除列RemainNumALTERTABLECourseDROPCOLUMNRemainNumGOSELECT*,dbo.CalcRemainNum(LimitNum,ChooseNum)RemainNumFROMCourse,23,单元小结,重点掌握:SQLServer中标识符的命名规则学会使用局部变量和全局变量学会使用一些常用的函数流控语句学会根据需要编写SQL程序学会编写和使用自定义函数。,24,复习与巩固,本单元:196页1、思考与练习2、实训,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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