当前位置:文档之家› 《数据库原理》实验备课教案

《数据库原理》实验备课教案

《数据库原理》实验备课笔记赵震目录实验一Access数据库的基本操作 (3)实验二SQL数据定义语言 (7)实验三SQL数据查询 (9)实验四SQL数据操纵 (11)实验五视图的定义、查询与更新 (12)实验六数据库的完整性与安全性 (14)实验七数据库的并发控制 (16)实验八简单应用系统开发 (19)2实验一Access数据库的基本操作一、实验目的通过该实验初步了解关系数据库的基本概念,学会QBE查询语言的使用。

掌握Access数据库的建立以及各种查询的建立方法。

了解Access数据库的其他功能。

二、实验仪器PII以上个人计算机三、实验原理关系数据库系统是支持关系模型的数据库系统。

关系模型由关系数据结构、关系操作集合和关系完整性元素三部分组成。

关系模型中数据的逻辑结构是一张二维表。

关系模型中常用的关系操作包括:选择、投影、连接、并、交、差等查询操作,还包括插入、删除和修改等更新操作。

QBE是一种域关系演算语言,在Access数据库中可以通过建立查询实现QBE的操作。

四、实验内容与步骤(一)实验内容1.用Access建立一个学生选课数据库,数据库名为Student,其中包括下面3个表,Student表记录学生信息、Course表记录课程信息、SC表记录学生选课信息。

要求每个表都建立主键,并输入表中的数据。

表1.1Student表数据Sno Sname Ssex Sage Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS表1.2Course表数据Cno Cname Cpno Ccredit1数据库542数学23信息系统1434操作系统635数据结构746数据处理27PASCAL语言64表1.3SC表数据Sno Cno Grade950011929500128595001388950022909500238095003487950035922.使用Access的QBE建立如下查询:(1)求信息系(IS)全体学生的姓名,查询名称保存为View_1。

(2)查询全体学生的全部数据,查询名称保存为View_2。

(3)求年龄大于19岁的学生的学号,查询名称保存为View_3。

(4)求计算机系年龄大于19岁的学生的学号,查询名称保存为View_4。

(5)查询算机系或者年龄大于19岁的学生的学号,查询名称保存为View_5。

(6)查询选修1号课的学生姓名,查询名称保存为View_6。

(7)查询信息系学生的平均年龄,查询名称保存为View_7。

(8)查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序,查询名称保存为View_8。

3.使用Access的QBE完成下列更新操作,要求用查询完成:(1)把95001学生的年龄该为18岁,查询名称保存为View_a。

(使用更新查询)(2)把所有学生的年龄都增加1岁,查询名称保存为View_b。

(使用更新查询)(3)把信息系女生95701,姓名张三,年龄17岁存入数据库,查询名称保存为View_c。

(使用追加查询)(4)删除学生95089,查询名称保存为View_d。

(使用删除查询)(5)删除信息系(IS)全体学生记录,查询名称保存为View_e。

(使用删除查询)(二)实验步骤(1)启动Access,建立名为student的数据库。

45(2)在数据库窗口中选择“使用设计器创建表”,点击“新建”按钮,在出现的“新建表”窗口中选择“设计视图”,点击“确定”按钮,在出现的窗口中输入表的字段名和选择数据类型,如图1.1所示:图1.1表创建窗口主键的设置:选中要设置主键的字段前面的方块,按右键,在弹出的菜单中选择“主键”,则该字段就被设置为主键。

如果表的主键是由多个字段组成,则需要将多个字段同时选中(按住Shift 键),然后按照上面步骤设置主键。

(3)点击工具栏的“保存”按钮,在弹出的对话框中输入表的名称,单击“确定”按钮。

这样就在数据库中建立了一个表。

(4)输入数据。

在数据库窗口中选择要输入数据的表。

点击“打开”按钮(或者直接双击),打开如图1.2所示的表数据录入窗口,在该窗口中可以直接录入表的数据。

数据录入结束后,点击关闭按钮,返回到数据库界面。

6图1.2表数据录入窗口(5)建立查询:Access 数据库提供了多种查询方法,其中使用最多的是选择查询。

建立选择查询的具体步骤如下:在数据库窗口中,选择“查询”对象,选择“在设计视图中创建查询”,点击“新建”按钮,在弹出的“新建查询”对话框中选择“设计视图”,然后点击“确定”按钮。

接下来弹出一个“显示表”对话框,从中选择要建立查询的表,点击“添加”按钮,最后点击“关闭”按钮,结果如图所示,该界面就是Access 数据库的QBE查询界面:图1.3Access 数据库的QBE 窗口在该窗口中,我们就可以构造查询。

例如,要查询学生表的所有数据,可以在“字段”行中选中所有的字段,并保证“显示”行的复选框处于选中状态。

如果想看结果,可以选择“视图”按钮中的“数据库表视图”。

选择“设计视图”可返回设计界面。

如果选择“SQL 视图”将显示该查询的SQL 语句。

五、实验报告要求1.要求写明实验目的、实验原理、实验内容和实验步骤;2.对实验中出现的问题和结果进行讨论。

