欢迎来到天天文库
浏览记录
ID:40238981
大小:2.48 MB
页数:94页
时间:2019-07-28
《SQL Server 2005数据库实践教程——开发与设计篇钱哨 第2章 T SQL 程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLServer2005数据库实践教程——开发与设计篇主编:钱哨中国水利水电出版社第2章T-SQL程序设计基础1本章概述2.1概述2.2注释2.3变量2.4运算符2.5SQL函数2.6流程控制语句22.1概述T-SQL就是Transact-SQL,是标准SQL在MSSQL环境下程式设计语言的增强版,它是用来让应用程式与SQLServer沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(例如IF和WHILE)让程式设计更有弹性,T-SQL的功能随著新版的SQLServer而持续成长。T-SQL的批处理是一组的扩展SQL语句,在
2、一个批处理中可以包含一条或多条Transact-SQL语句,成为一个语句组。两个GO之间的SQL语句作为一个批处理。这样的语句组从应用程序一次性地发送到SQLServer服务器进行执行。SQLServer服务器将批处理编译成一个可执行单元,称为执行计划。3示例--该批处理执行打开数据库UsesampleGo/*批处理结束标志*/--该批处理检索项目部员工Select*From员工数据表Where所属部门=‘项目部’and工资>2000Orderby姓名Go--下面的批处理创建视图CreateviewPM-ViewAsSelect*from员工数据表where所属部门=‘项目部’Go4
3、2.2格式化的TSQL代码在SQLServer中,有两种类型的注释字符:单行注释:使用两个连在一起的减号“--”作为注释符;多行注释:使用“/**/”作为注释符。2.2.1注释2.2.2结束TSQL语句的标准TSQL标准规定在每个命令行末尾使用分号结束该部分的批处理TSQL语句,但需要注意的是,TSQL技术分号是可选择的,但是请不要在下面的位置使用分号:不要在tryend后面添加分号不要在if语句后面添加分号必须在CET之前添加分号52.3变量2.3.1全局变量全局变量在整个SQLServer系统内使用。存储的通常是一些SQLServer的配置设定值和统计数据。在使用全局变量时应该注
4、意以下几点:全局变量是在服务器级定义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“@@”开头。全局变量对用户来说是只读的。局部变量的名称不能与全局变量的名称相同有关全局变量的全部内容和解释参见帮助文档6举例SQL-sever提供的全局变量共有33个,但是并不是每一个都会用到。下面举例说明全局变量@@ERROR的用法:UsesampleGo--将项目部的工资更新为Update员工数据表Set工资=3000where所属部门='项目部'--检查是否出现限制检查冲突If@@ERROR=547print'出现限制检查冲突,请检查需要更新的数据‘@@ERROR全局变量将返回
5、最后执行的T-SQL语句的错误代码,数据类型为integer,如果成功@@ERROR返回0,否则返回错误代码。有关错误代码的信息请在sysmessages系统表中查找。本例子中检测限制检查冲突。7举例下面举例说明全局变量@@RowCount的用法:该变量用以判别查询是否成功,并返回查询到的行数。updatestudentsetsname='叮当'wheresname='老叮当';if@@rowcount=0beginprint'没有修改任何行'end82.3变量2.3.2局部变量利用局部变量还可以保存程序执行过程中的中间数据值,保存由存储过程返回的数据值等。1.局部变量的定义必须先用
6、DECLARE命令定义后才可以使用。DECLAER{@local_variabledata_type}[…n]2.局部变量的赋值方法SET{{@local_variable=expression}或者SELECT{@local_variable=expression}[,...n]91、通过SET进行附值declare@char1float,@numchar(40)select@char1=max(degree)fromscore,coursewherecname='高等数学'andscore.cno=course.cnoset@num='高等数学的最高成绩是:'print@num+
7、STR(@char1)2、通过SELECT进行附值注意事项:(1)如果查询之中select返回多个值,则仅仅将最后一个数值附值给变量(2)如果没有返回值则保持当前的变量值案例见下10举例:UsesampleGo--开始声明局部变量Declare@max_salaryint--将其赋值为全体员工的工资最大值Select@max_salary=max(工资)from员工数据表Go(注意:局部变量的作用范围是从声明该局部变量的地方开始到声明局部变量的批处理或存储
此文档下载收益归作者所有