SqlServer教程

第四章:1、SQL Server 编程语言

本文主要是介绍第四章:1、SQL Server 编程语言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

SQL Server 编程语言T-SQL

  • 4.1.1 变量
  • 4.1.2 显示信息
  • 4.1.3 注释语句
  • 4.1.4 流程控制语句

4.1.1 变量

  • 定义

    1. 变量是SQL Server 中由系统或用户定义的可赋值的条件,分为全局变量局部变量
    2. 全局变量不能由用户定义,也不能被显示地赋值或声明,其名称以两个@字符(即@@)开头
  • 声明格式

    1. 格式
      Declare @局部变量名 数据类型[, @局部变量名 数据类型 ,···]
      在同一个Declare语句中可以同时声明多个变量,变量之间用逗号隔开。

    2. 例子

      Declare @variable1 int,@variable2 datetime
      
  • 赋值语句

    1. 赋值语句SET:
      采用SET语句的语法格式为:
        SET @变量名 = 表达式
    2. 赋值语句SELECT
      采用SETECT语句的语句格式为:
        SELECT @变量名 = 表达式

        SELECT @变量名 = 列名或表达式[,@变量名2 = 列名或表达式, ···]
        FROM 表名
        条件表达式
      如果SELECT语句返回多个数值,则局部变量取最后一个返回值。

4.1.2 显示信息

  • 概念
    在执行SQL语句的过程中,如果需要为用户或应用程序提供信息,则可以使用PRINT语句或RAISERROR语句。
  • PRINT语句
    1. 作用
      PRINT语句用于在指定设备上(显示器)显示信息,可以显示ASCⅡ字符串或变量,可以输出的数据类型只有char,nchar,varchar,nvarchar,所输出的字符串可以用“+”连接。
    2. 例子
      PRINT ‘你好,现在是’+CAST(year(getdate())as varchar(10))+‘年!’;
    3. 注意
      使用PRINT语句只能显示字符数据类型,如果是非字符类型,则需要**使用COUVERT()或者CAST()**函数进行转换。
  • RAISERROR语句:
    1. 作用:
      RAISERROR语句用于在SQL Server返回错误消息的同时返回用户指定的信息,它设置了一个系统标记,记录产生的错误。
    2. 语法:
      RAISERROR(<错误号>|<‘错误消息’>,[严重度][,状态[,参数1][,参数2]])
      错误号是整型表达式,是用户指定的错误或信息号,取值范围为50 000~2 147 483 647,最后一个错误代码存储在全局变量@@ERROR中。错误信息用于指定用户定义的错误信息,文本最长为255个字符,严重度默认为16。

4.1.3 注释语句

  • 语法:
    /* 注释文本*/(多行注释)  或  - - 注释文本(单行注释)

4.1.4 流程控制语句

  • BEGIN···END语句:

    1. 描述
        使用BEGIN···END语句可以将多条SQL语句封装起来,形成一个语句块,使这些语句作为一个整体执行。

    2. 格式

      BEGIN
      	语句
      	···
      END
      
  • IF···ELSE语句:

    1. 描述
        IF···ELSE语句是条件判断语句,根据表达式的真假选择执行某个语句或者语句块。
    2. 语法
      IF 条件表达式
      	语句
      [ELSE[IF 条件表达式]
      	语句]
      
    3. 例子:在电力抢修工程数据库中,如果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
      
    4. 注意:IF语句常与关键字exists 结合使用,用于检测是否存在满足条件的记录,只要检测有一行记录存在就为真。
  • WHILE循环语句:

    1. 描述
        在WHILE语句中,还可以使用BREAK和CONTINUE使程序从循环中跳出。BREAK语句在程序中跳出以后接着执行END后面的第一条语句。CONTINUE语句使程序跳过循环内COUNTUNE语句后面的语句,重新判断逻辑条件,如果满足条件,则重新执行循环体内的SQL语句。
    2. 语法
      WHIlE 逻辑表达式
      	语句
      
    3. 例子:将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语句:

    1. 描述
        使用GOTO语句可以使SQL语句的执行流程无条件地转移到指定的标号位置,GOTO语句和标号可以用在用户巨快,批处理和存储过程中,标号的命名符合标识符命名规则。GOTO语句经常用在WHILE和IF语句中,以跳出循环或分支处理。
    2. 语法
      GOTO lable
      ···
      lable;
      
  • WAITFOR语句:

    1. 描述
        WAITFOR语句可以在某一个时刻或某一个时间间隔之后执行SQl语句、语句块、存储过程等。
    2. 语法
      WAITFRO{DELAY'时间’|TIME‘时间’}
      
      其中,DELAY表示等候由“时间‘参数指定的时间间隔;TIME表示等候到指定的”时间“为止。
      时间参数的数据类型为datetime,但不带日期,格式为”hh.mm.ss“。
      
    3. 例子:使用WAITFOR语句表示等候一分钟后显示Stock表,等到12:00:00时显示Salvaging表。
      WAITFOR DELAY ‘00:01:00’
      SELECT *
      FROM Stock
      
      
      WAITFOR TIME ‘12:00:00’
      SELECT *
      FROM Salvaging
      
  • CASE语句:

    1. 描述
      CASE语句用于根据多个分支条件确定执行内容。CASE语句列出一个或多个分支条件,并对每个分支条件给出候选值。
      然后按顺序测试分支条件是否得到满足,一旦有一个分支条件满足,CASE语句就将该条件对应的候选值返回。
    2. 格式一
      CASE<表达式>
      	WHEN<条件表达式1>THEN<表达式1>
      	[WHEN<条件表达式2>THEN<表达式2>[···]]
      	[ELSE<表达式n>]
      END
      
    3. 格式一例子:用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
      
    4. 格式二
      CASE
      	WHEN<条件表达式1>THEN<表达式1>
      	[WHEN<条件表达式2>THEN<表达式2>[···]]
      	[ELSE<表达式n>]
      END
      
    5. 格式二例子
      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语句:

    1. 描述
      RETURN语句可以使程序从查询或存储过程返回,使用RETURN语句可以立即从当前程序结构中退出,并且RETURN后面的语句不再执行。

    2. 语法

      RETURN 整型表达式
      
    3. 使用情况
      一般情况下,只有存储过程中才回用到返回的整型结果,调用存储过程的语句可以根据RETURN返回的值判断下一步应该执行的操作。

这篇关于第四章:1、SQL Server 编程语言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!