zoukankan      html  css  js  c++  java
  • 8-01变量

    变量:指的是在程序运行过程中可以发生变化的量,

    可以储存数据值的对象,能够向SQL语句传递数据。

    变量的分类:

    全局变量:系统定义和维护,可以直接以@@开头。

    局部变量:有操作者定义,以@开头,用关键字DECLARE声明。

    特点:先声明在赋值。

    作用域:只在定义它的批处理或过程中可见。

    语法:

    DELARE @变量名  数据类型

    变量赋值:

    关键字:SET-给变量赋值。

    关键字:SELECT-从表中查询数据,再赋值给变量。

    SET与SELECT语句赋值的区别:

    1:SET不能用于对多个变量赋值,SELECT可以。

    2:表达式来返回值的时候SET赋NULL,SELECT保持原值不变。

    --声明变量:
    DELARE @Id  varchar, @PWD   varchar(10)
    --使用SET给变量赋值:
    SET  ID='bobo'
    --使用SELECT 给变量赋值:
    SELECT  @PWD=UserPwd  FROM  UserId  WHERE  ID=@Id
    

    在下面输出一下看看有没有赋值成功:

    PRINT   @Id
    PRINT @PWD
    GO

      

    现在来查询用户表bobo的用户:

    SELECT *FROM   UserInfo  WHERE   UserID=@Id
    

    但是在这里会报一个错误,这是就是作用域问题,因为声明在批处理当中,所以当批处理结束后就不能使用了,

    想使用的话把GO注释掉就可以了。

    当返回值为多个时,来用SET赋值:

    SET  @ID=(SELECT UserAddress   FROM UserInfo)
    

     

    这中情况用SET的话会报错,必须用SELECT。

    SET对表达式无返回值的时候,将空值赋给变量:

    DELARE  @name varchar(10)
    SET  @name='张三'
    SET  @name=(SELECT UserName  FROM  UseInfo WHERE  UserId='yaya'  )
    

      

    用SELECT给无返回值的表达式复赋值:

    SELECT   @name=(SELECT UserName  FROM  UseInfo WHERE  UserId='yaya'  )
    SELECT  @name
    

      

  • 相关阅读:
    HDU 1269 迷宫城堡
    HDU 4771 Stealing Harry Potter's Precious
    HDU 4772 Zhuge Liang's Password
    HDU 1690 Bus System
    HDU 2112 HDU Today
    HDU 1385 Minimum Transport Cost
    HDU 1596 find the safest road
    HDU 2680 Choose the best route
    HDU 2066 一个人的旅行
    AssetBundle管理机制(下)
  • 原文地址:https://www.cnblogs.com/gcmwalker/p/6090948.html
Copyright © 2011-2022 走看看