开发者

SQL Server Transact-SQL编程详解

开发者 https://www.devze.com 2022-12-12 13:47 出处:网络 作者: hoojo
目录变量1、 局部变量(Local Variable)2、 全局变量(Global Variable)输出语句逻辑控制语句1、 if-else判断语句2、 while…continue…break循环语句3、 case4、 其他语句总结T-SQL语句用于管理SQL S
目录
  • 变量
    • 1、 局部变量(Local Variable)
    • 2、 全局变量(Global Variable)
  • 输出语句
    • 逻辑控制语句
      • 1、 if-else判断语句
      • 2、 while…continue…break循环语句
      • 3、 case
      • 4、 其他语句
    • 总结

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

      变量

      1、 局部变量(Local Variable)

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

      基本语法:

      声明变量
      declare @变量名 变量类型 [@变量名 变量类型]
      为变量赋值
      set @变量名 = 变量值;
      select @变量名 = 变量值;

      示例:

      --局部变量
      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)

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

      --局部变量
      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);
      declarwww.devze.come @result varchar(200);
      set @name = 'jack';
      setcKNcLgTvGQ @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支持输出语句,用于显示结果。常用输出语句有两种:

      基本语法

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

      示例

      select 1 + 2;
      select @@language;
      select user_name();
      print 1 + 2;
      print @@language;
      print user_name();

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

      逻辑控制语句

      1、 if-else判断语句

      语法

      if <表达式>
          <命令行或程序块>
      else if <表达式>
          <命令行或程序块>
      else
          <命令行或程序块>

      示例

      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&he开发者_SQLitellip;continue…break循环语句

      基本语法

      while <表达式>
      begin
         <命令行或程序块>
         [break]
         [continue]
         <命令行或程序块>
      end

      示例

      --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;
        cKNcLgTvGQ  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

      基本语法

      case
         when &www.devze.comlt;条件表达式> then <运算式>
         when <条件表达式> then <运算式>
         when <条件表达式> then <运算式>
         [else <运算式>]
      end

      示例

      select *,
          case sex 
              when 1 then '男'
              when 0 then '女'    
              else '火星人'
          end as '性别'
      from student;
      select areaName, '区域类型' = case
              when areaType = '省' then areaName + areaTyp编程客栈e
              when areaType = '市' then 'city'
              when areaType = '区' then 'area'
              else 'other'
          end
      from ab_area;

      4、 其他语句

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

      总结

      本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号