好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单元07用T-SQL增加测试数据和事务控制.ppt

43页
  • 卖家[上传人]:宝路
  • 文档编号:48233319
  • 上传时间:2018-07-12
  • 文档格式:PPT
  • 文档大小:2.31MB
  • / 43 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单元7用T-SQL增加测试数据 和事务控制1回顾 • 在班级表中删除1号班级,报错如图,请问原因是什么 ? • 创建外键约束的语法? • 请列出ComboBox的常用属性 • 使用DataGridView进行筛选使用其什么属性? • 如何使用DataRelation实现主从表的关联?2本单元任务• 任务一 为学生表插入十万行数据 • 任务二 完成“转专业”模块新增管理员新增教师新增学生3本单元目标• 掌握如何定义变量并赋值 • 掌握如何输出数据 • 掌握逻辑控制语句 • 理解批处理的概念 • 理解事务的概念 • 掌握ADO.NET中控制事务的方法4任务一为学生表插入十万行数 据 任务描述:任务分析:为了进行系统的压力测试,为学生表添加十万行数据 1.使用INSERT语句可为学生表添加一行数据 2.使用循环控制可添加n 3.如果十万行数据都一样,则意思不大因此,要使用随机数,产生不同的 数据 4.考虑系统性能,应每100行提交一次5使用变量 变量分为: • 局部变量:– 局部变量必须以标记@作为前缀 ,如@age– 局部变量的使用也是先声明,再赋值 • 全局变量: – 全局变量必须以标记@ @作为前缀,如@@version – 全局变量由系统定义和维护,我们只能读取,不能修改全局变量 的值 6局部变量 例如: DECLARE @name varchar(8) DECLARE @seat int•声明局部变量DECLARE @变量名 数据类型•赋值 SET @变量名 =值 SELECT @变量名 = 值例如: SET @name=‘张三’ SELECT @name=studentName FROM student WHERE studentNo=‘2003010101’ 必须确保筛选出的记录只有1条 或 7局部变量示例分析: (1)查找张亮同学的班级号 (2)查找班级号是(1)结果的学生信 • 【例7-1】查找与张亮同班的学生信息--声明存放学生姓名的变量,最多可存贮10个字符 DECLARE @name varchar(10) --声明存放班级号 DECLARE @classID int Set @name = '张亮' Select @classID = classID From Student Where StudentName = @name Select * from Student Where ClassID = @classID8全局变量 • 全局变量都使用两个@标志作为前缀变量含义@@ERROR最后一个T-SQL错误的错误号@@IDENTITY最后一次插入的标识值@@LANGUAGE当前使用的语言的名称@@MAX_CONNECTIONS可以创建的同时连接的最大数目@@ROWCOUNT受上一个SQL语句影响的行数@@SERVERNAME本地服务器的名称@@TRANSCOUNT当前连接打开的事务数@@VERSIONSQL Server的版本信息9输出语句 printprint 'SQL Server的版本'+@@VERSION print '服务器的名称: '+@@SERVERNAME INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('武松','s25328','男','23') --如果大于0表示上一条语句执行有错误 print '当前错误号'+convert(varchar(5),@@ERROR)print '刚才报名的学员,座位号为:' +convert(varchar(5),@@IDENTITY ) UPDATE stuinfo SET stuAge=85 WHERE stuName='李文才' print '当前错误号'+convert(varchar(5),@@ERROR) GO演示:使用全局变量 • 参考语句SQL Server的版本 服务器名称 座位号(自动编号) 错误号 错误号 10逻辑控制语句• IF-ELSE语句SQL中的IF-ELSE语句 IF (条件)BEGIN语句1语句2……END ELSEBEGIN语句1;语句2;……ENDlELSE是可选部分l如果有多条语句,才需要BEGIN-END语句块 11IF-ELSE示例分析: (1)统计平均成绩存 入临时变量。

      (2)用IF-ELSE判 断• 【【例7-3】统计并显示课程号为1的期末成绩平均分,如果平均分 在80以上,显示“成绩优秀”,并查询成绩前3名学生的学号;如果 在80以下,显示“成绩一般”,并查询成绩后3名学生的学号 declare @avg float select @avg=avg(score1) from score where subjectID=1 if (@avg >= 80)beginprint '成绩优秀'select top 3 studentno from score where subjectID=1 order by score1 descend elsebeginprint '成绩一般'select top 3 studentno from score where subjectID=1 order by score1end12逻辑控制语句• CASE-END多分支语句1CASE 输入值WHEN 值1 THEN 结果1WHEN 值2 THEN 结果2……ELSE 其他结果END13CASE示例1• 【例7-4】学生的性别:0为男生,1为女生,要求查询 每位学生的学号和性别 Select StudentNo, 性别 = CASE SEXWHEN 0 THEN '男生'WHEN 1 THEN '女生'END FROM Student14逻辑控制语句• CASE-END多分支语句2CASE WHEN 条件1 THEN 结果1WHEN 条件2 THEN 结果2……ELSE 其他结果END15CASE示例2问题:采用美国的ABCDE五级打分制来显示总评成绩。

      A级: 90分以上B级: 80-89分C级: 70-79分D级: 60-69分E级: 60分以下Select StudentNo, 分数 = CASE WHEN score1=60 and score1=70 and score1=80 and score10BEGINSET @Result=@Result*@iSET @i=@i-1END PRINT @Result 18WHILE示 例2问题: 本次考试成绩较差,假定要提分,确保每人笔试都通过提分规则很简 单,先每人都加2分,看是否都通过,如果没有全部通过,每人再加2分 ,再看是否都通过,如此反复提分,直到所有人都通过为止 学员成绩表分析: 第一步,统计没通过的人数 ; 第二步,如果有人没通过,加分; 第三步,循环判断 19DECLARE @n int WHILE(1=1) --条件永远成立BEGINSELECT @n=COUNT(*) FROM stuMarks WHERE writtenExam0)UPDATE stuMarks --每人加2分SET writtenExam=writtenExam+2 ELSEBREAK --退出循环END print '加分后的成绩如下:' SELECT * FROM stuMarksWHILE示例• 参考语句20批处理语句• 批处理是包含一个或多个 SQL 语句的组,从应用程序一 次性地发送到SQL Server执行 • SQL Server 将批处理语句编译成一个可执行单元,此单 元称为执行计划。

      执行计划中的语句每次执行一条客户端应用程序SQL Server服务器批处理语句: 语句1 语句2 …… GO21批处理语句 示例SELECT * FROM student SELECT * FROM score UPDATE score SET score3=score1*0.6+score2*0.4 GOlGO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行 单元,提高执行效率l一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务 需求和代码编写者决定 22批处理语句示例--例如建表语句的末尾必须添加GO CREATE TABLE stuInfo ( .... ) GO• SQLServer规定:如果是建库、建表语句、以及我们后 面学习的存储过程和视图等,则必须在语句末尾添加 GO 批处理标志23随机函数 • RAND ( ):随机函数,返回从0 到1之间的随机float值 • NEWID ( ):创建一个uniqueidentifier类型的唯一值select rand()*100 产生0-100内的随机数select Left(convert(varchar(40),newid()),10) 产生10位随机字符串 24事务银行转账 账户A账户B• 事务是一个工作单元,是一种要么成功,要么失败的操 作。

      • 例如,银行转账问题:假定资金从账户A转到账户B,至少需要两步: – 账户A的资金减少 – 然后账户B的资金相应增加 25• 假定张三的账户直接转账1000元到李四的账户为什么需要事务CREATE TABLE bank (customerName CHAR(10), --顾客姓名currentMoney MONEY --当前余额 ) GO ALTER TABLE bankADD CONSTRAINT CK_currentMoney CHECK(currentMoney>=1) GO INSERT INTO bank(customerName,currentMoney)VALUES('张三',1000) INSERT INTO bank(customerName,currentMoney)VALUES('李四',1)创建账户表,存放用户的账户信息添加约束:根据银行规定,账户 余额不能少于1元,否则视为销户 张三开户,开户金额为1000元 ;李四开户,开户金额1元 26为什么需要事务• 目前两个账户的余额总和为:1000+1=1001元 27为什么需要事务• 模拟实现转账 :从张三的账户转账1000元到李四的账户/*--转账测试:张三转账1000元给李四--*/ --我们可能会这样这样编写语句 --张三的账户少1000元,李四的账户多1000元 UPDATE bank SET currentMoney=currentMoney-1000 WHERE customerName='张三' UPDATE bank SET currentMoney=currentMoney+1000 WHERE customerName='李四' GO --再次查看转账后的结果。

      SELECT * FROM bank GO请问: 执行转账语句后,张三、李四的账户 余额为多少?张三的账户没有减少 但李四的账户却多了1000元 1000+1001=2001元总额多出了1000元!28为什么需要事务--张三的账户减少1000元,李四的账户增加1000元 UPDATE bank SET currentMoney=currentMoney-1000 WHERE customerName='张三' UPDATE bank SET currentMoney=currentMoney+1000 WHERE customerName='李四' GO• 错误原因分析:执行失败,所以张三还是1000元继续往下执行:执行成功,所以李四变为1001元如何解决呢?使用事务UPDATE语句违反约束: 余额>=1元29什么是事务•事务是作为逻辑工作单元执行的一系列操作它包含了一组SQL语 句,但整组SQL作为一个整体向系统提交或撤销对于大型的数据 库应用。

      点击阅读更多内容
      相关文档
      2024年统编版7年级上册道德与法治课件 3.8.2 敬畏生命.pptx 2024年统编版7年级上册道德与法治课件 1.2.2 做更好的自己.pptx 2024秋新人教PEP英语3年级上册课件 Unit 4 PartA(1) Let’s talk & Ask and answer.pptx 2024秋新人教版化学9年级上册教学课件 第5单元化学反应的定量关系 课题1 质量守恒定律.pptx 2024秋新人教版化学9年级上册教学课件 第1单元走进化学世界 课题2 化学实验与科学探究 第3课时 走进科学探究.pptx 2024秋新人教版化学9年级上册教学课件 第1单元走进化学世界 课题1 物质的变化和性质 第2课时 化学性质和物理性质.pptx 2024年统编版7年级上册道德与法治 第102课 端正人生态度 第1课时 拥有积极的人生态度教学课件.pptx 2024秋新人教版地理7年级上册教学课件 1.2.3 地球与地球仪(第3课时).pptx 2024秋新人教版化学9年级上册课件 第1单元走进化学世界 课题2 化学实验与科学探究 第3课时 走进科学探究.pptx 2024年统编版7年级上册道德与法治课件 4.11.1 探问人生目标.pptx 2024年统编版7年级上册道德与法治 3.8.2 敬畏生命 教学课件.pptx 2024秋新人教版地理7年级上册课件 1.2.3 地球与地球仪(第3课时).pptx 2024年统编版7年级上册道德与法治 3.8.1 认识生命 教学课件.pptx 2024秋新人教版化学9年级上册课件 第5单元化学反应的定量关系 课题1 质量守恒定律.pptx 2024年统编版7年级上册道德与法治 第103课 实现人生价值 第2课时 在奉献中成就精彩人生教学课件.pptx 2024秋新人教版化学9年级上册课件 第5单元化学反应的定量关系 课题2 化学方程式 第1课时 化学方程式的意义及书写.pptx 2024秋新人教版地理7年级上册教学课件 2.3 地图的选择和应用.pptx 2024年统编版7年级上册道德与法治课件 第103课 实现人生价值 第2课时 在奉献中成就精彩人生.pptx 2024秋新人教版化学9年级上册课件 第6单元 碳和碳的氧化物 课题3 2氧化碳的实验室制取.pptx 北师大版(2024)新教材七年级生物下册第四单元第10章第3节《激素调节》精品课件.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.