SQLserver学习day06 T-SQL程序
来源:互联网 发布:自由职业贷款软件 编辑:程序博客网 时间:2024/05/21 18:33
T-SQL程序
变量
声明变量:
DECLARE @变量名 数据类型
变量赋值:两种方式:
SET赋值 :一般是常量
DECLARE @name varchar(10)SET @name='zhangsan'PRINT @name--打印语句--结果是 zhangsan
SELECT赋值: 从表中查询值赋给变量
--查询赵六的密码赋值给变量pwdDECLARE @pwd varchar(10)SELECT pwd=UserPwd FROM UserInfo WHERE UserName='赵六'PRINT @pwd
SET赋值和SELECT赋值的区别
(1)SET不能同时为多个变量赋值,SELECT可以。
(2)当表达式返回多个值时,不能用SET赋值,比如返回用户表中的所有用户地址,然后赋给变量,这是不成立的。
而用SELECT 赋值时,此时变量的值是返回的列中的最后一个值。
(3)当表达式返回的值是空值时,SET 为变量赋值的结果是NULL,SELECT为变量赋值的结果是变量之前的值不变。
全局变量
①全局变量不是由用户的程序定义的,它们是在服务器级定义的。
②用户只能使用预先定义的全局变量。
③引用全局变量时,必须以标记符“@@”开头。
④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。
具体的全局变量可以查阅帮助文档使用。
数据类型转换
隐式转换:当类型相兼容会发生自动转换。
显式转换:可以使用CONVERT函数和CAST函数进行转换。
CAST 函数 :CAST(转换的表达式 AS 数据类型)
DECLARE @name varchar(10),@age intSET @name='LISA'SET @age=18PRINT @name+CAST(@age AS varchar(10))--不转换的话会报错,将INT 类型转换成 varcharGO
CONVERT 函数: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
IF…ELSE学习
--当变量a大于b时,就交换,否则让a=100,b=200DECLARE @a int,@b int,@t intSET @a=10SET @b=5IF(@a>@b) BEGIN SET @t=@a SET @a=@b SET @b=@t ENDELSE BEGIN SET @a=100 SET @b=200 ENDPRINT @aPRINT @b
CASE..END 学习
--成绩分级,大于90为A,>80&&<90为B,>70%%<80为C,>60&&<70为D,不及格为EDECLARE @score FLOATSET @score=RAND()*100--随机数生成成绩SELECT CASE WHEN @score>90 THEN 'A' WHEN @score>80 AND @score<90 THEN 'B' WHEN @score>70 AND @score<80 THEN 'C' WHEN @score>60 AND @score<70 THEN 'D' ELSE 'E'END
WHILE学习
--计算1-100的累加和DECLARE @x int,@sum intSET @x=1SET @sum=0WHILE(@x<=100)BEGIN SET @sum=@x+@sum SET @x=@x+1ENDPRINT @sum
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+1END
- SQLserver学习day06 T-SQL程序
- SqlServer 2005 T-SQL Query 学习笔记
- 【SQLServer】T-SQL查询学习总结(1)[执行顺序]
- 【SQLServer】T-SQL查询学习总结(2)[基础知识]
- day06-学习
- SQLSERVER T-SQL函数大全
- Sqlserver使用T-SQL编程
- T-SQL sqlServer 创建视图
- 【SQLServer】T-SQL查询学习总结(3)[表运算符-APPLY]
- 【SQLServer】T-SQL查询学习总结(4)[表运算符-PIVOT]
- SQLserver学习day04 T-SQL数据操作(增,删,改) 数据的导入导出 批处理
- SQLserver学习day05 T-SQL数据操作(查询) 常用的函数
- SQLserver学习(四)——T-SQL编程之事务、索引和视图
- Sqlserver 2008 T-sql 备份还原数据库
- T-SQL查询:sqlserver 行列转换
- SQLServer 2008中用T-SQL创建邮件
- T-SQL 查询sqlserver服务器的时区
- SQLServer--T-SQL中的其他函数
- Android--Utils
- 二叉排序树各项操作
- HttpClient已过时,访问网络用HttpURLConnection
- golang---redis入门
- android6.0的坑
- SQLserver学习day06 T-SQL程序
- 安卓5.0以上系统无法调用WebService问题
- imge stitching图像拼接stitching
- 模式识别的基本方法
- jfinal文件form表单上传,ajaxfileupload异步上传
- 安装DirectX SDK时出现Error Code:s1023 的解决方案
- 使用链表与指针,动态开辟空间,录入学生学号及成绩,并输出满足条件的学生。
- iOS 仿淘宝加入购物车 向内凹陷折叠动画效果
- REST+Jersey学习(三)----自己搭个环境:REST+EJB+JPA 框架在 Eclipse+TomEE 开发环境搭建