阅读 114

SQL Server Transact-SQL编程详解

这篇文章主要为大家介绍了SQL Server Transact-SQL编程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

目录
  • 变量

    • 1、 局部变量(Local Variable)

    • 2、 全局变量(Global Variable)

  • 输出语句

    • 逻辑控制语句

      • 1、 if-else判断语句

      • 2、 while…continue…break循环语句

      • 3、 case

      • 4、 其他语句

    • 总结

      T-SQL语句用于管理SQL Server数据库引擎实例,创建和管理数据库对象,以及查询、插入、修改和删除数据。

      变量

      1、 局部变量(Local Variable)

      局部变量是用户可以自定义的变量,它的作用范围是仅在程序内部,在程序中通常用来储存从表中查询到的数据或当做程序执行过程中的暂存变量。使用局部变量必须以@开头,而且必须用declare命令后才能使用。

      基本语法:

      1
      2
      3
      4
      5
      声明变量
      declare @变量名 变量类型 [@变量名 变量类型]
      为变量赋值
      set @变量名 = 变量值;
      select @变量名 = 变量值;

      示例:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      --局部变量
      declare @id char(10)--声明一个长度的变量id
      declare @age int    --声明一个int类型变量age
          select @id = 22    --赋值操作
          set @age = 55    --赋值操作
          print convert(char(10), @age) + '#' + @id
          select @age, @id
      go
      简单hello world示例
      declare @name varchar(20);
      declare @result varchar(200);
      set @name = 'jack';
      set @result = @name + ' say: hello world!';
      select @result;
      查询数据示例
      declare @id int, @name varchar(20);
      set @id = 1;
      select @name = name from student where id = @id;
      select @name;
      select赋值
      declare @name varchar(20);
      select @name = 'jack';
      select * from student where name = @name;

      从上面的示例可以看出,局部变量可用于程序中保存临时数据、传递数据。Set赋值一般用于赋值指定的常量个变量。而select多用于查询的结果进行赋值,当然select也可以将常量赋值给变量。

      注意:在使用select进行赋值的时候,如果查询的结果是多条的情况下,会利用最后一条数据进行赋值,前面的赋值结果将会被覆盖。

      2、 全局变量(Global Variable)

      全局变量是系统内部使用的变量,其作用范围并不局限于某一程序而是任何程序均可随时调用的。全局变量一般存储一些系统的配置设定值、统计数据。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      --局部变量
      declare @id char(10)--声明一个长度的变量id
      declare @age int    --声明一个int类型变量age
          select @id = 22    --赋值操作
          set @age = 55    --赋值操作
          print convert(char(10), @age) + '#' + @id
          select @age, @id
      go
      简单hello world示例
      declare @name varchar(20);
      declare @result varchar(200);
      set @name = 'jack';
      set @result = @name + ' say: hello world!';
      select @result;
      查询数据示例
      declare @id int, @name varchar(20);
      set @id = 1;
      select @name = name from student where id = @id;
      select @name;
      select赋值
      declare @name varchar(20);
      select @name = 'jack';
      select * from student where name = @name;

      输出语句

      T-SQL支持输出语句,用于显示结果。常用输出语句有两种:

      基本语法

      1
      2
      print 变量或表达式
      select 变量或表达式

      示例

      1
      2
      3
      4
      5
      6
      select 1 + 2;
      select @@language;
      select user_name();
      print 1 + 2;
      print @@language;
      print user_name();

      print在输出值不少字符串的情况下,需要用convert转换成字符串才能正常输出,而且字符串的长度在超过8000的字符以后,后面的将不会显示。

      逻辑控制语句

      1、 if-else判断语句

      语法

      1
      2
      3
      4
      5
      6
      if <表达式>
          <命令行或程序块>
      else if <表达式>
          <命令行或程序块>
      else
          <命令行或程序块>

      示例

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      if简单示例
      if 2 > 3
          print '2 > 3';
      else
          print '2 < 3';
      if (2 > 3)
          print '2 > 3';
      else if (3 > 2)
          print '3 > 2';
      else
          print 'other';
      简单查询判断
      declare @id char(10),
              @pid char(20),
              @name varchar(20);
      set @name = '广州';
      select @id = id from ab_area where areaName = @name;
      select @pid = pid from ab_area where id = @id;
      print @id + '#' + @pid;
      if @pid > @id
          begin
              print @id + '%';
              select * from ab_area where pid like @id + '%';
          end
      else
          begin
              print @id + '%';
              print @id + '#' + @pid;
              select * from ab_area where pid = @pid;
          end
      go

      2、 while…continue…break循环语句

      基本语法

      1
      2
      3
      4
      5
      6
      7
      while <表达式>
      begin
         <命令行或程序块>
         [break]
         [continue]
         <命令行或程序块>
      end

      示例

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      --while循环输出到
      declare @i int;
          set @i = 1;
      while (@i < 11)
          begin
              print @i;
              set @i = @i + 1;
          end
      go
      --while continue 输出到
      declare @i int;
          set @i = 1;
      while (@i < 11)
          begin               
              if (@i < 5)
                  begin
                      set @i = @i + 1;
                      continue;       
                  end
              print @i;
              set @i = @i + 1;               
          end
      go
      --while break 输出到
      declare @i int;
          set @i = 1;
      while (1 = 1)
          begin       
              print @i;       
              if (@i >= 5)
                  begin
                      set @i = @i + 1;
                      break;       
                  end       
              set @i = @i + 1;               
          end
      go

      3、 case

      基本语法

      1
      2
      3
      4
      5
      6
      case
         when <条件表达式> then <运算式>
         when <条件表达式> then <运算式>
         when <条件表达式> then <运算式>
         [else <运算式>]
      end

      示例

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      select *,
          case sex
              when 1 then '男'
              when 0 then '女'   
              else '火星人'
          end as '性别'
      from student;
      select areaName, '区域类型' = case
              when areaType = '省' then areaName + areaType
              when areaType = '市' then 'city'
              when areaType = '区' then 'area'
              else 'other'
          end
      from ab_area;

      4、 其他语句

      1
      2
      3
      4
      5
      6
      批处理语句go
      Use master
      Go
      延时执行,类似于定时器、休眠等
      waitfor delay '00:00:03';--定时三秒后执行
      print '定时三秒后执行';

      总结

      本篇文章就到这里了,希望能够给你带来帮助

      原文链接:https://www.cnblogs.com/hoojo/archive/2011/07/15/2107740.html


      文章分类
      代码人生
      版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
      相关推荐