• SQL数据库—<4>SQL编程--简单学习


    • 数据类型:列的类型
    • 变量定义:declare 变量名 类型名
          变量名:@开头
    • 赋值和取值
          赋值:set/select 变量=值
          取值:变量名
      例:
      declare @a varchar(50)   --定义变量
      set @a = 'hello world'    --给变量赋值
      --select @a = 'hello world' --给变量赋值
      print @a    --取值输出
    • 运算符:算术、关系、逻辑、其它
      算术:+ - * / % 没有++ --
      关系:> < >= <= =  <> !=
      逻辑:and or not
      其它:between...and...  exists  like  is   没有?:,也没有%= += -=....
    • 条件分支
      if 表达式
      begin
      end
      else
      begin
      end
    • 循环:略
    • 其他:略

    下面内容转载 ---地址
    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)
    全局变量是系统内部使用的变量,其作用范围并不局限于某一程序而是任何程序均可随时调用的。全局变量一般存储一些系统的配置设定值、统计数据。
    全局变量
    select @@identity;--最后一次自增的值
    select identity(int, 1, 1) as id into tab from student;--将studeng表的烈属,以/1自增形式创建一个tab
    select * from tab;
    select @@rowcount;--影响行数
    select @@cursor_rows;--返回连接上打开的游标的当前限定行的数目
    select @@error;--T-SQL的错误号
    select @@procid;
     
    --配置函数
    set datefirst 7;--设置每周的第一天,表示周日
    select @@datefirst as '星期的第一天', datepart(dw, getDate()) AS '今天是星期';
    select @@dbts;--返回当前数据库唯一时间戳
    set language 'Italian';
    select @@langId as 'Language ID';--返回语言id
    select @@language as 'Language Name';--返回当前语言名称
    select @@lock_timeout;--返回当前会话的当前锁定超时设置(毫秒)
    select @@max_connections;--返回SQL Server 实例允许同时进行的最大用户连接数
    select @@MAX_PRECISION AS 'Max Precision';--返回decimal 和numeric 数据类型所用的精度级别
    select @@SERVERNAME;--SQL Server 的本地服务器的名称
    select @@SERVICENAME;--服务名
    select @@SPID;--当前会话进程id
    select @@textSize;
    select @@version;--当前数据库版本信息
     
    --系统统计函数
    select @@CONNECTIONS;--连接数
    select @@PACK_RECEIVED;
    select @@CPU_BUSY;
    select @@PACK_SENT;
    select @@TIMETICKS;
    select @@IDLE;
    select @@TOTAL_ERRORS;
    select @@IO_BUSY;
    select @@TOTAL_READ;--读取磁盘次数
    select @@PACKET_ERRORS;--发生的网络数据包错误数
    select @@TOTAL_WRITE;--sqlserver执行的磁盘写入次数
    Ø 输出语句
    T-SQL支持输出语句,用于显示结果。常用输出语句有两种:
    基本语法
    print 变量或表达式
    select 变量或表达式
    示例
    select 1 + 2;
    select @@language;
    select user_name();
     
    print 1 + 2;
    print @@language;
    print user_name();
    print在输出值不少字符串的情况下,需要用convert转换成字符串才能正常输出,而且字符串的长度在超过8000的字符以后,后面的将不会显示。
    Ø 逻辑控制语句
    1if-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
    2whilecontinue…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;
        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
    3case
    基本语法
    case
       when <条件表达式> 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 + areaType
            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 '定时三秒后执行';

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    博文来源广泛,如原作者认为我侵犯知识产权,请尽快给我发邮件 664507902@qq.com联系,我将以第一时间删除相关内容。

  • 相关阅读:
    【转】在Ubuntu上下载、编译和安装Android最新源代码
    【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
    linux kernel API and google android compile guide
    【转】如何单独编译Android源代码中的模块--不错
    【转】Android源代码编译命令m/mm/mmm/make分析--不错
    【转】linux设备驱动之MMC SD卡——核心层简单分析
    DELL笔记本拆机添加内存条
    【转】windows7 64位系统认不出8g内存显示只有3G可用
    matlab 神经网络工具箱的实用
    学习算法收敛条件的判断
  • 原文地址:https://www.cnblogs.com/ooip/p/4542941.html
  • Copyright © 2020-2023  润新知