TSQL编程.ppt

上传人:王** 文档编号:468284 上传时间:2023-09-08 格式:PPT 页数:29 大小:2.71MB
下载 相关 举报
TSQL编程.ppt_第1页
第1页 / 共29页
TSQL编程.ppt_第2页
第2页 / 共29页
TSQL编程.ppt_第3页
第3页 / 共29页
TSQL编程.ppt_第4页
第4页 / 共29页
TSQL编程.ppt_第5页
第5页 / 共29页
TSQL编程.ppt_第6页
第6页 / 共29页
TSQL编程.ppt_第7页
第7页 / 共29页
TSQL编程.ppt_第8页
第8页 / 共29页
TSQL编程.ppt_第9页
第9页 / 共29页
TSQL编程.ppt_第10页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《TSQL编程.ppt》由会员分享,可在线阅读,更多相关《TSQL编程.ppt(29页珍藏版)》请在优知文库上搜索。

1、T-SQLT-SQL编程编程回顾回顾建库的语法?建库的语法?补充下列语句:补充下列语句:IF EXISTS(SELECT*FROM?WHERE name=stuDB)DROP DATABASE stuDB建表的语法?建表的语法?补充下列语句:补充下列语句:IF EXISTS(SELECT*FROM?WHERE name=stuDB)DROP TABLE stuInfo目标目标 掌握如何定义变量并赋值掌握如何定义变量并赋值 掌握如何输出显示数据掌握如何输出显示数据 掌握掌握IF、WHILE、CASE逻辑控制语句逻辑控制语句 理解理解SQL中批处理的概念中批处理的概念注释注释SQL Server支

2、持两种形式的程序注释语句:支持两种形式的程序注释语句:单行注释语句:使用单行注释语句:使用ANSI标准的注释符标准的注释符“-”,注释语句写在,注释语句写在“-”的后面,只能书写单行。的后面,只能书写单行。多行注释语句:使用与多行注释语句:使用与C语言相同的程序注释符语言相同的程序注释符“/*/”,注释语,注释语句写在句写在“/*”和和“*/”之间,可以连续书写多行。之间,可以连续书写多行。批处理批处理-1所谓批是指从客户机传送到服务器上的一组完整数据和所谓批是指从客户机传送到服务器上的一组完整数据和SQL指令,批中的指令,批中的所有所有SQL语句做为一个整体编译成一个执行单元后从应用程序一次

3、性地发语句做为一个整体编译成一个执行单元后从应用程序一次性地发送到送到SQL Server服务器进行执行,称之为批处理。服务器进行执行,称之为批处理。所有的批处理命令都使用所有的批处理命令都使用GO作为结束标志,当作为结束标志,当T-SQL的编译器扫描到某的编译器扫描到某行的前两个字符是行的前两个字符是GO的时候,它会把的时候,它会把GO前面的所有语句作为一个批处理前面的所有语句作为一个批处理送往服务器。送往服务器。由于批处理中的所有语句被当作是一个整体,因此若其中一个语句出现了由于批处理中的所有语句被当作是一个整体,因此若其中一个语句出现了编译错误,则该批处理内所有语句的执行都将被取消。编译

4、错误,则该批处理内所有语句的执行都将被取消。批处理批处理-2批处理是包含一个或多个批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到语句的组,从应用程序一次性地发送到SQL Server执行执行SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条行计划中的语句每次执行一条客户端应用程序客户端应用程序SQL Server服务器服务器批处理语句:批处理语句:语句语句1语句语句2GO批处理批处理-3-第一个批处理打开第一个批处理打开Student数据库数据库USE Studen

5、t GO-第二个批处理在第二个批处理在Teachers表中查询姓王的教师的记录表中查询姓王的教师的记录SELECT *FROM Teachers WHERE SUBSTRING(Teacher_name,1,1)=王王GO批处理示例批处理示例批处理批处理-4SELECT*FROM StudentsSELECT*FROM Student_courseUPDATE Student_course SET Student_grade=Student_grade+2 GOGO是批处理的标志,表示是批处理的标志,表示SQL Server将这些将这些T-SQL语句编译为一个执行语句编译为一个执行单元,提高执

6、行效率单元,提高执行效率一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定需求和代码编写者决定 批处理示例批处理示例批处理批处理-5-例如建表语句的末尾必须添加例如建表语句的末尾必须添加GOCREATE TABLE stuInfo (.)GOSQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句末尾添加视图等,则必须在语句末尾添加 GO 批处理标志批处理标志使用变量使用变量 变量分为:变量分为:局部变量

7、:局部变量:局部变量必须以标记局部变量必须以标记作为前缀作为前缀,如,如age局部变量的使用也是先声明,再赋值局部变量的使用也是先声明,再赋值 全局变量:全局变量:全局变量必须以标记全局变量必须以标记 作为前缀,如作为前缀,如version全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值 局部变量局部变量 例如:例如:DECLARE name varchar(8)DECLARE seat int声明局部变量声明局部变量 DECLARE 变量名变量名 数据类型数据类型赋值赋值 SET 变量名变量名=值值 SELECT 变量名

