SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章

上传人:E**** 文档编号:89181669 上传时间:2019-05-20 格式:PPT 页数:75 大小:1.43MB
返回 下载 相关 举报
SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章_第1页
第1页 / 共75页
SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章_第2页
第2页 / 共75页
SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章_第3页
第3页 / 共75页
SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章_第4页
第4页 / 共75页
SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章》由会员分享,可在线阅读,更多相关《SQL Server数据库基础教程 教学课件 ppt 作者 刘丽 第6章(75页珍藏版)》请在金锄头文库上搜索。

1、第6章 T-SQL程序设计,主要内容:,总体要求:,掌握SQL Server的批处理、注释和标识符等概念 掌握全局变量和局部变量的使用方法 掌握运算符和表达式 学习流程控制语句 掌握游标的使用方法,6.1 T-SQL 基础,SQL语言具有如下特点: SQL的语句更能代表一个有意义的工作过程,一个语句可以实现一个完整的功能。 SQL的语句对数据操作时不必知道数据的物理位置,服务器会自动将逻辑名称转换 成与数据相关的物理位置。 SQL的语句不必再设计查找或索引的优化策略,SQL服务器已经为查找数据提供了最有效的方法。 ANSI SQL语言主要是作为查询语言出现的,它不是一个全能的编程语言。 T-S

2、QL为了扩展SQL,增加了以下功能: 加入了程序控制结构(如IF、WHILE语句等)。 加入了局部变量、全局变量等一些功能。,6.1.1 批处理,批处理就是一个或多个T-SQL语句的集合,从应用程序一次性发送到SQL Server并由SQL Server编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。 建立批处理时,使用GO语句作为批处理的结束标记。,6.1.1 批处理,【例6-1】利用查询分析器执行两个批处理,用来显示学生表中的信息。,6.1.2 注释语句,注释是指程序中用来说明程序内容的语句,它不能执行且不参与程序的编译。 1行内注释 如果整行都是注释而并非所要执行

3、的程序行,则该行可用行内注释。其语法格式如下: - -注释语句 这种注释形式用来对一行加以注释,可以与要执行的代码处在同一行,也可以另起一行。从双连字符(-)开始到行尾均为注释。,6.1.2 注释语句,2块注释 如果所加的注释内容较长,则可使用块注释。语法格式为: /*注释语句*/ 这种注释形式用来对多行加以注释,可以与要执行的代码处在同一行,也可以另起一行,甚至可以放在可执行行代码内。对于多行注释,必须使用开始注释字符对(/*)开始注释,使用结束注释字符对(*/)结束注释,“/*”和“*/”之间的全部内容都是注释部分。注意:整个注释必须包含在一个批处理中,多行注释不能跨越批处理。,6.1.2

4、 注释语句,【例6-2】注释语句举例。 /*注释语句应用示例*/ USE teaching GO SELECT * FROM Zy -查看专业表中的数据 GO,6.1.3 标识符,1常规标识符 常规标识符的规则: 第一个字符必须是字母、下划线、或#。 标识符不能是Transact-SQL保留字。 不允许嵌入空格或其他特殊字符。 例如: SELECT * FROM TableX WHERE xh=124,6.1.3 标识符,2分隔标识符 在SQL Server中,T-SQL所使用的分隔标识符类型有下面两种: 用双引号(”)分隔开, 例如:SELECT * FROM ”My table” 用方括号

5、()分隔开, 例如:SELECT * FROM My table 例如: SELECT * FROM My table WHERE order=10,6.1.4 全局变量与局部变量,1全局变量 全局变量是系统提供且预先声明的变量。 用户只能引用不能改写,且不能定义和全局变量同名的局部变量,引用时要在前面加上“”标记。 【例6-3】利用全局变量查看SQL Server的版本,当前所使用的SQL Server服务器名称和到当前日期和时间为止试图登录的次数。,6.1.4 全局变量与局部变量,6.1.4 全局变量与局部变量,2局部变量 局部变量是指在批处理或脚本中用来保存数据值的对象。 (1) 声明局

6、部变量 使用一个局部变量之前,必须使用DECLARE语句来声明这个局部变量,给它指定一个变量名和数据类型,对于数值变量,还需要指定其精度和小数位数。 DECLARE语句的语法格式为: DECLARE local_variable data_type,n,6.1.4 全局变量与局部变量,【例6-4】声明SNO、SNAME、SBIRTH、SCORE等局部变量。 代码如下: DECLARE SNO char(10) DECLARE SNAME CHAR(12) DECLARE SBIRTH DATETIME DECLARE SCORE DECIMAL(5,1),6.1.4 全局变量与局部变量,(2)

7、 给局部变量赋值 所有变量声明后,均被初始化为NULL。若要对变量赋值,可以使用SELECT语句或SET语句将一个不是NULL的值赋给已声明的变量。 一个SELECT语句一次可以初始化多个局部变量;一个SET语句一次只能初始化一个局部变量。 当用多个SET语句初始化多个变量时,为每个局部变量使用一个单独的SET语句。,6.1.4 全局变量与局部变量,用SELECT语句为局部变量赋初值的语法结构如下: SELECT local_variable=expression ,n 例如: DECLARE age int,sname char(8) SELECT age=8 SELECT sname=张红

8、梅,6.1.4 全局变量与局部变量,用SET语句为局部变量赋初值的语法结构如下: SET local_variable=expression ,n 例如: DECLARE str char(20) SET str=1001,6.1.4 全局变量与局部变量,(3) 局部变量的作用域 【例6-5】声明一个局部变量temp_zy,把“teaching”数据库中“专业”表中“专业号”为12的专业名赋给局部变量temp_zy,并输出。,6.1.5 运算符和表达式,SQL Server提供的运算符有算术运算符、赋值运算符、按位运算符、比较运算符、逻辑运算符、字符串连接运算符和一元运算符。,6.1.5 运算

