




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 2005数据库应用技术(第二版),第7章 Transact-SQL语言基础(1),复习,4,实体完整性、参照完整性,3,域的完整性,导入: Transact-SQL程序设计对于SQL Server 2005系统而言是至关重要的,是使用SQL Server 2005的主要形式。 本章主要介绍了Transact-SQL程序设计基础、Transact-SQL语法规则,SQL Server 2005的变量和程序控制流语句等。,第7章 Transact-SQL语言基础,SQL Server 2005中的编程语言就是Transact-SQL 语言,这是一个非过程化的高级语言。 可以使用Transact-SQL语句编写服务器端的程序。一般而言,一个程序是由以下要素组成: 注释 批处理 程序中使用的变量 、函数等 改变批中语句的执行顺序的流程控制语句 错误和消息的处理,7-1 Transact-SQL语言基础,7-1-1 注释语句 注释(注解)是程序代码中非执行的内容,不参与程序的编译。使用注释可对代码进行说明,可提高程序代码的可读性,使程序代码日后更易于维护,注释也可用于描述复杂计算或解释编程方法。 SQL Server 2005支持两种形式的注释语句: (1)“-”(双连字符):注释内容从双连字符开始到行尾结束,所以常用于单行注释。 (2)/* . */(正斜杠+星号对):注释内容从开始注释对(/*) 到结束注释对(*/) 之间的全部内容。常用于多行(块)注释,当然也可用于单行注释。,7-1 Transact-SQL语言基础,7-1-2 批处理 批处理是从客户机传递到服务器上的一组完整的数据和SQL语句。 在一个批处理中,可以包含一条SQL指令,也可以包含多条SQL语句。 批处理的所有语句被作为一个整体,而被成组的分析、编译和执行。 如果在一个批处理中存在着一个语法错误,那么所有的语句都无法通过编译。,7-1 Transact-SQL语言基础,7-1-2 批处理 几种指定批处理的方法: 一个应用程序作为一个执行单元发出的所有SQL语句构成一个批处理,并生成单个执行计划。 存储过程或触发器内的所有语句构成一个批处理。每个存储过程或触发器都编译为一个执行计划。 由EXECUTE语句执行的字符串是一个批处理,并编译为一个执行计划。 由Sp_executesql系统存储过程执行的字符串是一个批处理,并编译为一个执行计划。,7-1 Transact-SQL语言基础,7-1-2 批处理 批处理在使用中需注意如下规则: CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER和CREATE VIEW语句不能在批处理中与其他语句组合使用。 这些批处理须以CREATE语句开始。所有跟在其后的其他语句将被解释为第一个CREATE语句定义的一部分。 不能在同一个批处理中更改表,然后引用新列。 如果EXECUTE语句是批处理中的第一句,则不需要EXECUTE关键字。如果EXECUTE语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。,7-1 Transact-SQL语言基础,7-1-3 GO命令 GO是一个批处理结束的标识,通常用在一段程序的结尾处,标识此段程序至此结束。不参与程序的运行。 7-1-4 EXECUTE (EXEX) EXEC命令用于执行用户定义函数,系统过程,用户定义存储过程和扩展存储过程。 EXECUTE语句最基本语法格式如下: EXEC | EXECUTE 函数名或存储过程名,7-1 Transact-SQL语言基础,7-1-5 PRINT语句 将用户定义的字符串作为一个消息返回客户端或应用程序,该语句接受任何字符串表达式。 PRINT语法格式: PRINT any ASCII text | local_variable | FUNCTION | string_expression 功能:PRINT 命令向客户端返回一个用户自定义的信息,即显示一个字符串、局部变量或全局变量,如果变量值不是字符串的必须先用数据类型转换函数CONVERT将其转换为字符串其中string_expression是可返回一个字符串的表达式。,7-1 Transact-SQL语言基础,7-1-5 PRINT语句 例7-1 if exists(select * from xsda where 民族汉) print 有少数民族学生 else print 没有少数民族学生 GO,7-1 Transact-SQL语言基础,7-2-1 保留字 SQL Server 使用的 Transact-SQL 语言语法的一部分是保留字。SQL Server 2005 使用保留字(或谓关键字、保留关键字)来定义、操作或访问数据库。 在 T-SQL 语句或脚本中所有常量、变量、运算符、函数、列名等标识符切勿使用保留字。 尽管Transact-SQL不限制将保留关键字用作变量和存储过程参数的名称,保留关键字可用作数据库或数据库对象(如表、列、视图等)的标识符或名称(使用带引号的标识符或分隔标识符),但仍然建议尽可能规避。,7-2 Transact-SQL语法规则,7-2-2 T-SQL语法规则,7-2 Transact-SQL语法规则,Transact-SQL语句中,包含了关键字、标识符及各种参数等,它采用不同的书写格式来区分这些内容,Transact-SQL语法格式具体约定如下表:,常量与变量是T-SQL中不可或缺的,是T-SQL的基础, 两者在使用时必须先定义 7-3-1 常量 常量是指在程序运行过程中始终固定不变的量,而变量则是在程序运行过程中其值可以变化的数据,是表示一个特定数据值的符号。 常量的格式取决于它所表示的值的数据类型。 在SQL Server 2005的Transact-SQL语言中,常量类型如P133表7-4所示,7-3 常量与变量,7-3-1 常量 例7-2 SELECT 学号,姓名 FROM xsda WHERE 总学分=60 AND 系名=信息 select sl=179.21 select je=$255.28; select price=218.88 select rq=20080808:20:08:08 GO,7-3 常量与变量,变量是SQL Server 2005 中由系统或用户定义并可对其赋值的实体,可分为两种:一种是全局变量(Global Variable),另外一种是局部变量(Local Variable)。 全局变量由系统定义和维护,以开头,局部变量由用户定义和赋值,以开头。 变量的类型与常量一样,注意变量名的约束。 7-3-2 局部变量 局部变量是用户可自定义的变量,它的作用范围仅在程序内 部(作用域局限在一定范围的Transact-SQL对象)。 一般来说局部变量在一个批处理(也可以是存储过程或触发器)中被声明或定义,然后这个批处理内的SQL语句就可以设置这个变量的值,或者是引用这个变量已经被赋予的值。当这个批处理结束后,这个局部变量的生命周期也就随之消亡。在程序中通常用来储存从表中查询到的数据或当作程序执行过程中暂存的变量。,7-3 常量与变量,7-3-2 局部变量 (1)局部变量的定义 在批处理或过程中用 DECLARE 语句声明局部变量,以开头,所有局部变量在声明后均初始化为NULL。 语法格式: DECLARE 变量名 AS 变量类型 ,.n (2)用SET和SELECT语句赋值 将DECLARE语句创建的局部变量设置为给定表达式的值。 语法格式: SET 变量名表达式 SELECT 变量名表达式,7-3 常量与变量,7-3-2 局部变量 【例7-3】创建局部变量var1、var2,并赋值,然后输出变量的值。 DECLARE var1 varchar(10),var2 char(20) SET var1中国 /*一个SET语句只能给一个变量赋值*/ SET var2var1+是一个伟大的国家 SELECT var1,var2 Go,7-3 常量与变量,7-3-2 局部变量 【例7-4】在XSDA表中查询学号为200601的学生姓名与总学分,分别赋给变量XM,ZXF DECLARE xm as char(8),zxf tinyint select XM=姓名,ZXF=总学分from xsda WHERE 学号=200601 select xm,zxf as 总学分,7-3 常量与变量,7-3-3 全局变量 全局变量:以开头的变量,由SQLSEVER提供,而不是由用户创建. SQL Server提供的全局变量分为两类: 与每次同SQL Server 连接和处理相关的全局变量。如:ROWCOUNT,表示返回受上一语句影响的行数。 与内部管理所要求的关于系统内部信息有关的全局变量。如:VERSION表示返回 SQL Server当前安装的日期、版本和处理器类型。 SQL Server提供的全局变量达30多个,下表列出了部分全局变量,7-3 常量与变量,7-3 常量与变量,7-3-3 全局变量,【例7-5】使用SELECT语句查询全局变量。 SELECT version as 版本 SELECT language as 语言,运算符是一种符号,用来指定要在一个或多个表达式中执行的操作,执行列、常量或变量的数学运算和比较操作。 SQL Server 2005 中的运算符包括:算术运算符、位运算符、比较运算符、逻辑运算符、赋值运算符、字符串串联运算符和一元运算符。 7-4-1 算术运算符 算术运算符:加(+)、减(-)、乘(*)、除(/)和取余(%) 参与运算的数据是数值类型数据,其运算结果也是数值类型数据。 加(+) 和减()运算符也可用于对日期型数据进行运算,还可进行数值性字符数据与数值类型数据进行运算。 例: select 3/4,3.0/4,4%3 select 1234127-15,12345+15 select getdate()+10,7-4 运算符与表达式,7-4 运算符与表达式,7-4-2 位运算符 位运算符可以对整型或二进制字符数据进行按位与()、按位或(|)、按位异或()与求反()运算。位运算符的具体含义如下表,7-4 运算符与表达式,位运算符的操作数可以是整型或二进制字符串数据类型分类中的任何数据类型(但 image 数据类型除外),其中、|、运算需要两个操作数,这两个操作数不能同时是二进制字符串数据类型中的某种数据类型。这两个操作数可以配对的数据类型如下表所示。求反()运算是个单目运算,它只能对int、smallint 、tinyint或bit类型的数据进行求反运算。,7-4 运算符与表达式,7-4-3 比较运算符 比较运算符用来比较两个表达式的大小。它们能够比较除text、ntext和image数据类型之外的其他数据类型表达式。 SQL Server 2005支持的比较运算符包括: (1):大于。 (2):等于。 (3):小于。 (4):大于或等于。 (5):小于或等于。 (6)(!):不等于。 (7)!:不大于。 (8)!:不小于。,7-4 运算符与表达式,7-4-3 比较运算符 功能:测试两个相同类型表达式的顺序、大小、相同与否。 数值大小的比较、 字符串排列顺序的前后比较、 日期数据前后比较。 结果:正确(TRUE)、错误(FALSE)、未知(UNKNOWN)。 用途:if语句和while语句的条件、where子句和having子句的条件。,7-4 运算符与表达式,7-4-3 比较运算符 【例8-5】比较运算符。 - 比较数值大小 IF 45 23.44 PRINT 45 23.44 正确! ELSE PRINT 45 23.44 错误! - 比较字符串顺序 IF abcd abed PRINT abcd abed 正确! ELSE PRINT abcd abed 错误! - 比较日期顺序 IF GETDATE()2004-5-6 PRINT Yes ELSE PRINT No,7-4 运算符与表达式,7-4-4 逻辑运算符,逻辑运算符用来测试逻辑条件进行测试,以获得其真实情况。它与比较运算符一样,根据测试结果返回布尔值:True、False或Unknown。逻辑运算符有:AND、OR、NOT、BETWEEN和 LIKE等,运算内涵与结果如下表:,7-4 运算符与表达式,7-4-4 逻辑运算符 (1)AND:对两个布尔表达式的值进行逻辑与运算。当两个布尔 表达式的值都为True时,返回True;如果其中有一个为False, 则返回False;如果其中有一个True,另一个为Unknown,或两个 都为Unknown时,返回Unknown。 (2)OR:对两个布尔表达式进行逻辑或运算。当两个布尔表达 式的值都为False时,返回False;如果其中一个为True,则返回 True;如果其中一个为False,一个为Unknown,或两个都为 Unknown,返回Unknown。 (3)NOT:对布尔表达式的值进行取反运算,即当布尔表达式的 值为True时返回False,其值为False时返回True,但当布尔表达 式的值为Unknown时返回Unknown。,7-4 运算符与表达式,7-4-4 逻辑运算符 (4)NOT BETWEEN:范围运算符 语法格式:表达式 NOT BETWEEN 表达式1 AND 表达式2 功能: 测试某一表达式的值是否在指定的表达式1与表达式2的范围内。(包括临界点的值) 例7-6 declare a int set a=1 if (a between 1 and 7) print 17 或a1,7-4 运算符与表达式,7-4-4 逻辑运算符 (5)NOT LIKE:NOT LIKE:称作模式匹配运算符,常用于模糊条件查询,它判断测试表达式的值是否与指定的模式相匹配,测试表达式的值是否与指定的模式相匹配,可用于char, varchar,text、nchar, nvarchar,ntext,datetime, smalldatetime等数据类型。 (7)ALL、SOME、ANY:分别用于判断一个表达式的值与一个子查询结果集合中的所有、部分或任一个值间的关系是否满足指定的比较条件。 注:在第8章中详细说明 (6)NOT IN:NOT IN称作列表运算符,它们测试表达 式的值是否在列表项之内。 格式: 表达式 IN (表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南成人高考高数真题及答案
- 2025信达会计面试题目及答案
- 2025年卫生保健与管理制度了解程度考察答案及解析
- 2025年老年病学患者的生活自理能力评估考试卷答案及解析
- 2025年急救护理常见情况处理试卷答案及解析
- 2025年病毒学病毒侵染细胞过程模拟考试答案及解析
- 2025年消化系统肿瘤手术术前准备测验答案及解析
- 2025年老年医学老年疾病管理策略评估题答案及解析
- 2025年启动模式选择医学灵敏度答案及解析
- 2025年内分泌科临床实践考察答案及解析
- 冷库储存生姜合同范本
- 《小狗钱钱》完整版
- 《酒类鉴赏威士忌》课件
- 消化道出血患者的护理
- 各种奶茶配方资料
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案
- 《国家电网公司电力安全工作规程(火电厂动力部分、水电厂动力部分)》
- 八年级语文下册-专题08-语言表达与运用-(中考真题演练)(原卷版)
- 肾脏病与药物治疗
- 泵站管理制度
- 20以内的加法口算练习题4000题 205
评论
0/150
提交评论