实验7数据库的TransactSQL程序设计_第1页
实验7数据库的TransactSQL程序设计_第2页
实验7数据库的TransactSQL程序设计_第3页
实验7数据库的TransactSQL程序设计_第4页
实验7数据库的TransactSQL程序设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、韶 关 学 院学 生 实 验 报 告 册实验课程名称:数据库技术与应用实验项目名称:Transact-SQL程序设计实验类型(打):(基础、综合、 设计 )院系: 教育学院 专业班级: 11教育技术学 姓名: 学号: 指导老师: 林育曼 韶关学院教务处编制一、实验预习报告内容 预习日期: 2013年 11 月 30日实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、实验预习疑问等项目。一、实验目的1、掌握Transact-SQL的数据类型、常量变量、表达式等的概念和使用方法。2、掌握程序中注释的基本概念和使用方法。3、掌握程序中的流程控制语句的使用方法。4、掌握SQL

2、 Server 2005中常用函数的用法。5、掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。二、实验准备1、了解程序中注释的语法格式。2、了解程序中的流程控制语句:IF ELSE、CASE、WHILE等流程控制语句。3、了解系统提供的常用数学函数、日期和时间函数、字符串函数和数据类型转换函数的用法。4、了解函数的使用方法。5、了解游标的使用方法。三、实验内容1、完成上机实验指导中的实验7,并回答实验中的实验思考。具体实验要求看上机实验指导书的1922页。(选做)实验预习评分:二、实验原始(数据)记录 实验时间:2013年12月3日(星期 二 第 五六 节)如有实验数据

3、表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张)。指导教师批阅及签名 签名: 年 月 日 实验同组人:三、实验报告内容 2013年 12月 4日 实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。实施内容:一、根据实验要求完成实验:(写明步骤和截图)0. 创建 studentsdb 数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。创建数据库代码1.在查询分析器中,选择 studentsdb 数据库,输入以下代码。DECLAREstu name varchar(10)SELECTs

4、tu name=姓名 FORM student info WHERE 姓名 LIKE 张% SELECTstu name观察显示的结果,与 student info 表中数据进行比较,stu name 赋值的是 SELECT 结 果集中的哪个数据赋值的是结果集中的姓张的数据2.定义 int 型局部变量grademax、grademin、gradesum,在 grade 表中查找最 高分、最低分和总分,分别赋给grademax、grademin 和gradesum,并显示。DECLAREgrademax int,gradesum,intSELECTgrademax = max(分数),grade

5、min = min(分数),gradesum = sum(分数)FROM gradeSELECT grademax ,grademin,gradesum3.使用 SET 命令将查询的结果数目赋值给 int 型局部变量row。给下面代码中的划 线处填上适当的内容,以完成上述操作。DECLARErow SET =(SELECT COUNT(*)FROM grade) rows显示rows 的值4.以下代码在 curriculum 表中插入新纪录:DECLARE intCId int,intErrorCode intINSERT INTO curriculum(课程编号,课程名称,学分)VALUES

6、(0006,VB 程序设计,2)SELECTintCId = identity,intErrorCode = errorSELECTintCId, intErrorCode将该代码段连续执行两次,观察两次显示的信息及 curriculum 表中数据的变化,为什么 前后两次执行时显示的信息会不同?两次显示的结果都是一样呀,网上的答案也是这样的,更不清楚为什么要问为什么两次执 行时显示的信息会不同。因为我不小心执行了四次,所以就出现了四个 VB(估计是不是考的主键的唯一性?不能重 复插入?但估计是之前的代码疏忽了设置主键?)5.在 studentsdb 数据库的 student info 表中,以

7、“性别”为分组条件,分别统计男生和 女生人数。6.在 grade 表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。结果检验无误7.定义一个 datetime 型局部变量student,以存储当前日期。计算 student info 表 中的学生的年龄,并显示学生的姓名、年龄。在以下代码的划线部分填入适当内容,以实现 上述功能。DECLARE datetimeSETstudent = 给student 赋值为当前日期 SELECT 姓名, (student)-year(出生日期)AS 年龄 FROM student info8.运行以下代码,写出运行结果。DECLARE a in

