首页 T-SQL语言基础

T-SQL语言基础

举报
开通vip

T-SQL语言基础null第7章 T-SQL语言基础第7章 T-SQL语言基础第7章 T-SQL语言基础第7章 T-SQL语言基础7.1 注释 7.2 变量 7.3 运算符 7.4 函数 7.5 流程控制语句 7.1 注释7.1 注释在SQL Server中,可以使用两种类型的注释字符: 一种是ANSI标准的注释符“--”,它用于单行注释; 另一种是与C语言相同的程序注释符号,即“/* */”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾。 7.1 注释7.1 注释例7-1 使用两种注释类型的例子。 ...

T-SQL语言基础
null第7章 T-SQL语言基础第7章 T-SQL语言基础第7章 T-SQL语言基础第7章 T-SQL语言基础7.1 注释 7.2 变量 7.3 运算符 7.4 函数 7.5 流程控制语句 7.1 注释7.1 注释在SQL Server中,可以使用两种类型的注释字符: 一种是ANSI 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的注释符“--”,它用于单行注释; 另一种是与C语言相同的程序注释符号,即“/* */”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾。 7.1 注释7.1 注释例7-1 使用两种注释类型的例子。 程序清单如下: USE test GO -- First line of a multiple-line comment. -- Second line of a multiple-line comment. SELECT * FROM s GO /* 注释语句的第一行. 注释语句的第二行. */ SELECT * FROM sc GO -- 在T-SQL语言调试过程中使用注释语句。 7.2 变量 7.2 变量 T-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。 1. 局部变量 局部变量的作用范围仅限制在程序内部。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。 定义局部变量的语法形式如下: DECLAER {@local_variable data_type} […n] 其中,参数@local_variable用于指定局部变量的名称, 参数data_type用于设置局部变量的数据类型及其大小.data_type可以是任何由系统提供的或用户定义的数据类型。但是,局部变量不能是 text,ntext 或 image 数据类型。7.2 变量7.2 变量使用DECLARE命令声明并创建局部变量之后,会将其初始值设为NULL,如果想要设定局部变量的值,必须使用SELECT命令或者SET命令。其语法形式为: SET { @local_variable = expression } 或者 SELECT { @local_variable = expression } [ ,...n ] 其中,参数@local_variable是给其赋值并声明的局部变量,参数expression是任何有效的SQL Server 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式。 7.2 变量 7.2 变量 1. 局部变量 例7-2 创建一个@myvar 变量,然后将一个字符串值放在变量中,最后输出 @myvar 变量的值。 程序清单如下: DECLARE @myvar char(20) select @myvar = 'This is a test' SELECT @myvar GO 例7-3 通过查询给变量赋值。 程序清单如下: USE test GO DECLARE @rows int SET @rows = (SELECT COUNT(*) FROM sc)7.2 变量7.2 变量2. 全局变量 除了局部变量之外,SQL Server系统本身还提供了一些全局变量。全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是T-SQL命令执行后的状态值。在使用全局变量时应该注意以下几点: (1)全局变量不是由用户的程序定义的,它们是在服务器级定义的。 (2)用户只能使用预先定义的全局变量。 (3)引用全局变量时,必须以标记符“@@”开头。 (4)局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。7.2 变量7.2 变量2. 全局变量 例7-4 显示到当前日期和时间为止试图登录SQL Server的次数。 程序清单如下: SELECT GETDATE( ) AS '当前的时期和时间', @@CONNECTIONS AS '试图登录的次数'7.3 运算符 7.3 运算符 在SQL Server 2005中,运算符主要有以下六大类:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符和字符串串联运算符。 1.算术运算符 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。 2.赋值运算符 T-SQL 中只有一个赋值运算符,即(=)。赋值运算符使我们能够将数据值指派给特定的对象。另外,还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。 7.3 运算符7.3 运算符3.位运算符 位运算符使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执行位操作。此外,在位运算符左右两侧的操作数不能同时是二进制数据。表7-1列出了所有的位运算符及其含义。 表7-1 位运算符 7.3 运算符7.3 运算符4.比较运算符 比较运算符亦称为关系运算符,用于比较两个表达式的大小或是否相同,其比较的结果是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)以及UNKNOWN。除了 text,ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。 5.逻辑运算符 逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括AND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有 TRUE 或 FALSE 值的布尔数据类型。 三个运算符的优先级别为:NOT,AND,OR。 6.字符串串联运算符 字符串串联运算符允许通过加号(+)进行字符串串联,这个加号即被称为字符串串联运算符。例如对于语句SELECT ’abc’+’def’,其结果为abcdef。 7.3 运算符7.3 运算符在SQL Server 2005中,运算符的优先等级从高到低如下所示,如果优先等级相同,则按照从左到右的顺序进行运算。 (1)括号:(); (2)乘、除、求模运算符:*,/,%; (3)加减运算符:+,-; (4)比较运算符:=,>,<,>=,<=,<>,!=,!>,!<; (5)位运算符:^,&,|; (6)逻辑运算符:NOT; (7)逻辑运算符:AND; (8)逻辑运算符:OR。 7.4 函数 7.4 函数 在T-SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。SQL Server包含多种不同的函数用以完成各种工作,每一个函数都有一个名称,在名称之后有一对小括号,如:gettime( )。大部分的函数在小括号中需要一个或者多个参数。 null7.4 函数7.4 函数1、字符串函数 字符串函数可以分为以下几大类: 基本字符串函数:UPPER,LOWER,SPACE,REPLICATE,STUFF,REVERSE,LTRIM,RTRIM。 字符串查找函数:CHARINDEX,PATINDEX。 长度和分析函数:DATALENGTH,SUBSTRING,RIGHT。 转换函数:ASCH,CHAR,STR,SOUNDEX,DIFFERENCE。 7.4 函数7.4 函数1、字符串函数 例7-5 使用 LTRIM 函数删除字符变量中的起始空格。 程序清单如下: DECLARE @string_to_trim varchar(60) SET @string_to_trim = ' Five spaces are at the beginning of this string.' SELECT 'Here is the string without the leading spaces: ' + LTRIM(@string_to_trim) 7.4 函数7.4 函数2、日期和时间函数 日期和时间函数用于对日期和时间数据进行各种不同的处理和运算,并返回一个字符串、数字值或日期和时间值。与其他函数一样,可以在SELECT语句的SELECT和WHERE子句以及表达式中使用日期和时间函数。 null7.4 函数7.4 函数2、日期和时间函数 例7-6 从GETDATE函数返回的日期中提取月份名。 程序清单如下: SELECT DATENAME(month, getdate()) AS 'Month Name' 7.4 函数7.4 函数3、数学函数 数学函数用于对数字表达式进行数学运算并返回运算结果。 例7-7 select round(rand()*100,0.5)7.4 函数7.4 函数4、系统函数 系统函数用于返回有关SQL Server系统、用户、数据库和数据库对象的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。7.4 函数7.4 函数4、系统函数 例7-8 返回服务器的主机名称 程序清单如下: SELECT host_name()7.5 流程控制语句 7.5 流程控制语句 流程控制语句是指那些用来控制程序执行和流程分支的语句,在SQL Server 2005中,流程控制语句主要用来控制SQL语句、语句块或者存储过程的执行流程。 7.5 流程控制语句7.5 流程控制语句1. IF…ELSE语句 IF…ELSE语句是条件判断语句,其中,ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。SQL Server允许嵌套使用IF…ELSE语句,而且嵌套层数没有限制。 IF…ELSE语句的语法形式为: IF Boolean_expression     { sql_statement | statement_block } [ ELSE     { sql_statement | statement_block } ] 7.5 流程控制语句7.5 流程控制语句1. IF…ELSE语句 例7-9 如果李四的平均成绩为60分以上,显示其成绩情况,否则显示文本:成绩状态不理想。 declare @avgs int select @avgs=avg(grade) from s,sc where s.sno=sc.sno and sname='李四' if(@avgs>=60) select s.sno,sname,cno,grade from s,sc where s.sno=sc.sno and sname='李四' else print '成绩不理想'7.5 流程控制语句7.5 流程控制语句2. BEGIN…END语句 BEGIN…END语句能够将多个T-SQL语句组合成一个语句块,并将它们视为一个单元处理。在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使用BEGIN…END语句。 BEGIN…END语句的语法形式为: BEGIN      { sql_statement          | statement_block       } END 7.5 流程控制语句7.5 流程控制语句3.GO 语句 Go 语句是批的结束语句。批是一起提交并作为一个组执行的若干SQL语句。 例7-10 用Go 语句作为批的结束语句。 程序清单如下: USE adventureworks GO DECLARE @MyMsg VARCHAR(50) SELECT @MyMsg = 'Hello, World.' GO -- @MyMsg 在Go语句后失效。 7.5 流程控制语句7.5 流程控制语句4.CASE语句 CASE语句可以计算多个条件式,并将其中一个符合条件的结果表达式返回。CASE语句按照使用形式的不同,可以分为简单CASE语句和搜索CASE语句。 简单CASE表达式: CASE 表达式 WHEN 表达式 THEN 表达式 WHEN 表达式 THEN 表达式        [ ...n ]     [ELSE 表达式] END   7.5 流程控制语句7.5 流程控制语句例7-11 根据sdept的数据显示其详细内容 use test go declare @dept varchar(50) select @dept= case sdept when 'cs' then '计算机系' when 'info' then '信息系' when 'ma' then '数学系' else '出错' end from s where sno='001' --显示其值 select @dept as系部7.5 流程控制语句7.5 流程控制语句4.CASE语句 搜索CASE: CASE WHEN 布尔表达式 THEN 表达式 WHEN 布尔表达式 THEN 表达式        [ ...n ]     [ELSE 表达式] END    7.5 流程控制语句7.5 流程控制语句例7-12 使用搜索CASE,根据成绩的范围将显示其对应系的文本 use test go declare @score char(1) select @score= case when grade>=90 and grade<=100 then 'A' when grade>=80 and grade<90 then 'B' when grade>=70 and grade<80 then 'C' when grade>=60 and grade<70 then 'D' else 'E' end from sc where cno='100' and sno='001' select @score7.5 流程控制语句7.5 流程控制语句5.WHILE…CONTINUE…BREAK语句 WHILE…CONTINUE…BREAK语句用于设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。其中,CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。BREAK语句则使程序完全跳出循环,结束WHILE语句的执行。 其语法形式为: WHILE Boolean_expression     { sql_statement | statement_block }     [ BREAK ]     { sql_statement | statement_block }     [ CONTINUE ] 7.5 流程控制语句7.5 流程控制语句例7-13 计算1到10之间的奇数之和 declare @i tinyint,@sum int set @sum=0 set @i=0 while @i>=0 begin if(@i>=10) begin select '总和'=@sum break end else begin set @i=@i+1 if(@i % 2) = 0 continue else set @sum=@sum+@i end end7.5 流程控制语句7.5 流程控制语句6.GOTO语句 GOTO语句可以使程序直接跳到指定的标有标识符的位置处继续执行,而位于GOTO语句和标识符之间的程序将不会被执行。GOTO语句和标识符可以用在语句块、批处理和存储过程中,标识符可以为数字与字符的组合,但必须以“: ”结尾。如:‘a1: ’。在GOTO语句行,标识符后面不用跟“: ”。GOTO语句的语法形式为: GOTO label …… label: 例7-57 利用GOTO语句求出从1加到5的总和。 程序清单如下: declare @sum int, @count int select @sum=0, @count=1 label_1: select @sum=@sum+@count select @count=@count+1 if @count<=5 goto label_1 select @count @sum 7.5 流程控制语句7.5 流程控制语句7.WAITFOR语句 WAITFOR语句用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。 WAITFOR语句的语法形式为: WAITFOR { DELAY 'time' | TIME 'time' } 其中,DELAY用于指定时间间隔,TIME用于指定某一时刻,其数据类型为datetime,格式为‘hh:mm:ss’。 例7-14 使用WAITFOR TIME语句,以便在晚上10:20执行存储过程 update_all_stats。 程序清单如下: BEGIN WAITFOR TIME '22:20' EXECUTE update_all_stats END 7.5 流程控制语句7.5 流程控制语句8.RETURN语句 RETURN语句用于无条件地终止一个查询、存储过程或者批处理,此时位于RETURN语句之后的程序将不会被执行。 RETURN语句的语法形式为: RETURN [ integer_expression ] 其中,参数integer_expression为返回的整型值。存储过程可以给调用过程或应用程序返回整型值。7.5 流程控制语句7.5 流程控制语句8.RETURN语句 例7-15 显示如果在执行 findjobs 时没有给出用户名作为参数,RETURN 则将一条消息发送到用户的屏幕上然后从过程中退出。如果给出用户名,将从适当的系统表中检索由该用户在当前数据库内创建的所有对象名。 程序清单如下: CREATE PROCEDURE findjobs @nm sysname = NULL AS IF @nm IS NULL BEGIN PRINT 'You must give a username' RETURN END ELSE BEGIN SELECT o.name, o.id, o.uid FROM sysobjects o INNER JOIN master..syslogins l ON o.uid = l.sid WHERE l.name = @nm END
本文档为【T-SQL语言基础】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_627750
暂无简介~
格式:ppt
大小:184KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-03-19
浏览量:32