9、符和表达式,1算术运算符 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。在SQL Server中,算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。 取模运算返回一个除法的整数余数。例如,13%2=1,这是因为13除以2,余数为1。 2赋值运算符 Transact-SQL中只有一个赋值运算符,即等号(=)。赋值运算符能够将数据值指派给特定的对象。另外,还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。,6.1.5 运算符和表达式,3按位运算符 按位运算符使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执

10、行位操作。按位运算符包括&(按位与)、|(按位或)和(按位异或)。 T-SQL首先把整数数据转换为二进制数据,然后再对二进制数据进行按位运算。 4比较运算符 比较运算符用于比较两个表达式的大小或是否相同,其比较的结果是布尔数据类型,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)。除了text、ntex或image数据类型的表达式外,比较运算符可以用于所有的表达式,并可用在查询的WHERE和HAVING子句中。 在SQL Server中,比较运算符有:=、=、!=、!、!。,6.1.5 运算符和表达式,5逻辑运算符 逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括A

11、ND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有TRUE或FALSE值的布尔数据类型。 6字符串连接运算符 字符串连接运算符为加号(+),可以将两个或多个字符串合并或连接成一个字符串。还可以连接二进制字符串。,6.1.5 运算符和表达式,7一元运算符 一元运算符是指只有一个操作数的运算符。SQL Server提供的一元操作符包含+(正)、-(负)、和(位反)。 正和负运算符表示数据的正和负,可以对所有的数据类型进行操作。位反运算符返回一个数的补数,只能对整数数据进行操作。,6.1.5 运算符和表达式,8运算符优先级 当一个复杂的表达式有多个运算符时,则由运算符优先级来决定执行运

12、算的先后次序。执行的顺序可能严重地影响所得到的值。 括号:(); 一元运算符:+、-、; 乘、除、求模运算符:*、/、%; 加减运算符:+、- ; 比较运算符:=、=、!=、!、!; 位运算符:、&、|; 逻辑运算符:NOT; 逻辑运算符:AND; 逻辑运算符:OR; 赋值运算符:=。 当一个表达式中的两个运算符有相同的运算符优先级时,基于它们在表达式中的位置来对其从左到右进行求值。,6.2 流程控制语句,流程控制语句是用来控制程序执行和流程分支的命令,这些命令包括条件控制语句、无条件转移语句和循环语句。,6.2.1 BEGINEND语句块,BEGINEND语句的语法格式为: BEGIN 语句

13、1 语句2 END BEGINEND语句通常用于下列情况: WHILE循环需要包含语句块; CASE语句的元素需要包含语句块; IF或ELSE子句需要包含语句块。,6.2.1 BEGINEND语句块,【例6-6】使用BEGINEND语句显示“专业号”为“11”的“专业名”。 代码如下: USE teaching GO BEGIN PRINT 满足条件的专业名称 SELECT Zym FROM Zy WHERE Zyh=11 END GO,6.2.1 BEGINEND语句块,6.2.2 IFELSE 语句,IFELSE语句的语法格式为: IF 布尔表达式 语句1 ELSE 语句2,6.2.2 I

14、FELSE 语句,【例6-7】使用IFELSE语句实现以下功能:如果存在“职称”为“教授”或“副教授”的教师,那么输出这些教师的“姓名”、“部门”,否则输出没有满足条件的教师。 代码如下: USE teaching GO IF EXISTS(SELECT * FROM Js WHERE Zc=教授 OR Zc=副教授) BEGIN PRINT 以下教师是具有高级职称的 SELECT Xm,Bm FROM Js WHERE Zc=教授 OR Zc=副教授 END ELSE BEGIN PRINT 没有高级职称的教师 END GO,6.2.2 IFELSE 语句,6.2.3 CASE表达式,1简单

15、CASE表达式 简单CASE表达式将一个测试表达式与一组简单表达式进行比较,如果某个简单表达式与测试表达式的值,则返回相应结果表达式的值。简单CASE表达式的语法格式为: CASE 测试表达式 WHEN 测试值1 THEN 结果表达式1 WHEN 测试值2 THEN 结果表达式2 ELSE 结果表达式n END,6.2.3 CASE表达式,【例6-8】使用简单CASE表达式实现以下功能:根据教师表,分别输出教师编号、职称和备注,并根据教师职称标注教师的职称级别。 代码如下: USE teaching GO SELECT Jsh,Bz= CASE Zc WHEN 教授 THEN 高级职称 WHE

16、N 副教授 THEN 高级职称 WHEN 讲师 THEN 中级职称 WHEN 助教 THEN 初级职称 END FROM Js GO,6.2.3 CASE表达式,6.2.3 CASE表达式,2搜索CASE表达式 与简单CASE表达式相比较,在搜索CASE表达式中,CASE关键字后面不跟任何表达式,各个WHEN子句后都是逻辑表达式。搜索CASE表达式的语法格式为: CASE WHEN 逻辑表达式1 THEN 结果表达式1 WHEN 逻辑表达式2 THEN 结果表达式2 ELSE 结果表达式n END,6.2.3 CASE表达式,【例6-9】使用搜索CASE表达式实现以下功能:根据成绩表,分别输出学号、课程号,并根据学生成绩判别学生成绩的等级。 代码如下: USE teaching GO SELECT Xh, 等级

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号