8、t , b intSET a =168SET b = 73SELECT a & b,a| b ,ab9. 在局部变量stu id 中存储了学号值。编写代码查询学号为 0001 的学生的各科平 均成绩,如果平均分>=60 则显示“你的成绩及格了,恭喜你!”,否则显示“你的成绩不及 格”。IF (SELECT AVG(分数) FROM grade where 学号 = 0001)<60) PRINT 你的成绩不及格ELSEPRINT 你的成绩及格了,恭喜你!10. 运行以下代码段,写出运行的结果。DECLARE counter intSET counter = 1WHILE c

9、ounter <10BEGINSELECT counter 的值现在为:+CONVERT(CHAR(2),counter) SET counter = counter +1END11. 查询 grade 表。如果分数大于等于 90,显示 A;如果分数大于等于 80 小于 90,显 示 B;如果分数大于等于 70 小于 80,显示 C;如果分数大于等于 60 小于 70,显示 D;其 他显示 E。在以下代码的划线部分填入适当内容完成上述功能SELECT 学号,分数,等级 = CASE 分数>=90 THEN AWHEN 分数>=80 AND 分数<90 B WHEN 分数

10、>=70 AND 分数<80 THEN C WHEN 分数>=60 AND 分数<70 THEN ELSE EENDFROM grade12. 计算 grade 表的分数列的平均值。如果小于 80,则分数增加其值的 5%;如果分数 的最高值超过 95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。WHILE (SELECT (分数)FROM grade)<80BEGIN UPDATE gradeSET 分数 = 分数*1.05If (SELECT MAX(分数)FROM grade)> BREAKELSEEND13. 编写代码计算并显示 n =

11、 1+2+3+.+20。14. 编写代码计算并显示 1100 之间的所有完全平方数。例如,81 = 92,则称 81 为完 全平方数。15. 计算 1100 以内的所有的素数。16. 在 studentsdb 数据库中,使用游标查询数据。(1)打开查询分析器,声明一个 stu cursor 游标,要求返回 student info 表中性别 为“男”的学生记录,且该游标允许前后滚动和修改。(2)打开 stu cursor 游标。(3)获取并显示所有数据。(4)关闭该游标。17 使用游标修改数据。(1) 打开 stu cursor 游标。(2) 将姓马的男同学的出生日期的年份加 1。因为说什么局

12、部变量不能是 text 变量,然后为了做这题,我就把备注数据类型改成varchar(50)了才做的这题(3) 关闭 stu cursor。18. 声明游标变量stu c,使之关联 stu cursor 游标,利用 stu c 查询年龄在 69月份出生的学生信息。19 使用系统存储过程 sp cursor list 显示在当前作用域内的游标及其属性。四、实验思考1 使用游标对数据库的表进行删除和修改等操作。UPDATE语句的格式为: UPDATE table_name SET 列名=表达式,n WHERE CURRENT OF cursor_name DE

13、LETE语句的格式为: DELETE FROM table_name WHERE CURRENT OF cursor_name CURRENT OF cursor_name:表示当前游标指针所指的当前行数据。CURRENT OF 只能在UPDATE和DELETE语句中使用。 2. 流程控制语句与其他编程语言提供的语句有何差别?不同的变成语句是不同的,但是流程语句就是思路很清晰的那种,可以很轻松就转换成其他语言的流程图或者程序了。3. 区分局部变量与全局变量的不同,思考全局变量的用处。答:不同点:局部变量的首字母为单个,使用DECLARE语句定义,仅存在于声明它的批处理、存储过程或触发器中。处理结束后,存储在局部变量中的信息将丢失。 全局变量由系统定义并维护,通过在名称前加符号区别于局部变量,通常被服务器用来跟踪服务器范围和特定会话期间的信息,不能显示的赋值或声明。全局变量不能由用户定义,也不能被应用程序用来在处理器之间交

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论