第09章 T-SQL编程.pptx
《第09章 T-SQL编程.pptx》由会员分享,可在线阅读,更多相关《第09章 T-SQL编程.pptx(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:第09章 T-SQL编程数据库设计与应用主讲:张成叔微信(QQ):7153265 微信公众号:张成叔第 9 章 T-SQL编程第1章 创建和管理数据库变量的使用2 2 输出语句 逻辑控制语句1 13 3目 录 T-SQL不但有强大的结构化查询功能,和其他高级语言类似,它本身也具有变量、运算和流控制等功能,也可以利用T-SQL语言进行编程,从而可以完成比较复杂的功能。T-SQL编程n局部变量 局部变量是用户自己定义并使用的变量,使用符号作为前缀。u局部变量的声明 使用变量-声明变量name,最多可以存储个字符DECLARE name varchar(8)DECLARE number
2、int -声明一个存放学号的变量numberDECLARE variable_name DataType 演示演示 语法语法u局部变量的赋值 局部变量的赋值有两种方法:使用SET语句和SELECT语句。使用变量SET variable_name=value 语法语法SELECT variable_name=value注意注意1. SET赋值语句一般用于赋给变量指定的数据常量;赋值语句一般用于赋给变量指定的数据常量;SELECT赋值语句一般用赋值语句一般用于从表中查询数据。于从表中查询数据。2. SELECT语句需要确保筛选的记录不多于一条。如果查询的记录多于一条,语句需要确保筛选的记录不多于一
3、条。如果查询的记录多于一条,则将把最后一条记录的值赋给变量。则将把最后一条记录的值赋给变量。n需求说明u 查找与“胡仲友”的学号相邻的学生信息。u首先查询“胡仲友”的学号。u 对“胡仲友”的学号加1或减1,然后进行查询。注意要将学号转换为整型后才可以进行加1或者减1。【演示1】查找相邻学生信息n 演示代码【演示1】查找相邻学生信息USE SchoolDBGO/*查找胡仲友的信息*/DECLARE name varchar(8)SET name=胡仲友胡仲友SELECT StudentNo,StudentName,BornDate,AddressFROM StudentWHERE Student
4、Name=namen 演示代码(续)【演示1】查找相邻学生信息/*查找与胡仲友学号相邻的学生信息*/DECLARE StudentNo nvarchar(50)-使用SELECT赋值, StudentNo中存储胡仲友的学号 SELECT StudentNo=StudentNo FROM StudentWHERE StudentName=name-定义变量用于保存学号后面的数字DECLARE StuNo int-使用SET赋值,将学号转换为整型SET StuNo=CONVERT(int,SUBSTRING(StudentNo,2,7)SELECT StudentNo,StudentName,Bo
5、rnDate,AddressFROM StudentWHERE (CONVERT(int,SUBSTRING(StudentNo,2,7)=StuNo+1) OR (CONVERT(int,SUBSTRING(StudentNo,2,7)=StuNo-1)GOn全局变量 全局变量是SQL Server系统内部使用的变量,通常存储一些SQL Server的配置设定值和统计数据。 全局变量使用两个符号作为前缀。 常用的全局变量有ERROR(返回执行的上一个 Transact-SQL 语句的错误号)、VERSION(返回当前的 SQL Server 安装的版本)等。使用变量n技能要点u 局部变量的声
6、明和使用。 n 需求说明u 用字符“”拼成如下图所示的三角形。实训1-使用局部变量n 关键点分析u 声明T-SQL局部变量,初始化变量值为“” ,并用PRINT语句显示三角形图形。实训1-使用局部变量一起努力 共同提高第1章 创建和管理数据库变量的使用1 1 输出语句 逻辑控制语句2 23 3目 录n输出语句 输出语句用于显示处理的数据结果。常用的输出语句有两种,即PRINT语句和SELECT语句。输出语句PRINT 局部变量或字符串 语法语法SELECT 局部变量 AS 自定义列名n需求说明u(1)使用PRINT语句和全局变量输出服务器名称和SQL Server的版本。u(2)使用SELEC
7、T语句和全局变量输出服务器名称和SQL Server的版本。【演示2】输出语句的应用n 演示代码【演示2】输出语句的应用PRINT 服务器的名称:服务器的名称:+SERVERNAMEPRINT SQL Server的版本的版本+VERSIONSELECT SERVERNAME AS 服务器名称服务器名称SELECT VERSION AS SQL Server的版本的版本注意注意用用PRINT语句输出的结果将在语句输出的结果将在“消息消息”窗口中以文本方式显示,用窗口中以文本方式显示,用SELECT语句输语句输出的结果将在结果窗口中以表格方式显示出的结果将在结果窗口中以表格方式显示 使用PRIN
8、T语句要求以单个变量或字符串表达式作为参数,而“+”运算符作为连接两个字符串的连接符,要求“+”运算符两侧的操作的数据类型必须是一致。 如下语句会报错。 解决方式是使用转换函数,把数值转换为字符串,如下所示。或类型转换函数PRINT 当前错误号当前错误号 + ERRORPRINT 当前错误号当前错误号 + CONVERT(VARCHAR(5),ERROR)PRINT 当前错误号当前错误号 + CAST(ERROR AS VARCHAR(5)n需求说明u(1)为学生信息表Student插入一条数据。u(2)更新Student中学号为G1463341的学生信息n 演示代码【演示3】全局变量的 演示
9、【演示3】全局变量的 演示INSERT INTO Student (StudentNo,StudentName,GradeId,Sex,Phone,BornDate,IdentityCard) VALUES(G1463341,武松武松,1,男男PRINT 当前错误号当前错误号+CONVERT(varchar(5),ERROR)UPDATE Student WHERE StudentNo=G1463341PRINT 当前错误号当前错误号+CONVERT(varchar(5),ERROR)GOn执行结果 ERROR用于表示最近一条SQL语句是否有错误。如果有错误,则返回非零的值。第一次INSERT
10、语句没错,所以为0;第二次UPDATE语句违反了身份证号码不能超过18位的数据类型,所以错误号不为0。【演示3】全局变量的 演示n技能要点u 使用变量保存查询数据和数据类型的转换。 n 需求说明u 查询学号是G1363302的学生姓名和年龄,并输出比他大1岁或小1岁的学生信息。实训2-使用类型转换函数输出n关键点分析u 使用日期函数DATEDIFF()和数学函数FLOOR(),根据出生日期计算得到学生年龄u 为了将姓名和年龄在一行输出,首先使用CAST()将整数类型的年龄转换为字符类型,然后使用字符串连接符“+”将姓名和转换后的年龄相连。u 使用日期函数DATEPART()获得学生的出生年份。
11、u 为了把输出的表格数据和文本消息显示在同一个窗口中,需要做如下设置。选择“查询结果”“SQL Server” “常规”选项,将“显示结果的默认方式”设置为“以文本格式显示结果”。实训2-使用类型转换函数输出一起努力 共同提高第1章 创建和管理数据库 变量的使用1 1输出语句 逻辑控制语句2 23 3目 录nBEGIN-END语句块 BEGIN-END语句将多个T-SQL语句定义成一个语句块,把每个语句块视为一个单元处理。逻辑控制语句 BEGIN语句或语句块 END 语法语法nIF-ELSE语句 IF-ELSE语句属于分支结构,它与C#编程语言的IF语句类似,也是根据条件是否成立来确定程序执行
12、方向的逻辑控制语句IF(条件) 语句或语句块1ELSE 语句或语句块2 语法语法n 需求说明u 查询C语言程序设计最近一次考试的日期。u 统计平均成绩并存入局部变量。u 如果平均分在70以上,则显示“考试成绩优秀”,并显示前3名学生的考试信息。u 如果平均分在70以下,则显示“考试成绩较差”,并显示后3名学生的考试信息。【演示4】统计最近一次考试情况n 演示代码【演示4】统计最近一次考试情况-查询C语言程序设计课程最近一次考试的日期DECLARE date datetime -考试日期SELECT date=MAX(ExamDate) FROM Result INNER JOIN Subjec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第09章 T-SQL编程 09 SQL 编程
限制150内