文档详情

6、数据库端程序设计教程.ppt

发布:2017-05-02约5.47千字共73页下载文档
文本预览下载声明
批处理和事务 变量的定义和使用 流程控制语句 函数 触发器 存储过程 游标 临时表;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
显示全部
相似文档