声明变量: DECLARE @变量名 数据类型
变量赋值:两种方式: SET赋值 :一般是常量
DECLARE @name varchar(10) SET @name='zhangsan' PRINT @name--打印语句 --结果是 zhangsanSELECT赋值: 从表中查询值赋给变量
--查询赵六的密码赋值给变量pwd DECLARE @pwd varchar(10) SELECT pwd=UserPwd FROM UserInfo WHERE UserName='赵六' PRINT @pwdSET赋值和SELECT赋值的区别
(1)SET不能同时为多个变量赋值,SELECT可以。
(2)当表达式返回多个值时,不能用SET赋值,比如返回用户表中的所有用户地址,然后赋给变量,这是不成立的。 而用SELECT 赋值时,此时变量的值是返回的列中的最后一个值。
(3)当表达式返回的值是空值时,SET 为变量赋值的结果是NULL,SELECT为变量赋值的结果是变量之前的值不变。
①全局变量不是由用户的程序定义的,它们是在服务器级定义的。 ②用户只能使用预先定义的全局变量。 ③引用全局变量时,必须以标记符“@@”开头。 ④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。
具体的全局变量可以查阅帮助文档使用。
隐式转换:当类型相兼容会发生自动转换。
显式转换:可以使用CONVERT函数和CAST函数进行转换。
CAST 函数 :CAST(转换的表达式 AS 数据类型)
DECLARE @name varchar(10),@age int SET @name='LISA' SET @age=18 PRINT @name+CAST(@age AS varchar(10))--不转换的话会报错,将INT 类型转换成 varchar GOCONVERT 函数:CONVERT (数据类型,转换的表达式,[格式])
两者转换没有什么区别,在转换日期的时候CONVERT更有优势,因为可以指定格式。
--对日期进行转换 PRINT CAST(GETDATE() AS varchar(10)) PRINT CONVERT(varchar(10),GETDATE(),111) PRINT CONVERT(varchar(10),GETDATE(),105)用来控制程序执行流程的语句。
顺序结构:BEGIN…END 分支结构:IF…ELSE 或 CASE….END 循环结构:WHILE
CONTINUE : 让程序跳过CONTINUE关键字以后的语句,并且回到while循环的开始,相当于跳过一次循环。
BREAK:让程序完全跳出循环,结束WHILE 语句。
RETURN:结束整个程序。
打印九九乘法表
--利用双层循环打印九九乘法表 DECLARE @i int,@j int,@str varchar(100) SELECT @i=1,@j=1,@str='' WHILE(@i<=9) BEGIN SET @j=@i WHILE(@j<=@i) BEGIN SET @str=@str+CAST(@i AS VARCHAR(2))+'*'+CAST(@j AS VARCHAR(2))+'='+CAST(@i*@J AS VARCHAR(2))+' ' PRINT @str SET @j=@j+1 END SET @i=@i+1 END