- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6、数据库端程序设计
批处理和事务
变量的定义和使用
流程控制语句
函数
触发器
存储过程
游标
临时表;8.1 批处理和事务;使用事务可以保证一组SQL语句的执行,要么全部成功,若有一句语句不成功,则全部语句均不执行。
事务的开始使用BEGIN TRANSACTION
事务的结束可以是:
COMMIT:提交,即所有语句均执行
ROLLBAK:回滚,即取消所有语句
例:用一个事务完成下列工作
students中address全部为ShangHai
删除‘000005’号学生(先添加)
分别用COMMIT和ROLLBACK结束该事务。;操作步骤是:
在查询分析器中运行:
1.START TRANSACTION
UPDATE students SET address=‘ShangHai’
DELETE FROM students WHERE id=‘000005’
2.SELECT * FROM students --观察执行结果
3.ROLLBACK --回滚上列修改
4.SELECT * FROM students -- 观察执行结果
重复以上步骤,ROLLBACK换成COMMIT。;8.2 变量的定义和使用;例:在查询分析器中输入下列内容,运行后看结果。
1.DECLARE @vname varchar(10)
SET @vname=‘WangWeiHua’
PRINT @vname 或SELECT @vname
2.SET语句可以为:
SELECT @vname=name FROM students WHERE id=‘000001’
若SELECT返回多行,则最后一行的name赋给变量vname;全局变量;8.3 流程控制语句(1) IF语句;DECLARE @a INTEGER
DECLARE @b INTEGER
SELECT @a=AVG(grade) FROM students a,grade b
WHERE a.id=b.id and a.sex=0
SELECT @b=AVG(grade) FROM students a,grade b
WHERE a.id=b.id and a.sex=1
if @a@b
PRINT ‘女同学平均成绩高于男同学’
else
PRINT ‘男同学平均成绩高于男同学’;(2) 循环语句; WHILE (SELECT AVG(grade) FROM grade)85
BEGIN
UPDATE grade SET grade=99
WHERE grade *1.199
UPDATE grade SET grade=grade*1.1
WHERE grade *1.1=99
END
注意两个Update语句顺序不能颠倒,颠倒后85分的学生加一次分变成了99分,而应该是85+8.5;WHILE (SELECT AVG(grade) FROM grade)85
BEGIN
UPDATE grade SET grade=99
WHERE grade *1.199
UPDATE grade SET grade=grade*1.1
WHERE grade *1.1=99
IF (SELECT COUNT(*) FROM GRADE
WHERE GRADE=99)0
BREAK
END;(3) CASE表达式;SELECT subid,grade=CASE
WHEN grade100 AND grade=90 THEN 优
WHEN grade90 AND grade=80 THEN 良
WHEN grade80 AND grade=70 THEN 中
WHEN grade70 AND grade=60 THEN 及格
ELSE 不及格
END
FROM grade
成绩列列名显示为grade, “grade= ”省略列名显示为“无列名”。;(4) RETURN和注释;8.4 函数(1) 数学 函数;(2) 字符串函数;关于字符串长度;(3) 日期函数;(4) 系统函数;(5) 其他常用函数;例:查询学生编号,姓名和年龄
select id,name,year(getdate())-year(birthday) as age
from students
例:查询学生编号,姓名和电话,若电话为空,不显示。
Select id,name,isnull(telephone,’’) as telephone
from students
例:把姓名分成姓和名两列显示
select left(na
您可能关注的文档
最近下载
- 急性脑梗死溶栓与取栓病例救治经验分享.pptx
- 教师工作制度培训.pptx VIP
- DL/T 645—2007协议宣贯材料.doc VIP
- 基于单片机的室内天然气(煤气、液化气))浓度检测系统的设计毕业设计论文.doc VIP
- 高压开关设备和控制设备标准的共用技术要求,GB_T11022-2011.pdf
- 中小学教师工作制度规章培训.pptx VIP
- 贵州省专业技术人员继续教育-诚信能力建设答题整理.doc VIP
- CST丛书18算例05相控阵天线的RCS.pdf VIP
- BallRoom型潔淨室-節約能源園區.ppt VIP
- C3i3系列全数字交流伺服驱动器用户手册V4.24.pdf VIP
文档评论(0)