《数据库实验7 TransactSQL程序设计.docx》由会员分享,可在线阅读,更多相关《数据库实验7 TransactSQL程序设计.docx(5页珍藏版)》请在三一办公上搜索。
1、数据库实验7 TransactSQL程序设计数据库技术与应用实验 实验7 Transact-SQL程序设计 实验7 Transact-SQL程序设计 学号:18103317 专业:电子信息工程 一、实验内容和步骤 1在查询分析器中,选择studentsdb数据库,在学生表中查找姓“张”的学生,并将该生姓名赋于变量stu_name。 DECLARE stu_name varchar(10) SELECT stu_name=姓名 FROM 学生表 WHERE 姓名 LIKE 张% SELECT stu_name 提示:首先要定义变量stu_name。 2定义int型局部变量grademax、gra
2、demin、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。给下面代码中的划线处填上适当的内
3、容,以完成上述操作。 DECLARE rows_ SET _=(SELECT COUNT(*)FROM 成绩表) 南京师范大学中北学院 1 数据库技术与应用实验 实验7 Transact-SQL程序设计 _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
4、=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 学生表 WHE
5、RE 性别=女 ) 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 课程编号= 南京师范大学中北学院 2 数据库技术与应用实验 实验7 Transact-SQL程
6、序设计 (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 姓名,DATEDIF
7、F(yy,出生年月,studate) AS 年龄 FROM 学生表 提示:计算年龄可参考教材P199表9-9和9-10相关函数。 8请用单行注释将下列命令行所实现的功能予以注释。 SELECT 姓名, 家庭地址 FROM 学生表 WHERE 姓名 LIKE 陈% 9.请用多行注释将下列命令行所实现的功能予以注释。 SELECT 姓名, 性别,出生年月,家庭地址 FROM 学生表 WHERE YEAR(出生年月)80 10.在局部变量stu_id记中存储了学号值。编写代码查询学号为0001的学生的各科平均成绩,如果平均分=60则显示“你的成绩及格了,恭贺你!”,否则显示“你的成绩不及格”。 南京
8、师范大学中北学院 3 数据库技术与应用实验 实验7 Transact-SQL程序设计 11运行以下代码段,写出运行的结果。 12查询成绩表。如果分数大于等于90,显示优秀;如果分数大于等于80小于90显示良好;如果分数大于等于70小于80显示中等;如果分数大于等于60小于70显示及格,其他显示不及格。在以下代码的划线部分填人适当内容完成上述功能。 12计算grade表的分数列的平均值。如果小于80,则分数增加其值的5;如果分数的最高值超过95,则终止该操作。在以下代码划线处填入适当的内容以完成上述功能。 南京师范大学中北学院 4 数据库技术与应用实验 实验7 Transact-SQL程序设计 南京师范大学中北学院 5