- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Serve的程序设计
第10章 Transact-SQL程序设计
教学目标
终极目标: 会利用变量、函数、流程控制语句编写Transact-SQL程序实现对数据库系统的操作。
促成目标:1. 能正确理解和使用变量
2. 能正确理解和使用函数
3. 能正确理解和使用流程控制语句
相关知识
什么是Transact-SQL?
前面我们已经学习了有关SQL的知识,SQL是关系型数据库系统的标准语言,标准的SQL语句几乎可以在所有的关系型数据库上可以不加修改地使用。但标准的SQL不支持流程控制,仅仅是一些简单的语句,有时候使用起来不方便。为此,大型的关系型数据库系统都在标准的SQL基础上,结合自身的特点推出了可以编程的、结构化的SQL编程语言,比如SQL Server2000的Transact-SQL、Oracle9i的PL/SQL。
可能有同学会问了,SQL不是很好用吗,我们什么时候需要使用Transact-SQL呢?
如果你的工作仅仅是简单地查询SQL Server2000数据库的数据,那么学习SQL也就够了。对于一些复杂的查询,SQL就鞭长莫及了,尤其是如果在查询过程中需要变量、判断、循环等控制时就必须使用Transact-SQL。
建立SQL Server2000数据库的目的还是为了开发各种应用系统,要开发C/S模式的数据库应用系统,往往会用到存储过程、触发器、函数这样的编程对象,这时就必须使用Transact-SQL。
Transact-SQL程序的结构
其实我们前面学习的SQL范例都可以称为是Transact-SQL程序。下面我们通过一个实例来说明一个稍复杂的Transact-SQL。
/*Transact-SQL程序的实例*/
use school
go
declare @avgrade int
--判断成绩
set @avgrade=60
if(select avg(grade)
from sc
where cno=c01)=@avgrade
--输出结果
select 课程平均成绩超过+convert(varchar(3),@avgrade)
else
--输出结果
select 课程平均成绩不超过+convert(varchar(3),@avgrade)
--执行批处理
go
由此可见,Transact-SQL程序主要的语法要素如下:
变量
注释符
运算符
函数
流程控制语句
批处理
10.1 变量
Transact-SQL 中可以使用两种变量:局部变量和全局变量。
10.1.1局部变量
局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。
局部变量必须以@ 开头,而且必须先用DECLARE 命令声明后才可使用。其说明形式如下:
DECLARE @变量名 变量类型[,@变量名变量类型…]
在使用DECLARE命令声明以后,所有的变量都被赋予初值NULL
例:声明一个变量
Declare @i char(5)
可以在一个declare 语句中声明多个变量
例: declare @i int,@j int,@k int
在Transact-SQL 中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值,必须使用SELECT 或SET 命令来设定变量的值。其语法如下:
SELECT @变量名= 变量值
SET @变量名= 变量值
【注意】:SET与SELECT的区别
下表列出SET与SELECT的区别:
set select 同时对多个变量同时赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值 变量被赋null值 变量保持原值
下面以具体示例来说明问题:
create table chinadba1(
userid int ,
addr varchar(128)
)
insert into chinadba1(userid,addr) values(1, addr1)
insert into chinadba1(userid,addr) values(2, addr2)
insert into chinadba1(userid,addr) values(3, addr3)
1.同时对多个变量同时赋值, 使用set赋值
declare @addr1 varchar(60),@addr2 varchar(60)
set @addr1=aaa,@addr2=bbb
, 附近有语法错误。
同时对多个变量同时赋值 ,
您可能关注的文档
- S6LOL虚空遁地雷克赛打野出装顺序,挖掘机攻略.doc
- S907型角位移传器检修规程0418.doc
- Saber电源仿真-基础篇.doc
- Samplitud 说明书.doc
- S120笔记二.doc
- SAP自学系列-采主数据维护业务流程.doc
- RX24.RXG2型散热器安装功率线绕固定电阻器.doc
- SARS防治消毒技指导原则.doc
- SDH常见告警和性故障分析.doc
- sbo物料主数据操说明.doc
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
最近下载
- 13套题,必过,阿坝州拟任科级领导干部任职资格政治理论考试题汇总.pdf
- 2023年关于医药领域腐败问题全面集中整治自查自纠报告与医院开展医疗领域群众身边腐败作风问题专项整治工作总结【两篇】.docx VIP
- 高中语文必修二课件--念奴娇·赤壁怀古.ppt VIP
- 高中化学选修三全套.pptx VIP
- 中国特色社会主义理论体系的形成的历史条件.ppt VIP
- 领导讲话稿写作方法和技巧.ppt
- 高中:原创语文《反对党八股》(定稿).pptx VIP
- 液压升降机油路图液压升降机毕业设计.doc VIP
- 《管理学原理》全套课后习题答案(大学期末复习资料).docx
- 高中课件:原创语文《反对党八股》公开课课件.pptx VIP
文档评论(0)