六、思考题1.Access 数据库中可以建立哪些类型的查询?2.Access 数据库中的QBE 与教材中的QBE 有什么不同?实验二SQL数据定义语言一、实验目的:熟悉SQL*Plus工具的启动及运行环境。

掌握SQL的数据定义语言的使用;理解数据库对象的概念。

二、实验原理:SQL语言是关系数据库的标准语言。

SQL语言是集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。

数据库的对象可以使用SQL语言DDL加以定义。

三、实验仪器:PII以上个人计算机四、实验内容与步骤:1.在SQL*Plus环境下,使用SQL语言定义Student表,该表的结构描述如下:列名数据类型是否为空?是否主码Sno CHAR(5)否是Sname VARCHAR2(10)否否Ssex CHAR(4)要求性别只能为男或女Sage NUMBER(2)可以年龄限制在16到25之间(包含)。

Sdept CHAR(4)注意,主码的定义和约束条件的定义。

2.在SQL*Plus环境下,使用SQL语言定义Course表,该表的结构描述如下:列名数据类型是否为空?是否主码Cno CHAR(2)否是Cname CHAR(14)否否Cpno CHAR(2)是否CCredit NUMBER(1)否否注意,要将Cno定义为主码。

3.在SQL*Plus环境下,使用SQL语言定义Course表,该表的结构描述如下:7列名数据类型是否为空?是否主码Sno CHAR(5)否是Cno CHAR(2)否是Grade NUMBER(3)是否注意,该表的主码为Sno和Cno的组合,同时Sno和Cno都是外码。

要求定义表时定义这些主码和外码。

4.插入数据使用INSERT语句将实验一中3个表的数据分别插入这3个表中。

可以使用SELECT语句查看表中的数据。

5.使用ALTER TABLE语句修改Student表为其增加一个BirthDay列,类型为DATE。

6.使用CREATE INDEX语句在Student表的Sage列上建立一个名为Age_Index的索引,要求索引为升序。

使用SELECT语句查询Student 表,看有什么变化?为什么?使用DROP INDEX语句删除该索引。

五、实验报告要求1.要求写明实验目的、实验原理、实验内容和实验步骤;2.对实验中出现的问题和结果进行讨论。

六、思考题:1.使用SQL定义数据库对象时,这些定义存放在哪里?2.在什么时候会用到这些定义?8实验三SQL数据查询一、实验目的:熟练掌握SQL查询语句的使用。

主要练习各种查询语句的构造,其中包括单表查询、连接查询、嵌套查询和集合查询。

重点掌握连接查询和嵌套查询二、实验原理:数据库的查询是数据库的核心操作。

SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。

数据库查询主要包括:单表查询、连接查询、嵌套查询和集合查询几类。

在查询中可以通过WHERE条件语句筛选查询结果、通过GROUP BY子句对查询结果分组、通过ORDER BY子句对查询结果排序。

连接查询是涉及到两个或两个以上的表的查询。

其中连接查询有包括等值连接、自身连接、外连接等。

嵌套查询也叫带子查询的查询。

它是在一个查询语句的WHERE 子句或GROUP BY短语中嵌入另一个查询的查询。

三、实验仪器:PII以上个人计算机四、实验内容和步骤:以下操作在学生-课程数据库中完成1.单表查询(1)查询全体学生的详细信息;(2)查询全体学生的姓名,学号和所在系;(3)查询全体学生的姓名及出生年份;(4)查询学校共有哪些系;(5)查询所有年龄在20岁以下的学生姓名及其年龄;(6)查询年龄不在20~23岁之间的学生姓名、系别和年龄。

(7)查询课程表中课程名中包含“数据”的课程信息。

(8)查询全体学生情况,查询结果按所在系升序排列,系相同按学生年龄降序排列。

(9)查询选修了课程的学生人数。

(10)查询选修了“数据库”课程的人数、最高分、最低分和平9均分。

(11)查询男女同学的平均年龄。

(12)查询选修了3门以上课程的学生学号。

(13)查询有10人以上选修的课程名。

2.连接查询(1)查询每个学生的选课情况。

(2)查询每门课程的课程号及间接先修课号。

(3)查询既选修了1号课又选修了3号课的学生学号(用自身连接)。

(4)查询至少有两人选修的课程号(用自身连接)。

(5)查询一门课也没选的学生信息。

(用外连接)(6)查询选修2号课且成绩在90分以上的学生学号和姓名。

(7)查询选修了“数据库”课且成绩不及格的学生姓名。

3.嵌套查询(1)查询与“刘晨”同学在一个系学习的学生学号、姓名及所在系。

(2)查询选修了“信息系统”课程的学生学号和姓名。

(3)查询其他系中比信息系某一学生年龄小的学生姓名和年龄。

(4)查询其他系中比信息系所有学生年龄都小的学生姓名和年龄。

(5)查询没有选修1号课的学生姓名。

(6)查询选修了全部课程的学生姓名。

(7)查询至少选修了学生95002选修的全部课程的学生学号。

4.集合查询假设有一个Teacher表记录教师的信息,其中包括Tname表示教师名。

用UNION、INTERSECT和MINUS完成下列查询。

(1)求计算机系的学生和年龄不大于19岁的学生的并集。

(2)查询所有在职学生信息。

(3)查询现在没有正在进修的教师信息。

相关主题