数据库课程设计矿大_数据库原理实验(矿大完整版)
数据库原理实验(矿大完整版)
《数据库原理》实验报告学号: 08093342 姓名: 姚伟 班级: 计算机 09-1 班 指导教师: 孟凡荣 中国矿业大学计算机科学与技术学院2011 年 4 月数据库原理教师成绩评定表评定成绩的依据:① 基础理论及基本技能的掌握② 独立解决实际问题的能力;③ 研究内容的理论依据和技术方法;④ 取得的主要成果⑤ 工作态度及工作量;⑥ 成绩采用优良中差四个等级评定成绩表实验序号 实验成绩 指导教师 日期实验一实验二实验一: SQL 数据定义功能一、实验内容及要求1. 使用 SQL 语句建立学生管理系统相关的表,同时完善各表的相关完整性约束。其中带有下划线的为主码学院(学院代码,学院名称) 学生(学号,姓名,性别,学院代码) ,学院代码为外码教师(教师号,教师姓名,学院代码) ,学院代码为外码课程(课程号,课程名,学时)学习(学号,课程号,成绩) ,学号为外码,课程号为外码开课(教师号,课程号) ,教师号为外码,课程号为外码2. 对各表进行增加、删除、修改属性操作添加操作:对学生表添加出生日期字段,和家庭地址字段,教师表增加性别字段,出生日期字段,对课程表增加先修课程字段,并且先修课程为本关系外码。删除操作:删除学生表家庭地址字段,删除教师表出生日期字段修改操作:修改先课程表中先修课程字段名称为先修课程号,修改学生姓名字段,该字段值不允许取空值3. 建立索引为学生表在学生姓名上建立名为 sname-index 的索引,在学院代码字段上建立名为 dept-index,降序。4. 删除表操作删除上述表的定义,并重新执行定义表的查询再次建立各表5. 利用 ACCESS 2003 /2007 完善各表的数据内容二、实验目的熟练掌握 SQL 的各种数据定义功能,包括1.定义表的功能,包括主码和外码的定义2.修改表的定义功能,包括增加属性,删除属性,修改属性类型4.建立和删除索引操作,理解索引的作用5.删除表功能三、实验步骤及运行结果1.新建 Microsoft Office Access 文件,用 SQL 语句建立各基本表,然后运行,使基本表出现在表文件中。2.用 SQL 对基本表进行各种修改操作。3.为表建立相应的索引。4.把建好的基本表逐一删除,然后重新执行定义表的查询再次建立各表。5.为表添加相应的数据。五、SQL 语句建表:CREATE TABLE 教师(教师号 CHAR(8) PRIMARY KEY,教师姓名 CHAR(8),学院代码 CHAR(8),FOREIGN KEY(学院代码) REFERENCES 学院(学院代码));CREATE TABLE 开课(教师号 CHAR(8),课程号 CHAR(8),PRIMARY KEY (教师号,课程号),FOREIGN KEY (教师号) REFERENCES 教师(教师号),FOREIGN KEY (课程号) REFERENCES 课程(课程号));CREATE TABLE 课程(课程号 CHAR(8) PRIMARY KEY,课程名 CHAR(8),学时 CHAR(8));CREATE TABLE 学生(学号 CHAR(8) PRIMARY KEY,姓名 CHAR(8),性别 CHAR(8),学院代码 CHAR(8),FOREIGN KEY(学院代码) REFERENCES 学院(学院代码));CREATE TABLE 学习(学号 CHAR(8),课程号 CHAR(8),成绩 CHAR(8),PRIMARY KEY(学号,课程号),FOREIGN KEY (学号) REFERENCES 学生(学号),FOREIGN KEY (课程号) REFERENCES 课程(课程号));CREATE TABLE 学院(学院代码 CHAR(8) PRIMARY KEY,学院名称 CHAR(8));增加、删除、修改:ALTER TABLE 学生 ADD 出生日期 CHAR(8),家庭地址 CHAR(8);ALTER TABLE 课程 ADD 先修课程 CHAR(8),FOREIGN KEY(先修课程) REFERENCES 课程(先修课程);ALTER TABLE 教师 ADD 性别 CHAR(8),出生日期 CHAR(8);ALTER TABLE 学生 DROP COLUMN 家庭地址;ALTER TABLE 教师 DROP COLUMN 出生日期;创建索引:CREATE UNIQUE INDEX sname_index ON 学生(姓名);CREATE UNIQUE INDEX dept_index ON 学生(学院代码 DESC)ALTER TABLE 课程表 ALTER 先修课程 先修课程号;四、实验体会课上在老师以及助教的辅导和帮助下,比较成功的完成了本次的试验内容,这次实验中,充分的利用了课堂时间,并没有用来做其他与课程不相干的事情,所以收获比较大,同时动手能力也得到了相应的提高。实验中,通过老师和学生,自己又学到了不少Access 软件的应用技巧,也学到了一些 SQL 语句的编写方法,在实践中得到了锻炼。其中,实验中出现了若干错误,在自己的细心检查和老师及同学帮助下,都得到了很好的解决,尤其是用 SQL 语句建立表时,把查询名和表名设置的重合了,以至于软件无法识别,导致定义表中没有文件。总之,本次实验收获甚多,感悟颇深,此处省略一万字。实验二:练习 SQL 数据操纵功能一、实验内容及要求1.求选修了某个老师上课的学生,成绩在 90 分以上的姓名、课程名称和成绩; 2.求选修了某个老师所授全部课程的学生姓名和学院名称; 3.求没有选修某门课程的学生学号和姓名; 4.求至少选修了两门课程的学生学号; 5.求某门课程不及格学生姓名和考试成绩 6.求至少选修了与某个同学选修的课程相同的学生学号 7.求至少选修了某两门课程的学生姓名和学院名称。 8.查询某个同学没有选修的课程号和课程名 9.查询没有被任何学生选修的课程的课程号 10.求选修了全部课程的学生姓名 11.查询各学院某门课程的平均分,并按照成绩从高到低的顺序排列。12.查询选修数据库原理课程的学生姓名和所在院系,结果按各院系排列,同时成绩从高到低排列。 13.求学时在 30-45 之间(含 30 和 45)的课程的课程号和课程名称及授课教师。 14.检索选修数据库原理课程的最高分学生的姓名 15.查询选课人数超过 50(根据情况自己定人数)人的课程的课程号及课程名。16.自行提出查询要求,内容包括并运算、差运算、交运算、笛卡儿积运算、连接运算、自然连接运算以及复杂统计表。二、实验目的使用 SQL 语句进行各种查询1、熟练掌握单表查询,包括 (1) 选择表中的若干列(投影) (2) 选择表中的若干元组(选择) (3) 对查询结果排序 (4) 使用集函数 (5) 对查询结果分组2、熟练掌握复杂查询,包括 1) 等值与非等值连接查询 2) 自身连接:一个表与其自己进行连接。3) 外连接查询 4) 复合条件连接:WHERE 子句中可以有多个连接条件。3、熟练掌握嵌套查询,包括 1) 带有 IN 谓词的子查询 2) 带有比较运算符的子查询(子查询一定要跟在比较符之
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
