本文主要是介绍第四章:1、SQL Server 编程语言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SQL Server 编程语言T-SQL
4.1.1 变量 4.1.2 显示信息 4.1.3 注释语句 4.1.4 流程控制语句
4.1.1 变量
定义 :
变量是SQL Server 中由系统或用户定义的可赋值的条件,分为全局变量 和局部变量 。 全局变量不能由用户定义 ,也不能被显示地赋值或声明,其名称以两个@字符(即@@)开头 。 声明格式 :
格式 : Declare @局部变量名 数据类型[, @局部变量名 数据类型 ,···] 在同一个Declare语句中可以同时声明多个变量,变量之间用逗号隔开。
例子 :
Declare @variable1 int,@variable2 datetime
赋值语句 :
赋值语句SET : 采用SET语句的语法格式为: SET @变量名 = 表达式 赋值语句SELECT : 采用SETECT语句的语句格式为: SELECT @变量名 = 表达式 或 SELECT @变量名 = 列名或表达式[,@变量名2 = 列名或表达式, ···] FROM 表名 条件表达式 如果SELECT语句返回多个数值,则局部变量取最后一个返回值。
4.1.2 显示信息
概念 : 在执行SQL语句的过程中,如果需要为用户或应用程序提供信息,则可以使用PRINT 语句或RAISERROR 语句。PRINT语句 :
作用 : PRINT语句用于在指定设备上(显示器)显示信息 ,可以显示ASCⅡ字符串或变量 ,可以输出的数据类型只有char,nchar,varchar,nvarchar ,所输出的字符串可以用“+”连接。例子 : PRINT ‘你好,现在是’+CAST(year(getdate())as varchar(10))+‘年!’; 注意 : 使用PRINT语句只能 显示字符数据类型 ,如果是非字符类型,则需要**使用COUVERT()或者CAST()**函数进行转换。 RAISERROR语句:
作用: RAISERROR语句用于在SQL Server返回错误消息的同时返回用户指定的信息,它设置了一个系统标记,记录产生的错误。 语法: RAISERROR(<错误号>|<‘错误消息’>,[严重度][,状态[,参数1][,参数2]]) 错误号是整型表达式,是用户指定的错误或信息号,取值范围为50 000~2 147 483 647,最后一个错误代码存储在全局变量@@ERROR中。错误信息用于指定用户定义的错误信息,文本最长为255个字符,严重度默认为16。
4.1.3 注释语句
语法: /* 注释文本*/(多行注释) 或 - - 注释文本(单行注释)
4.1.4 流程控制语句
BEGIN···END 语句:
描述 : 使用BEGIN···END语句可以将多条SQL语句封装起来,形成一个语句块,使这些语句作为一个整体执行。
格式 :
BEGIN
语句
···
END
IF···ELSE 语句:
描述 : IF···ELSE语句是条件判断语句,根据表达式的真假选择执行某个语句或者语句块。语法 :IF 条件表达式
语句
[ELSE[IF 条件表达式]
语句]
例子 :在电力抢修工程数据库中,如果Stock表中存在库存量低于1的物资,就显示文本“the amount is not enough!”,否则显示所有物资信息。其语法形式如下:IF exists (Select * from Stock where amount < 1 )
PRINT ' the amount is not enough! '
ELSE
begin
SELECT *
FROM Stock
end
注意:IF语句常与关键字exists 结合使用,用于检测是否存在满足条件的记录,只要检测有一行记录存在就为真。 WHILE 循环语句:
描述 : 在WHILE语句中,还可以使用BREAK和CONTINUE使程序从循环中跳出。BREAK语句在程序中跳出以后接着执行END后面的第一条语句。CONTINUE语句使程序跳过循环内COUNTUNE语句后面的语句,重新判断逻辑条件,如果满足条件,则重新执行循环体内的SQL语句。语法 :WHIlE 逻辑表达式
语句
例子 :将Stock表中所有物资的单价增加10%,直到有一个物资单价超过15000或单价总和超过50000为止。其语法形式如下:WHILE (SELECT SUM(unit) FROM stock)<50000
BEGIN
UPDATE stock SET nuit = unit * 1.1
IF EXISTS (SELECT * FROM stock WHERE unit > 15000)
Break
ELSE
CONTINUE
END
GOTO 语句:
描述 : 使用GOTO语句可以使SQL语句的执行流程无条件地转移到指定的标号位置,GOTO语句和标号可以用在用户巨快,批处理和存储过程中,标号的命名符合标识符命名规则。GOTO语句经常用在WHILE和IF语句中,以跳出循环或分支处理。语法 :GOTO lable
···
lable;
WAITFOR 语句:
描述 : WAITFOR语句可以在某一个时刻或某一个时间间隔之后执行SQl语句、语句块、存储过程等。语法 :WAITFRO{DELAY'时间’|TIME‘时间’}
其中,DELAY表示等候由“时间‘参数指定的时间间隔;TIME表示等候到指定的”时间“为止。
时间参数的数据类型为datetime,但不带日期,格式为”hh.mm.ss“。
例子 :使用WAITFOR语句表示等候一分钟后显示Stock表,等到12:00:00时显示Salvaging表。WAITFOR DELAY ‘00:01:00’
SELECT *
FROM Stock
WAITFOR TIME ‘12:00:00’
SELECT *
FROM Salvaging
CASE 语句:
描述 : CASE语句用于根据多个分支条件确定执行内容。CASE语句列出一个或多个分支条件,并对每个分支条件给出候选值。 然后按顺序测试分支条件是否得到满足,一旦有一个分支条件满足,CASE语句就将该条件对应的候选值返回。格式一 :CASE<表达式>
WHEN<条件表达式1>THEN<表达式1>
[WHEN<条件表达式2>THEN<表达式2>[···]]
[ELSE<表达式n>]
END
格式一例子 :用CASE语句的格式一实现:在堆Stock表的查询中,当仓库号的值是“供电局1#仓库”、“供电局2#仓库”、“供电局3#仓库”时分别返回“北京”、“上海”、“广州”,否则返回“未知”。SELECT mat_num,mat_name,speci,warehouse=CASE warehouse
WHEN '供电局1#仓库' THEN ‘北京'
WHEN '供电局2#仓库' THEN ‘上海'
WHEN '供电局3#仓库' THEN ‘广州'
ELSE '未知'
END
amount,unit,total
FROM Stock
格式二 :CASE
WHEN<条件表达式1>THEN<表达式1>
[WHEN<条件表达式2>THEN<表达式2>[···]]
[ELSE<表达式n>]
END
格式二例子 :SELECT mat_num,mat_name,speci,warehouse=CASE
WHEN '供电局1#仓库' THEN ‘北京'
WHEN '供电局2#仓库' THEN ‘上海'
WHEN '供电局3#仓库' THEN ‘广州'
ELSE '未知'
END
amount,unit,total
FROM Stock
RETURN 语句:
描述 : RETURN语句可以使程序从查询或存储过程返回,使用RETURN语句可以立即从当前程序结构中退出,并且RETURN后面的语句不再执行。
语法 :
RETURN 整型表达式
使用情况 : 一般情况下,只有存储过程中才回用到返回的整型结果,调用存储过程的语句可以根据RETURN返回的值判断下一步应该执行的操作。
这篇关于第四章:1、SQL Server 编程语言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!