南昌大学数据库实验报告 下载本文

9)查询选课学生的情况,查询结果按课程号升序排列,同一门课程按学号降序排列

10)查询选修了1号课程的学生的最高分 11)各个课程号及相应的选课人数 2.多表查询

1.查询CS年龄在20岁以下的学生姓名 2.查询选修4号课程且成绩在85分以上的学生

3.查询学生131003的平均分 4.查询选修了6号课程且成绩在80分以上的所有学生

16

5.查询与远坂凛同样专业的学生 6.查询已经选课“操作系统”的学生的姓名

7.找出每个学生超过他选修课程平均成绩的课程号

3.视图建立与检索操作

1.建立CS系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有该系的学生

2.建立一个由学生学号和他的平均成绩定义的视图 3.查询平均80分以上的学生学号和平均成绩

4.将CS_Student视图中学号为2015052210的学生姓名改为“桐人”

17

5.向CS_Student视图中插入一个新的学生记录,学号为2015052211,姓名为新一,男,20岁。

七、思考讨论题或体会或对改进实验的建议

1.说明多表连接属于自然连接还是等值连接? 答:属于等值连接。

2.遇到的问题及解决的方法

答:在企业管理器中编辑后,在查询分析器中找不到数据。后面发现

3.体会或建议

八、参考资料

1.《数据库系统实验指导》,单建魁等著,清华大学出版社

18

南昌大学实验报告

学生姓名: 学 号: 专业班级: 信息管理 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:

一、实验项目名称:数据操纵 二、实验目的:

1.掌握查看、重命名及删除用户定义的数据类型的方法 2.掌握向表中添加、删除和修改数据的方法

三、实验基本原理

SQL中插入元组的INSERT语句格式为

INSERT INTO <表名>[(<属性列1>[,<属性列2>]….)] VALUES(<常量1>[,<常量2>]…);

其功能是将新元组插入到指定表中,其中新元组的属性列1的值为常量1,属性列2的值为常量2….。INTO子句中没有出现属性列,新元组将在这些列上取空值。如果INTO子句中没有指明任何属性列名,则新插入的元组必须在每个属性列上均有值。

修改数据的一般格式为UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>]… [WHERE<条件>];其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句给出<表达式>的值用于取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。

删除数据的格式一般为DELETE FROM <表名> [WHERE<条件>];

DELETE语句的功能是从指定表中删除满足条件的的所有元组,如果省略了WHERE 子句,表示要删除表中的所有元组,但表的定义仍在字典中。

四、主要仪器设备及耗材

相互连成LAN的计算机2台以上,安装有SQL Server 2000软件。

五、实验步骤

1.使用insert向表中添加一行或多行数据

向课程表中添加一门新课:insert into Course values('8','学术英语','1','4');

新建一个表G_Course,并向新表中插入每个课程的平均成绩: create table G_Course(Cno char(4),Avg_age int);

insert into G_Course select Cno,avg(Grade)from SC group by Cno; 2.使用update实现一行或成组数据的修改

将s表中学号为“2015052209”的学生的年龄改为19岁: update Student set Sage=19 where Sno='2015052209';

将SC表中成绩少于80的学生成绩改为80:update SC set Grade=80 where grade<80; 3.使用delete删除表中的数据

将新插入的学号为“2015052211”的学生记录删除: delete from Student where Sno=’2015052211’; 4. 创建、重命名和删除用户定义的数据类型

将datetime创建为新的数据类型type:exec sp_addtype [type],datetime,’null’;

19

六、实验数据及处理结果

建立的数据库名和表名及数据如实验二,各查询的结果依次如下各截图: 1.使用insert向表中添加一行或多行数据

1.向课程表中添加一门新课

2.新建一个表G_Course,并向新表中插入每个课程的平

均成绩

3.将s表中学号为“2015052209”的学生的年龄改为19岁

4.将SC表中成绩少于80的学生成绩改为

20