1、韶 关 学 院学 生 实 验 报 告 册实验课程名称:数据库技术与应用实验项目名称:Transact-SQL 程序设计实验类型(打):(基础、综合、 设计 )院系: 教育学院 专业班级: 11 教育技术学 姓名: 学号: 指导老师: 林育曼 韶关学院教务处编制2一、实验预习报告内容预习日期: 2013 年 11 月 30 日实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、实验预习疑问等项目。一、实验目的1、掌握 Transact-SQL 的数据类型、常量变量、表达式等的概念和使用方法。2、掌握程序中注释的基本概念和使用方法。3、掌握程序中的流程控制语句的使用方法。4
2、、掌握 SQL Server 2005 中常用函数的用法。5、掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。二、实验准备1、了解程序中注释的语法格式。2、了解程序中的流程控制语句:IF ELSE、CASE、WHILE 等流程控制语句。3、了解系统提供的常用数学函数、日期和时间函数、字符串函数和数据类型转换函数的用法。4、了解函数的使用方法。5、了解游标的使用方法。三、实验内容1、完成上机实验指导中的实验 7,并回答实验中的实验思考。具体实验要求看上机实验指导书的 1922 页。 (选做)3实验预习评分:二、实验原始(数据)记录实验时间:2013 年 12 月 3 日(
3、星期 二 第 五六 节)4实验同组人:三、实验报告内容如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如不够,可另附相同规格的纸张) 。指导教师批阅及签名 签名: 年 月 日52013 年 12 月 4 日实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果(疑问)分析等项目。实施内容:一、根据实验要求完成实验:(写明步骤和截图)0. 创建 studentsdb 数据库 及其相应 表,并 录入数 据。 启 动查询分 析器,运 行下面链 接的代 码即 可。创建 数据库代 码1. 在查询分析器中,选 择 studentsdb 数据库,输入 以下代
4、码。DECLAREstu name varchar(10)SELECTstu name=姓名 FORM student info WHERE 姓名 LIKE 张 % SELECTstu name观察显示的 结果, 与 student info 表中数据进行比较 , stu name 赋值的是 SELECT 结 果集中的哪 个数据18赋值的是结果集中的姓张的数据2. 定义 int 型局部变量 grademax、 grademin、 gradesum,在 grade 表中查找最 高分、最低 分和总分 ,分别赋 给 grademax、 grademin 和 gradesum,并显示。DECLAREg
5、rademax int,gradesum,intSELECTgrademax = max(分数) ,grademin = min(分数) ,gradesum = sum(分数)FROM gradeSELECT grademax ,grademin,gradesum3. 使用 SET 命令将查询的结果 数目赋值 给 int 型局部变量 row。 给下面代 码中的划 线处填上适 当的内容 ,以完成 上述操作 。DECLARErow SET =(S ELECT COUNT(* )F ROM grade)rows 显示 rows 的值24. 以下代码在 curriculum 表中插入新纪录 :DECL
6、ARE intCId int,intErrorCode intINSERT INTO curriculum(课程编号,课程名称, 学 分)VALUES( 0006,VB 程序设计 ,2)SELECTintCId = identity,intErrorCode = errorSELECTintCId, intErrorCode将该代码段 连续执行 两次, 观察两次 显示的信 息及 curriculum 表中数据的变化, 为什 么 前后两次执 行时显示 的信息会 不同?两 次显示 的结 果都是 一样呀 ,网 上的答 案也是 这样 的 , 更不清 楚为 什么要 问为什 么两 次执 行时显示的信息会不
7、同。2因为我不小心执行了四次,所以就出现 了四个 VB(估计是不是考的主键的唯一性 ?不能重 复插入?但估计是之前的代码疏忽了设 置主键 ?)5. 在 studentsdb 数据库的 student info 表中, 以 “性 别” 为分 组条件, 分别统 计男生和 女生人数。6. 在 grade 表中,使用适当函数 找出 “高等数 学” 课 程的最高分 、最低分 和平均分 。结果检验无误7. 定义一个 datetime 型局部变量 student,以存储当前日期 。 计算 student info 表 中的学生的 年龄, 并显 示学生的 姓名 、 年 龄。 在以 下 代码的划线 部分填入 适
8、当内容, 以实现 上述功能。2DECLARE datetimeSETstudent = 给 student 赋值 为当前日期 SELECT 姓名, ( student)- year(出生日期 ) AS 年龄 FROM student info8. 运行以下代码,写出 运行结果 。DECLARE a int , b intSET a =168SET b = 73SELECT a & b,a| b ,ab9. 在局部变量 stu id 中存储了学号值 。 编写代 码 查询学号为 0001 的学 生的各科 平 均成绩, 如果平均 分 =60 则显 示 “你 的成绩及 格了, 恭喜你 ! ! ”, 否则显示 “你的 成绩不及 格” 。IF (SELECT AVG(分数) FROM grade where 学号 = 0001) =90 THEN AWHEN 分数 =80 AND 分 数 90 B WHEN 分