MSSQL 局部变量与全局变量
来源:互联网 发布:华为手机记录运动数据 编辑:程序博客网 时间:2024/05/16 05:52
--一、变量分为:
--(1)局部变量:
--局部变量必须以标记@作为前缀,如@age
--局部变量的使用也是先声明,再赋值
--变量语法:DECLARE @变量名 数据类型
--DECLARE @name VARCHAR(10);
--DECLARE @age INT ;
-- DECLARE @address VARCHAR(50);
--给变量赋值:
--SET @变量名 = 值 或 (单个赋值)
--声明变量
-- DECLARE @name VARCHAR(10);
--DECLARE @age INT ;
-- DECLARE @address VARCHAR(50);
-- --赋值
-- SET @name='林鑫';
-- SET @age=20;
-- --输出结果
-- PRINT @name;
-- PRINT @age;
-- SELECT @变量名 = 值 (可以多个赋值,用“,”隔开)
USE MySchool
go
--声明变量
DECLARE @name VARCHAR(10);
DECLARE @age INT ;
DECLARE @address VARCHAR(50);
--赋值
SELECT @name='李凤',@age=19,@address='杭州市西湖区BDQN';
--输出结果
SELECT @name 姓名,@age 年龄,@address 地址;
--声明变量的同时赋值(一步到位)
DECLARE @username VARCHAR(10)='sa',@no INT=1101;
--输出结果
-- SELECT @username 姓名,@no 编号;
--???类型转换
--PRINT @username+','+@no;
--案例1:T-SQL查找大白熊及他的相邻学号学生
SELECT *FROM student;
DECLARE @sno INT;
-- 第一步:找出“大白熊”的学号
SELECT @sno=studentno FROM student WHERE StudentName='大白熊';
--第二步:大白熊的学号加1或减1
SELECT * FROM student WHERE StudentNo=@sno+1 OR StudentNo=@sno-1
--set与select区别
--(1)select变量保持原值,set不支持;select支持
--(2)表达式返回多个值时 set出错;select将返回的最后一个值赋给变量
DECLARE @addr VARCHAR(20);
--SELECT Address FROM student;
--set出错
--SET @addr=(SELECT Address FROM student)
--select将返回的最后一个值赋给变量
SELECT @addr=ADDRESS FROM dbo.Student;
PRINT @addr;
--(3)select将返回的最后一个值赋给变量,set变量被赋NULL值;select变量保持原值
DECLARE @addrs VARCHAR(20)='杭州市';
--set变量被赋NULL值
--SET @addrs=(SELECT Address FROM student WHERE 1<0)
--SELECT @addrs;
--select变量保持原值
SELECT @addrs=ADDRESS FROM dbo.Student WHERE 1<0;
SELECT @addrs;
--(2)全局变量:
--全局变量必须以标记@@作为前缀,如@@version
--全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
SELECT @@SERVERNAME 服务器名称, @@VERSION 版本信息
--@@error=0没有错误;>0有错误
PRINT @@ERROR
SELECT * FROM student;
SELECT * FROM dbo.Grade;
--
INSERT INTO student(LoginPwd,studentname,Gender,GradeId,Birthday)
VALUES('123123','李凤',0,5,'1998-10-1')
--类型转换
--(1)CAST(表达式 AS 数据类型)
--PRINT '当前错误号:'+CAST(@@ERROR AS VARCHAR(20));
--(2)CONVERT(数据类型,表达式,样式 )
PRINT '当前错误号:'+convert(VARCHAR(20),@@error);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),102);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),110);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),120);
--CONVERT()与CAST() 的不同点是:可以指定转换的样式
--案例2:查询学号是23214的学生参加2012年9月21日
--的“Java ”课程考试的成绩,要求输出学生姓名和成绩
SELECT * FROM student;
SELECT * FROM dbo.Result;
SELECT * FROM dbo.Subject;
DECLARE @sid INT,@snames VARCHAR(20),@score INT;
-- 第一步:根据“Java ”课程找到课程编号
SELECT @sid=SubjectId FROM dbo.Subject WHERE SubjectName='java'
--第二步:根据学号查出学生姓名
SELECT @snames=StudentName FROM student WHERE StudentNo=23214
--第三步:按照指定日期、学号和课程查询得到考试成绩
--学号是23214的学生参加2012年9月21日的“Java ”课程考试的成绩
SELECT @score=StudentResult FROM dbo.Result
WHERE StudentNo=23214 AND ExamDate='2012-09-21' AND SubjectId=@sid
--第三步:输出学生的姓名和考试成绩
SELECT @snames 姓名,@score 考试成绩
-
--(1)局部变量:
--局部变量必须以标记@作为前缀,如@age
--局部变量的使用也是先声明,再赋值
--变量语法:DECLARE @变量名 数据类型
--DECLARE @name VARCHAR(10);
--DECLARE @age INT ;
-- DECLARE @address VARCHAR(50);
--给变量赋值:
--SET @变量名 = 值 或 (单个赋值)
--声明变量
-- DECLARE @name VARCHAR(10);
--DECLARE @age INT ;
-- DECLARE @address VARCHAR(50);
-- --赋值
-- SET @name='林鑫';
-- SET @age=20;
-- --输出结果
-- PRINT @name;
-- PRINT @age;
-- SELECT @变量名 = 值 (可以多个赋值,用“,”隔开)
USE MySchool
go
--声明变量
DECLARE @name VARCHAR(10);
DECLARE @age INT ;
DECLARE @address VARCHAR(50);
--赋值
SELECT @name='李凤',@age=19,@address='杭州市西湖区BDQN';
--输出结果
SELECT @name 姓名,@age 年龄,@address 地址;
--声明变量的同时赋值(一步到位)
DECLARE @username VARCHAR(10)='sa',@no INT=1101;
--输出结果
-- SELECT @username 姓名,@no 编号;
--???类型转换
--PRINT @username+','+@no;
--案例1:T-SQL查找大白熊及他的相邻学号学生
SELECT *FROM student;
DECLARE @sno INT;
-- 第一步:找出“大白熊”的学号
SELECT @sno=studentno FROM student WHERE StudentName='大白熊';
--第二步:大白熊的学号加1或减1
SELECT * FROM student WHERE StudentNo=@sno+1 OR StudentNo=@sno-1
--set与select区别
--(1)select变量保持原值,set不支持;select支持
--(2)表达式返回多个值时 set出错;select将返回的最后一个值赋给变量
DECLARE @addr VARCHAR(20);
--SELECT Address FROM student;
--set出错
--SET @addr=(SELECT Address FROM student)
--select将返回的最后一个值赋给变量
SELECT @addr=ADDRESS FROM dbo.Student;
PRINT @addr;
--(3)select将返回的最后一个值赋给变量,set变量被赋NULL值;select变量保持原值
DECLARE @addrs VARCHAR(20)='杭州市';
--set变量被赋NULL值
--SET @addrs=(SELECT Address FROM student WHERE 1<0)
--SELECT @addrs;
--select变量保持原值
SELECT @addrs=ADDRESS FROM dbo.Student WHERE 1<0;
SELECT @addrs;
--(2)全局变量:
--全局变量必须以标记@@作为前缀,如@@version
--全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
SELECT @@SERVERNAME 服务器名称, @@VERSION 版本信息
--@@error=0没有错误;>0有错误
PRINT @@ERROR
SELECT * FROM student;
SELECT * FROM dbo.Grade;
--
INSERT INTO student(LoginPwd,studentname,Gender,GradeId,Birthday)
VALUES('123123','李凤',0,5,'1998-10-1')
--类型转换
--(1)CAST(表达式 AS 数据类型)
--PRINT '当前错误号:'+CAST(@@ERROR AS VARCHAR(20));
--(2)CONVERT(数据类型,表达式,样式 )
PRINT '当前错误号:'+convert(VARCHAR(20),@@error);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),102);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),110);
PRINT '日期:'+CONVERT(VARCHAR(20),GETDATE(),120);
--CONVERT()与CAST() 的不同点是:可以指定转换的样式
--案例2:查询学号是23214的学生参加2012年9月21日
--的“Java ”课程考试的成绩,要求输出学生姓名和成绩
SELECT * FROM student;
SELECT * FROM dbo.Result;
SELECT * FROM dbo.Subject;
DECLARE @sid INT,@snames VARCHAR(20),@score INT;
-- 第一步:根据“Java ”课程找到课程编号
SELECT @sid=SubjectId FROM dbo.Subject WHERE SubjectName='java'
--第二步:根据学号查出学生姓名
SELECT @snames=StudentName FROM student WHERE StudentNo=23214
--第三步:按照指定日期、学号和课程查询得到考试成绩
--学号是23214的学生参加2012年9月21日的“Java ”课程考试的成绩
SELECT @score=StudentResult FROM dbo.Result
WHERE StudentNo=23214 AND ExamDate='2012-09-21' AND SubjectId=@sid
--第三步:输出学生的姓名和考试成绩
SELECT @snames 姓名,@score 考试成绩
-
0 0
- MSSQL 局部变量与全局变量
- 全局变量与局部变量
- 局部变量与全局变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 局部变量与全局变量
- 局部变量与全局变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 全局变量与局部变量
- 实例详解Spring MVC入门使用
- 字符串转换成json的三种方式(留存备用)
- uva 657 The die in cast (掷骰子) —— DFS
- 安装node-sass时,遇到的错误MSBUILD: error MSB3428 Visual C++ VCBuild.exe 1) .NET Framework 2.0 SDK Microsoft
- zoj 2236 Wireless Network
- MSSQL 局部变量与全局变量
- js验证字符串是否包含中文、数字
- NOIP2007题解
- 如何在QT中显示中文字符
- ListView-富有弹性的ListView
- 关于new和delete中的一些问题
- dubbo.xsd下载文件路径
- Max Script|加密写法
- Linux下find命令