版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上节内容回顾6.1T-SQL语法基础6.1.1标识符6.1.2常量6.1.3变量6.1.4运算符6.1.5表达式6.1.6注释符上节内容提问1、标识符有哪两种,有什么区别?2、我们上次课讲了哪几种常见的常量?3、变量包括哪两种,有何区别,如何表示?4、局部变量的定义用哪个关键字?5、给局部变量赋值用哪个关键字?如何查询赋值结果?讲评上次课实验报告题目讲解实验6-1第一题:【变量练习】1、创建变量@name并赋值为【你的姓名】,然后用SELECT语句返回该变量的值(即显示你的姓名)。2、创建变量@cpmc并赋值为【键盘】,然后使用该变量用SELECT查询产品名称为‘键盘’的产品信息。3、创建变量@department并赋值为【采购部】,创建变量@address并赋值为【上海市】,然后使用该两变量用SELECT查询“采购部”且住址为“上海市”的员工信息。4、创建变量@cpid并赋值为‘P0014’,创建变量@cpmc并赋值为‘声卡’,创建变量@cpcb并赋值为800,然后在产品名称表中新增产品(P0014,声卡,800)。
第六章T-SQL语言基础及应用第六章T-SQL语言基础及应用目的与要求:掌握T-SQL的语法基础,包括变量、运算符、函数、流程控制语句和注解等语言元素。掌握数据库的并法控制:事务、锁。重点与难点:常量与变量(重点)运算符与表达式(重点)程序流程控制语句(重难点)函数(难点)事务、锁(难点)第12讲T-SQL语言基础及应用26.1T-SQL语法基础6.1.1标识符6.1.2常量6.1.3变量6.1.4运算符6.1.5表达式6.1.6注释符6.2流程控制语句6.2.1IF…ELSE语句6.2.2CASE语句6.2.3GOTO语句6.2.4WHILE语句6.2.5表达式6.2.6BEGIN…END语句…….6.1T-SQL语法基础6.1T-SQL语言基础Transact-SQL就是Microsoft对标准结构化查询语言的实现。简称为T-SQL,但通常也称为SQL。这个语言实现了访问数据库问题的一种标准化方式。本章主要介绍T-SQL的一些基础知识,为后续章节的深入学习奠定基础。
在MicrosoftSQLServer2012系统中,根据Transact-SQL语言的功能特点,可以把Transact-SQL语言分为5种类型,即数据定义语言、数据操纵语言、数据控制语言、事务管理语言和附加的语言元素。6.1T-SQL语言基础数据定义语言(DataDefinitionLanguage,DDL)CREATE,ALTER,DROP数据操纵语言(DataManipulationLanguage,DML)INSERT、UPDATE、DELETE、SELECT数据控制语言(DataControlLanguage,DCL)GRANT、REVOKE事务管理语言(TransactionManagementLanguage,TML)
COMMIT、ROLLBACK附加的语言元素主要包括标识符、变量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言、注释等。6.1.4运算符6.1.4
运算符在MicrosoftSQLServer系统中,可以使用的运算符包括算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运算符、一元运算符、比较运算符等。6.1.4
运算符1、算术运算符运算符描述+加法运算,也可以将一个以天为单位的数字加到日期中-减法运算,也可以从日期中减去以天为单位的数字*乘法运算/除法运算,如果两个表达式都是整数,则结果是整数,小数部分被截断%取模运算,返回两数相除后的余数,例如12%9的模是36.1.4
运算符2、逻辑运算符运算符描述ALL用于比较标准值与单列集中的值。如果一组的比较都为TRUE,则比较结果为TRUEAND组合两个布尔表达式。如果两个表达式都为TRUE,则组合结果为TRUEANY用于比较标量值与单列集中的值。如果一组的比较中任何一个为TRUE,则比较结果为TRUEBETWEEN如果操作数在某个范围之内,那么结果为TRUEEXISTS如果子查询中包含了一些行,那么结果为TRUEIN如果操作数等于表达式列表中的一个,那么结果为TRUELIKE如果操作数与某种模式相匹配,那么结果为TRUENOT对任何其他布尔运算符的结果值取反OR如果两个布尔表达式中的任何一个为TRUE,那么结果为TRUESOME如果在一组比较中,有些比较为TRUE,那么结果为TRUE6.1.4
运算符3、位运算符运算符描述&位与逻辑运算,从两个表达式中取对应的位。当且仅当输入表达式中两个位的值都为1时,结果中的位才被设置为1,否则,结果中的位被设置为0|位或逻辑运算,从两个表达式中取对应的位。如果输入表达式中两个位只要有一个的值为1时,结果的位就被设置为1;只有当两个位的值都为0时,结果中的位才被设置为0^位异或运算,从两个表达式中取对应的位。如果输入表达式中两个位只有一个的值为1时,结果中的位就被设置为1;只有当两个位的值都为0或1时,结果中的位才被设置为06.1.4
运算符4、一元运算符运算符描述+数值为正-数值为负~返回数字的逻辑非6.1.4
运算符5、比较运算符运算符描述=等于>
大于<
小于>=大于或等于<=小于或等于<>
不等于!=不等于!<不小于!>不大于6.1.4
运算符运算符优先级级别运算符1~(位非)2*(乘)、/(除)、%(取模)3+(正)、-(负)、+(加)、+(连接)、-(减)、&(位与)4=、>、<、>=、<=、<>、!=、!>、!<(比较运算符)5^(位异或)、|(位或)6NOT7AND8ALL、ANY、BETWEEN、IN、LIKE、OR、SOME9=(赋值)6.1.5表达式6.1.5
表达式表达式是标识符、值和运算符的组合,它可以是常量、函数、列名、变量、子查询等实体,也可以用运算符对这些实体进行组合而成。1、简单表达式2、复杂表达式6.1.5
表达式1、简单表达式【例1】将“采购订单分录”中各个订单单价乘以0.8后输出。select
采购订单号,物料代码,单价*0.8as
八折单价from
采购订单分录6.1.5
表达式2、复杂表达式【例2】通过表达式对采购信息进行拼接。SELECT
A.物料代码,A.物料名称+SPACE(4)+A.计量单位
AS
物料信息,SUM(B.金额)
AS
'总金额',SUM(B.订货数量)
AS
'总数量'FROM
物料
AS
A
INNER
JOIN
采购订单分录
AS
BON
A.物料代码=B.物料代码GROUP
BY
A.物料代码,A.物料名称,A.计量单位6.1.5
表达式2、复杂表达式Like的使用通配符说明示例%代表0个或多个字符。WHERE姓名LIKE'刘%'查询姓刘的学生。_(下划线)代表单个字符。WHERE姓名LIKE'张_'查询姓张的名为一个汉字的所有人名。[]指定范围(如:[a-f]、[0-9])或集合
(如[abcdef])中的任何单个字符。WHEREsubstring(学号,1,1)LIKE'[12]%'查询首字符为1、2的学号。[^]指定不属于范围(如:[^a-f]、[^0-9])或集合(如:[^abcdef])的任何单个字符。WHEREsubstring(学号,1,1)LIKE‘[^1-9]%’查询首字符不为1-9任一字符的学号。上机实验任务一实验6-1第二题:【运算符和表达式】20分钟6.1.6注释符6.1.6
注释符在Transact-SQL中可使用两类注释符,单行注释和多行注释。1、单行注释:采用ANSI标准的注释符“--”;格式:--注释内容。2、多行注释:与C语言相同的程序注释符号,即“/**/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。格式:/*注释内容*/6.1.6
注释符1、单行注释:“--”(双连字符)。USE
company
--单行注释GO
2、多行注释:“/*...*/”(正斜线-星号字符对)。SELECT
*
FROM
Employees
/*这是注释*/
注:完整的注释必须包含在一个批处理中。6.1.6
注释符【例1】单行注释示例。【例2】多行注释示例。SELECT
*
FROM
物料
WHERE
物料名称='鼠标'
--查询物料名为鼠标的物料信息/*查询物料名为鼠标的物料信息,物料表名为Item*/SELECT
*FROM
物料WHERE
物料名称='鼠标'6.2流程控制语句6.2
流程控制语句T-SQL中流程是指那些用来控制程序执行和流程分支的语句。使用T-SQL语言编程的时候,常常要利控制语句用各种流程控制语句进行顺序、分支控制转移、循环等操作。T-SQL提供了一组流程控制语句,包括条件控制语句、无条件控制语句、循环语句和返回状态值给调用例程的语句。6.2
流程控制语句顺序执行程序控制语句顺序执行流程改变程序6.2
流程控制语句序号控制语句说明1IF...ELSE条件选择语句2CASE多分支选择语句3GOTO无条件转移语句4WHILE循环语句5RETURN无条件返回6BEGIN…END定义语句块7BREAK用于退出最内层的循环8CONTINUE用于重新开始下一次循环9WAITFOR设置语句执行的延迟时间跟流程控制语句相关的语句如下所示,本章节将分别进行介绍。6.2.1IF…ELSE语句6.2.1IF…ELSE语句IF…ELSE语句是条件判断语句,用于实现选择结构。IF…ELSE语句的语法格式为:IF
逻辑表达式{语句1|语句块1}ELSE{语句1|语句块1}当IF后的条件成立时执行其后的T-SQL语句。当条件不成立时,执行ELSE后的T-SQL语句,其中ELSE子句是可选项。如果没有ELSE子句,当条件不成立则执行IF语句后面的其他语句。6.2.1IF…ELSE语句【例1】IF语句的使用DECLARE
@cgddh
nvarchar(30),@cgfs
char(10)SET
@cgddh
='DJ001'IF(SELECT
采购方式
FROM
采购订单头
WHERE
采购订单号=@cgddh)=1
SELECT
@cgfs='现购'ELSE
SELECT
@cgfs='赊购'PRINT
'您当前查询的订单号:'+
@cgddh
+',其采购方式为:'+
@cgfsIF…ELSE语句的使用6.2.1IF…ELSE语句【例2】查询物料类别为1的物料种类数。IF…ELSE语句的使用DECLARE
@num
intSELECT
@num=(SELECT
COUNT(*)
FROM
物料
WHERE
物料类别=1)IF
@num<>0SELECT
@num
AS
'物料类别为1的物料种类数'6.2.1IF…ELSE语句【例3】输出三个整数中的最大数。IF…ELSE语句的使用DECLARE
@number1
INT,@number2
INT,@number3
INT,@temp
INTSET
@number1=52SET
@number2=38SET
@number3=66IF
@number1<@number2
BEGIN
SET
@temp
=@number1
SET
@number1=@number2
SET
@number2=@temp
ENDIF
@number1>@number3
BEGIN
'最大数为:'
@number1
ENDELSE
BEGIN
'最大数为:'
@number3
END上机实验任务二实验6-1第三题:【IF…ELSE…语句练习】15分钟6.2.2CASE语句6.2.2CASE语句CASE语句用于实现选择结构,与IF…ELSE语句相比,它能更方便地实现多重选择的情况,从而避免多重的IF…ELSE语句的嵌套,使得程序的结构更加简练、清晰。CASE语句计算条件列表并返回多个可能结果表达式之一,其语法格式有两种,简单CASE语句和搜索CASE语句。1、简单CASE语句2、复杂CASE语句6.2.2CASE语句1、简单CASE语句简单CASE语句的语法格式为:1、首先计算CASE后面的表达式,然后按指定顺序与每个WHEN子句后的表达式进行比较。2、如果相等,则执行对应的WHEN后的结果表达式,并退出CASE结构。3、若CASE后的表达式与所有WHEN后的表达式均不相等,则执行ELSE后的结果表达式。4、若CASE后的表达式值与所有WHEN后的表达式均不相等,且ELSE结果表达式被忽略,则返回NULL值。CASE
表达式
WHEN
表达式
THEN
结果表达式
……[ELSE
结果表达式]END6.2.2CASE语句1、简单CASE语句【例1】简单的CASE语句的使用。DECLARE
@var1
VARCHAR(1)SET
@var1='B'DECLARE
@var2
VARCHAR(10)SET
@var2=CASE
@var1
WHEN
'R'
THEN
'红色'
WHEN
'B'
THEN
'蓝色'
WHEN
'G'
THEN
'绿色'ELSE
'错误'ENDPRINT
@var2DECLARE
@var1
VARCHAR(1)SET
@var1='B'DECLARE
@var2
VARCHAR(10)SET
@var2='蓝色'PRINT
@var26.2.2CASE语句2、搜索CASE语句搜索CASE语句的语法格式为:CASE
WHEN
条件表达式
THEN
结果表达式
……ELSE
结果表达式
END1、首先测试WHEN后的条件表达式,若为真,则执行THEN后的结果表达式,否则执行下一个WHEN后的条件表达式的测试。2、若所有WHEN后的条件表达式都为假,则执行ELSE后的结果表达式。3、若所有WHEN后的条件表达式都为假,且ELSE结果表达式被忽略,则返回NULL值。6.2.2CASE语句2、搜索CASE语句【例2】根据学生考试成绩输出等级DECLARE
@score
TINYINT
SET
@score=82PRINT
CASE
WHEN
@score>=90THEN
'该学生考试成绩优秀'
WHEN
@score>=80THEN
'该学生考试成绩良好'
WHEN
@score>=70THEN
'该学生考试成绩一般'
WHEN
@score>=60THEN
'该学生考试成绩及格'
ELSE
'该学生考试成绩不及格'
END6.2.2CASE语句2、搜索CASE语句【例3】搜索类型的CASE语句DECLARE
@chengji
FLOAT,@pingyu
VARCHAR(40)SET
@chengji=80SET
@pingyu=CASE
WHEN
@chengji>100OR
@chengji<0THEN
'您输入的成绩超出~的范围'
WHEN
@chengji>=60AND
@chengji<70THEN
'及格'
WHEN
@chengji>=70AND
@chengji<85THEN
'良好'
WHEN
@chengji>=85AND
@chengji<=100THEN
'优秀'
ELSE
'不及格'ENDPRINT
'该生的成绩评语是:'+@pingyu6.2.2CASE语句2、搜索CASE语句【例3】搜索类型的CASE语句DECLARE
@chengji
FLOAT,@pingyu
VARCHAR(40)SET
@chengji=80SET
@pingyu=CASE
WHEN
@cheng
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路旅客运输企业安全自查表
- 卷材防水层施工质量保证措施
- 大型游乐设施安全自查表
- 咖啡厅主要设备清单
- 2026年西藏自治区公开遴选公务员考试(案例分析与对策性论文)
- 人力采伐工测试验证评优考核试卷含答案
- 摊商班组考核水平考核试卷含答案
- 光纤套塑工操作知识水平考核试卷含答案
- 气体深冷分离工操作技能测试考核试卷含答案
- 煤层气预处理值班员岗前设备性能考核试卷含答案
- 运城2024年山西永济市招聘卫生专业技术人员63人 笔试历年典型考题寄考点剖析含答案附详解
- 幼儿园安全教育课件:《嘴巴里的小精灵》
- 23秋国家开放大学《品牌传播与策划》形考任务1-5参考答案
- 工具培训-工具的正确使用
- 项目部人员绩效考核表实用文档
- 山东建筑大学工程力学复习题
- 长沙市建筑施工安全生产“一会三卡”
- 食品检验工(高级)5
- 张爱玲《金锁记》教学课件
- 综合医院外派住院医师规范化培训协议书
- GB/T 6075.1-1999在非旋转部件上测量和评价机器的机械振动第1部分:总则
评论
0/150
提交评论