数据库实验7Transact-SQL程序设计(答案).doc
文本预览下载声明
实验7 Transact-SQL程序设计
学号专业:电子信息工程
一、实验内容和步骤
1.在查询分析器中,选择studentsdb数据库,在学生表中查找姓“张”的学生,并将该生姓名赋于变量@stu_name。
DECLARE @stu_name varchar(10)
SELECT @stu_name=姓名
FROM 学生表
WHERE 姓名 LIKE 张%
SELECT @stu_name
提示:首先要定义变量@stu_name。
2.定义int型局部变量@grademax、@grademin、@gradesum,在成绩表中查找课程编号是“C002”课程的最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。
DECLARE @grademax int,@grademin int,@gradesum int
SELECT @grademax=max(分数),@grademin=MIN(分数),
@gradesum= sum(分数)
FROM 成绩表
WHERE 课程编号=C002
SELECT @grademax,@grademin,@gradesum
3. 使用SET命令将查询结果集记录数目赋值给int型局部变量@row。给下面代码中的划线处填上适当的内容,以完成上述操作。
DECLARE @rows___________
SET ____________=(SELECT COUNT(*)FROM 成绩表)
______________@rows --显示@rows的值
DECLARE @rows int
SET @rows=(SELECT COUNT(*)FROM 成绩表)
SELECT @rows
4.以下代码在课程表中插入新记录:
DECLARE @intCId int,@intErrorCode int
INSERT INTO 课程表(课程编号,课程名称,学分)
VALUES(0006,VB程序设计,2)
SELECT @intCId=@@identity,@intErrorCode=@@error
SELECT @intCId,@intErrorCode
将该代码段连续执行两次,观察两次显示的信息及课程表中数据的变化,为什么前后两次执行时显示的信息会不同?
提示:@@identity,@@error参看教材P189 表9-2
5.在studentsdb数据库的学生表中,以“性别”为分组条件,分别统计男生和女生人数。
DECLARE @rows1 int,@rows2 int
SET @rows1=
(SELECT COUNT(*)FROM 学生表 WHERE 性别=男 )
SET @rows2=
(SELECT COUNT(*)FROM 学生表 WHERE 性别=女 )
SELECT @rows1 AS 男生, @rows2 AS 女生
提示:定义两个变量,用SET分别赋值。
6.在成绩表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分,并分别赋予@grademax、@grademin、@gradesum。
DECLARE @grademax int,@grademin int,@gradesum int
SELECT @grademax=max(分数),@grademin=MIN(分数),
@gradesum= sum(分数)
FROM 成绩表
WHERE 课程编号=
(SELECT 课程编号 FROM 课程表 WHERE 课程名称=高等数学)
SELECT @grademax,@grademin,@gradesum
7.定义一个datetime型局部变量@studate,以存储当前日期。计算学生表中的学生的年龄,并显示学生的姓名、年龄。在以下代码的划线部分填人适当内容,以实现上述功能。
DECLARE___________ datetime
SET @studate=_______________ --给@studate赋值为当前日期
SELECT 姓名,______________ AS 年龄
FROM 学生表
DECLARE @studate datetime
SET @studate=getdate()
SELECT 姓名,DATEDIFF(yy,出生年月,@studate) AS 年龄
FROM 学生表
提示:计算年龄可参考教材P199表9-9和9-10相关函数。
8.请用单行注释将下列命令行所实现的功能予以注释(
显示全部