当前位置:首页 > 《大型数据库系统》实验指导书
《大型数据库系统》课程实验指导书
修订 刘忠民
1
刘晓瑢
实验一 创建、修改和删除表
一、实验目的
? 了解Oracle系统的组织结构 ? 熟悉Oracle企业管理器环境 ? 熟悉SQL*Plus环境
? 掌握用Oracle企业管理器以及SQL*Plus创建、修改、删除表
二、实验环境
一台计算机,安装了WINDOWS 2000 SERVER和Oracle 9i。Oracle帐户(system/manager, sys/change_on_install, scott/tiger)。
三、预备知识
1、复习《数据库系统概论》第三章关系数据库标准语言SQL:
1)学生---课程数据库实例的三张表的ER图。
学生 选修 课程 成绩
2)表的定义3)表的修改 4)表的删除
5)插入、修改、删除数据
2、复习《数据库系统概论》第五章数据库完整性
3、在SQL*Plus中输入完SQL语句后,有3种处理方式: 1)在语句最后加分号(;),并按回车键,则立即执行该语句;
2)语句输入结束后回车换行,然后再按回车键,结束SQL语句输入但不执行该语句; 3)语句输入结束后按回车键,换行后按斜杠(/),则立即执行该语句。 4、编辑缓冲区
由于以命令行的方式编辑SQL缓冲区不太方便,常采用EDIT命令以编辑器打开缓冲区并进行编辑。
四、实验内容
1、查看数据库的系统文件。 2、熟悉Oracle系统环境
3、分别用OEM和SQL*Plus完成以下操作(用SQL语句创建表可参见《数据库系统概论》P85) 注:所有表都创建在scott方案下,在Sql*plus下以scott用户连接数据库
1)创建以下表
◆Student(Sno,Sname,Ssex,Sage,Sdept):学生表
sno是主码,ssex要有CHECK约束
◆Course(Cno,Cname,Cpno,Ccredit):课程表
2
其中,cno是主码, cpno表示先行课,参照本表的cno
(注:在用OEM创建cpno引用cno约束时,要先创建表course,再创建约束)
◆Sc(Sno,Cno,Grade):选课表
主码为(sno,cno), sno和cno都要有外键约束
2)修改表定义
向Student表中增加Sentrance“入学时间”列,定义为date数据类型 3)插入记录
注意,在插入记录时要满足数据完整性约束
Student表
Sno 98001 98002 98003 98004
Course表 Cno 1 2 3 4 5 6 7 Cname 数据库系统 数学分析 信息系统导论 操作系统原理 数据结构 数据处理基础 C语言 Cpno 5 null 1 6 7 null 6 Ccredit 4 2 3 3 4 4 3 Sname 钱横 王林 李民 赵三 Ssex 男 女 男 女 Sage 18 19 20 16 Sdept Sentrance CS CS IS MA 12-3月-92 12-3月-91 12-3月-90 12-3月-94 注:该表中Cpno参照本表的Cno,即Cpno要么为空,要么是已插入的课程记录,所以
注意记录插入的先后顺序。
SC表 Sno Cno Grade 87 67 90 95 88 98001 1 98001 2 98001 3 98002 2 98002 3 4)修改数据
①将SC表中的成绩都增加10% ②将CS系的学生成绩清零
5)删除记录(注在删除记录前检查是否保存插入记录的Sql语句) ①删除Student表的所有记录
②删除SC表中Cno是2的所有记录 6)用Sql语句恢复所删除的记录
4、该实验中的创建表、修改表语句以及插入记录语句保存到脚本文件中,备用于下次实验恢复表和记录。
5、思考其它的备份数据库的方法。
3
实验二 查询语句运用
一、实验目的
1、 熟练掌握查询语句的用法。 2、 进一步熟悉SQL*Plus工作环境
二、实验环境
一台计算机,安装了WINDOWS 2000 SERVER和Oracle 9i。Oracle帐户(system/manager, sys/change_on_install, scott/tiger)。
三、预备知识
1、复习数据查询语句
四、实验内容
1、打开Sql*Plus,用scott用户连接,密码是tiger. 2、用实验一备份的语句还原表和数据。 3、在SQL*Plus中完成以下查询语句: 1)基本查询语句
例:查询全体学生的学号与姓名
2)带ORDER BY子句的查询
例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
3)多表查询(连接操作)
例:查询选修2号课程且成绩在90分以上的所有学生。
4)元组变量的使用查询
例:查询与‘王林’在同一个系学习的学生。
5)查询语句中的集合操作
例:求各个课程号及相应的选课人数。
6)组函数与group by子句(having子句) 例:查询选修了3门以上课程的学生学号
7)嵌套查询
例:查询选修了课程号为“数据库系统”的学生学号和姓名。
4
共分享92篇相关文档