8、变量名=值值例如:例如:SET name=张三张三SELECT name=stuName FROM stuInfo WHERE stuNo=s25302 必须确保筛选出的记录只有必须确保筛选出的记录只有1条条 或或 局部变量示例局部变量示例问题:问题:编写编写T-SQL查找景风的前一个学号学生和后一个学号学生的相关信息查找景风的前一个学号学生和后一个学号学生的相关信息?分析:分析:第一步,找出第一步,找出“景风景风“的学号;的学号;第二步,景风的学号加第二步,景风的学号加1或减或减1 局部变量示例局部变量示例/*-查找景风的学号查找景风的学号-*/DECLARE name nvarchar(1

9、0)-学生姓名学生姓名SET name=景风景风 -使用使用SET赋值赋值SELECT*FROM Students WHERE Student_name=name/*-查找景风的前后学号的同学查找景风的前后学号的同学-*/DECLARE number char(8)-学号学号SELECT number=Student_id FROM Students -使用使用SELECT赋值赋值 WHERE Student_name=nameSELECT*FROM Students WHERE(Student_id=Convert(char,Convert(int,number)+1)OR(Student_

10、id=Convert(char,Convert(int,number)-1)GO演示:使用局部变量演示:使用局部变量 参考语句参考语句全局变量全局变量 全局变量都使用两个全局变量都使用两个标志作为前缀标志作为前缀 变量变量含义含义ERROR最后一个最后一个T-SQL错误的错误号错误的错误号IDENTITY最后一次插入的标识值最后一次插入的标识值LANGUAGE当前使用的语言的名称当前使用的语言的名称MAX_CONNECTIONS可以创建的同时连接的最大数目可以创建的同时连接的最大数目ROWCOUNT受上一个受上一个SQL语句影响的行数语句影响的行数SERVERNAME本地服务器的名称本地服务器

11、的名称TRANSCOUNT当前连接打开的事务数当前连接打开的事务数VERSIONSQL Server的版本信息的版本信息全局变量示例全局变量示例print SQL Server的版本的版本+VERSION print 服务器的名称服务器的名称:+SERVERNAME INSERT INTO Students(Student_id,Student_name,Student_sex,Student_classid)VALUES(11003,张三张三,男男,2005022)-如果大于如果大于0表示上一条语句执行有错误表示上一条语句执行有错误print 当前错误号当前错误号+convert(varch

12、ar(5),ERROR)GO演示:使用全局变量演示:使用全局变量 参考语句参考语句逻辑控制语句逻辑控制语句 BEGINEND语句语句BEGIN 语句语句1 语句语句2 ENDBEGINEND语句相当于其他语言中的复语句相当于其他语言中的复合语句,如合语句,如JAVA语言中的语言中的。它用于。它用于将多条将多条T-SQL语句封装为一个整体的语语句封装为一个整体的语句块,即将句块,即将BEGINEND内的所有内的所有T-SQL语句视为一个单元执行。语句视为一个单元执行。逻辑控制语句逻辑控制语句 IFELSE语句语句SQL中的中的IF-ELSE语句语句IF(条件)(条件)BEGIN 语句语句1 语句

13、语句2 ENDELSE BEGIN 语句语句1 语句语句2 ENDELSE是可选部分是可选部分如果有多条语句,才需要如果有多条语句,才需要BEGIN-END语句块语句块 IF-ELSE示例示例问题:问题:统计并显示统计并显示Course_id为为1001的课程的平均分,如果平均分在的课程的平均分,如果平均分在70以上,显示以上,显示“成绩优成绩优秀秀“,并显示前三个最高的成绩;如果在,并显示前三个最高的成绩;如果在70以下,显示以下,显示“成绩较差成绩较差“,并显示后三个最低,并显示后三个最低的成绩。的成绩。学生成绩表学生成绩表分析:分析:第一步,统计平均成绩存入临时变量;第一步,统计平均成绩

14、存入临时变量;第二步,用第二步,用IFELSE判断;判断;IF-ELSE示例示例USE StudentGODECLARE myavg floatSELECT myavg=AVG(Student_grade)FROM Student_course WHERE Course_id=1001PRINT 本课程的平均成绩本课程的平均成绩+convert(varchar,myavg)IF(myavg70)BEGIN PRINT 本课程成绩优秀,前三个最高的成绩为:本课程成绩优秀,前三个最高的成绩为:SELECT TOP 3*FROM Student_course WHERE Course_id=1001

15、 ORDER BY Student_grade DESC ENDELSE BEGIN PRINT 本课程成绩较差,后三个最低的成绩为:本课程成绩较差,后三个最低的成绩为:SELECT TOP 3*FROM Student_course WHERE Course_id=1001 ORDER BY Student_grade ENDGO设置输出结果的格式设置输出结果的格式为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式为了文本消息和输出结果显示在同一窗口,需要设置输出结果的格式逻辑控制语句逻辑控制语句WHILE循环语句循环语句SQL中的中的WHILE语句语句WHILE(条件)(条件)B

16、EGIN 语句语句1 语句语句2 BREAK ENDBREAK表示退出循环表示退出循环如果有多条语句,才需要如果有多条语句,才需要BEGIN-END语句块语句块 WHILE示例示例问题:问题:假定要给考试成绩提分。提分规则很简单,给没达到假定要给考试成绩提分。提分规则很简单,给没达到85分的学生每人都加分的学生每人都加2分,看分,看是否都达到是否都达到85分以上,如果没有全部达到分以上,如果没有全部达到85分以上,每人再加分以上,每人再加2分,再看是否都达分,再看是否都达到到85分以上,如此反复提分,直到所有人都达到分以上,如此反复提分,直到所有人都达到85分以上为止分以上为止。学生成绩表学生成绩表分析:分析:第一步,统计没达到第一步,统计没达到85分的人数分的人数;第二步,如果有人没达到,加分;第二步,如果有人没达到,加分;第三步,循环判断。第三步,循环判断。DECLARE n intWHILE(1=1)-条件永远成立条件永远成立 BEGIN SELECT n=COUNT(*)FROM Student_course WHERE Student_grade0)UPDATE Studen

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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