《2022年数据库应用基础终版》由会员分享,可在线阅读,更多相关《2022年数据库应用基础终版(9页珍藏版)》请在金锄头文库上搜索。
1、第 7 章 数据库应用基础实验 2 数据库与数据表一、实验目的1.建立学生选课数据库,掌握SQL Server2008 中数据库建立方法。2.创建学生、课程和选课数据表,掌握数据表结构设计、主外键定义方法,理解关系型数据库基本概念;掌握Check 约束创建方法,理解SQL Server 数据完整型约束的作用。3.进行数据录入与编辑,掌握数据表维护和数据编辑方法。4.查阅资料,进行数据导入与导出,掌握数据导入与导出方法。二、实验内容1.创建数据库在 SQL Server2008 的 SSMS,可按照如下步骤创建数据库。 在 “ 对象资源管理器” 中,右击 “ 数据库 ” ,在弹出的菜单中选择“
2、新建数据库 ” ,打开 “ 新建数据库 ” 窗口, 在左侧的选项页中选择“ 常规 ” ,在“ 数据库名称 ” 文本框中输入 “xsxk”,指定新建数据库名称为:“xsxk”。 在 “ 数据库文件 ” 列表框中,显示出xsxk 数据库对应的两个文件,一个是数据文件,一个是数据库日志文件。可以对数据文件的文件名称和路径信息进行修改。 单击 “ 确定 ” 按钮,完成数据库创建。2.创建数据表创建数据表需要指定表名、表中各字段名、 字段的数据类型等;同时还要定义数据完整性,即定义主键、外键、Check 约束、唯一约束、默认值y 约束等。因此,在创建数据表之前,需要首先确定数据表的结构,然后再创建数据表
3、。 定义数据表结构学生选课数据库共包含三个数据表,分别为学生表、 课程表和选课表,各数据表定义如下:Student( Sno,Sname,Ssex,Class,Birthday,Major,College,Skill )Course(Cno,Cname,Credit,Property,Semester)SC(Sno,Cno,Grade,Type)其中: SC 表中 Sno 和 Cno 共同构成主码,Sno 与 Student 表中的Sno 相对应, Cno与 Course 表中的 Cno 相对应,即在SC 表中 Sno、Cno 分别为外码。 创建 Student 表在对象资源管理器中展开“xs
4、xk”数据库,右击 “ 表” ,在弹出的菜单中选择“ 新建表 ” ,打开表设计窗口。依次输入Student 表的各个字段名、选择数据类型、设置是否为Null 。具体如图所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 创建 Course 表Course表各字段定义见表设置Cno 为主码,结果如图所示。SC 表各字段定义见表,具体设置方法同上。设置Sno 和 Cno 字段共同为主码,具体方法为:按下Shift 键,同时依次单击
5、Sno 和 Cno,使其同时选中,右击选中内容,在弹出菜单中选择 “ 设置主键 ” ,如图所示:3.修改表结构SQLServer2008 默认禁止修改表结构,因此当修改表结构并保存时,系统将提示对应的限制信息。 因此,在修改表结构时,首先要在 SSMS 中单击 “ 工具 ”| “选项” 菜单项, 找到 “ 表设计器 ” ,取消选中 “ 阻止保存要求重新创建表的更改” 项。修改表的结构需要在数据表的“ 设计 ” 视图中进行, 包括添加、 删除字段, 修改字段属性等。以 Student 表中增加一列为例,基本方法如下: 在 Student 表上右击,选择“ 设计 ” ,在打开的表设计窗口中选中Sk
6、ill 字段所在行,右击选中内容,选择“ 插入列 ” 。 在新插入的空白列上,列名填写“Nationality”,数据类型填写“nvarchar (10)” ,允许空值,默认值为“ 汉” 。 保存并关闭设计视图。4.设置数据表之间的外键关系外键用于建立两个数据表中一个字段或多个字段数据之间的参照关系。其中,外键所在表称为外键表, 外键参考的主键所在表称为主键表。数据库管理系统要求外键表中的外键取值必须来自于主键表中对应列的数据以此保证主、外键表对应字段数据的一致性。 设置 Student 表和 SC 表的外键关系名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
7、- - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 在对象资源管理器中,右击SC 表,选择 “ 设计 ” ,打开SC 表的设计窗口,然后右击Sno 字段前的行选按钮,选择“ 关系 ” ,如图所示。 在弹出的 “ 外键关系 ” 对话框中, 单击 “ 添加 ” 按钮,再单击右侧 “ 表和列规范 ” 后的按钮,打开 “ 表和列 ” 对话框,如图所示。 在 “ 表和列 ” 对话框中,主键表选择“Student 中的“Sno”列,外键表选择“SC 中的 Sno”列。选择完成后单击确定 按钮返回, 再单击 “ 关闭 ” 按钮
8、完成 Student 表和表 SC 的外键关系设置。 设置 Course 表和 SC 表之间的外键关系Course 表中的 Cno 与 SC 表中的 Cno 之间存在主外键关系。5.数据输入与编辑在数据表中输入数据时,可采用两种方法:一种是直接录入数据,另一种是从外部文件复制或导入数据到SQL Server2008 数据表中。其中,直接录入数据方法适合数量较少的情况,当录入的数据量很大时,通常采用第二种方法。 直接录入数据 在 Student 表中录入数据在对象资源管理器中,展开 xsxk 数据库的 “ 表” 节点,右击 “Student ”表并选择 “ 编辑前 200行” ,逐条录入如图所示
9、内容。 在 Course 表、 SC 表中分别录入如表所示数据。 将 Excel 中的数据复制到SQL Server2008 以 Student 表为例, 将 Excel 表单中的数据复制到SQLServer2008 数据表中的方法如下: 在 Excel 中准备 Student 表所需的数据。 在 SQLServer 中右击 Student 表,选择 “ 编辑前 200 行” , 如果 Student 表中已经有数据,则先清除表中数据。 从 Excel 工作表中选择Student 表中的数据,并复制数据。 选中 Student 表中第一行空白记录,单击鼠标右键,粘贴。 保存并关闭Student
10、 表。 编辑表数据数据录入到表之后,还可以进行插入、修改、删除等编辑,方法如下: 右击数据所在的数据库并选择“ 编辑前 200 行” 。 在打开的数据表视图中可对表中记录进行插入、删除、修改等操作。6.完整性约束验证对数据表进行插入、更新、删除等操作时,应注意数据库中的主键约束、Check 约束、外键约束等完整性约束。7.删除数据库删除数据表操作会删除数据表的结构和数据表中的数据,如果数据库中不再需要某个数据表,可将其删除,具体步骤如下: 在对象资源管理器中选中要删除的表,右击鼠标,选择“ 删除” 命令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
11、- - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 在 “ 删除对象 ” 对话框中,单击“ 显示依赖关系” 按钮,查看依赖于表和表依赖的对象,当有对象依赖于该表时不能删除,单击“ 确定 ” 按钮删除表。实验 3 查询和视图一、实验目的1.在学生选课数据库中使用SQL 查询语句进行单表查询、连接查询和统计查询,理解数据查询的作用,掌握使用SQL 查询语句进行查询的方法。2.使用 SSMS 管理器,在学生选课数据库中创建视图、修改视图、查询视图、修改视图、删除视图等基本操作,理解视图的功能和作用,掌握视图操作和使用方法二、实
12、验内容1. 单表查询(1)查询表中全部字段信息新建查询,在查询分析器中输入下雨的语句,实现Course 表全部字段信息。select * from Course 查询结果如图(2)查询表中指定字段信息新建查询,实现Student 表中学号、姓名、性别和专业字段信息显示,查询分析器中输入语句如下:Select Sno,Sname,Ssex.Major from Student 查询执行结果如图所示。(3)条件查询新建一个查询,查询Course 表中全部的“必修”课程,在查询分析器中输入以下语句:select * from course where property= 必修查询结果如图所示名师资料
13、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - (4)模糊查询新建一个查询,在Student 表中查询有“琴”类特长的学生的学号、姓名、学院和特长4 项数据。在查询分析器中输入以下语句:select Sno,Sname.College,Skill from Student where Skill like ,%琴%其中 %是通配符,可以替代任意多个字符,查询执行结果如图所示。2. 连接查询当查询信息来自多个表,需要对多个表进行连接查询。
14、如查询所有学生的选课信息,包括学号、姓名、课程名和成绩4 项数据,则需对Student 表、 Course表和 SC 表进行连接查询。新建一个查询,在查询分析器中输入以下语句:select Student. Sno,Sname.Cname,Grade from Student,Course.SC where Student.Sno=SC.Sno and Course.Cno=SC.Cno 查询执行结果如图所示若要查询 “农学院” 学生的选课信息,则可在查询分析器中输入以下语句:select Student. Sno,Sname.Cname,Grade from Student, Course,
15、SC where Student, Major = 农学 ? and Student. Sno = SC. Sno and Course. Cno SC. Cno 3. 查询结果排序新建一个查询,在Student 表中查询课程号为“101”的课程成绩,查询结果包括学号、姓名、成绩3 项数据,并将学生成绩按降序排列。查询语句如下:Select SC,Sno,Sname,Gade from Student,SC where Student. Sno = SC. Sno and SC. Cno = ,101?Order by Grade desc 4. 统计查询在 Select 语句中使用SQL 的
16、 Course、Sum、Avg 等聚合函数,可以实现对查询数据进行计数、求和、求均值等统计处理。(1) 计数查询新建一个查询,在Student 表中统计开课学期为“春”季的课程门熟。查询分析器输入以下语句:select COUNT(cno) from Course where Semester = ,春?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - (2) 分组计数查询新建一个查询,在Student 表中分组统计各学院各专业的
17、学生人数。查询分析器输入以下语句:Select College,Major,COUNT(sno) From Student Group by Major, College 其中, group by 用于将数据依据条件分组,查询执行结果如图所示。( 3)多表分组统计查询新建一个查询,在Course 表和 SC 表中,分组统计每门课程最高分、最低分和平均分。查询分析器输入以下语句:Select Cname as 课程 , MAX(grade)as 最低分, AVG(grade)as 平均分From Course,SC GROUP BY Course,Cname 查询结果如图所示(4)多级分组统计查
18、询新建一个查询,在Student 表、 Course 表和 SC 表中,按专业和课程分组,统计每个专业每门课程的平均分。查询分析器输入以下语句:Select Major, Cname,A VG(grade)as 平均分From Student.Sno = SC.Sno and Course.Cno =SC.Cno Group by Cname,Major 查询结果如图所示(5)分组条件统计查询新建一个查询,在SC 表中按学号分组,查找平均分成绩大于90 分的学生学号和平均成绩。查询分析器输入以下语句:Select Sno, AVG(Grade)as 平均成绩From SC Group by S
19、no Having AVG(Grade)90 其中, having 用于在分组中设置查询条件,查询执行结果如图所示。5. 创建视图对于经常进行的查询操作,可将其一视图方式存储在数据库中,避免每次操作重复创建查询。(1)新建视图启动 SSMS,在对象资源管理器中展开“xsxk”数据库,选择“视图”,右击鼠标,在弹出菜单上选择“新建视图”菜单项,打开“添加表”对话框如图所示。(2)添加表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - -
20、 在“添加表”对话框中,分别选中并添加Course、SC 和 Student表,数据表添加结果如图所示。完成后单击 “关闭” 按钮,打开视图创建窗口,如图所示。(3)指定视图包含的字段在视图创建窗口上方的关系图子窗格中,勾选Student 表的 Sno、 Sname字段。 Course表的 Cname字段和 SC 表的 Grade 字段,选中的字段自动出现在中间窗格中。(4)保存视图单击工具栏上的“保存”按钮,在弹出的” 选择名称”对话框中输入“Grade-View” ,单击“确定”保存视图。6. 修改视图定义视图创建完成后,如果发现视图的结构不能满足需求,还可以进行修改。利用SSMS 修改视
21、图的方法如下:(1)在对象资源管理器中选中创建的“dbo.Grade-View ”视图,右击鼠标,选择“设计”菜单项,进行修改视图的窗口,视图的修改窗口与视图创建窗口相同,基本操作也类似。(2)在视图中添加SC 表的“ Type”列。(3)保存并关闭视图。7. 查询视图查询视图的具体操作与查询的基本表类似。对视图执行查询时,数据库系统首先会进行有效性检查,检查通过后,将视图定义中的查询和用户对视图的查询结合起来,转换成对基本表的查询。(1)使用 SSMS 查询视图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
22、- - - - - - 第 7 页,共 9 页 - - - - - - - - - A、在对象资源管理器中展开“数据库” 节点下的“ xsxk” 数据库。B、 展开“视图” 节点, 右击“Grade-View 视图的”,选择“编辑前200行” 。C、 在打开的数据编辑窗口中,可以查看视图中的数据。(2)使用 Select 语句查询视图使用 Select 语句在视图“ Grade-View”中查找“大学英语”成绩,查询语句如下:Select* From Grade-View Where 课程 =大学英语8. 视图与基本表的关系数据库只存储视图的定义,对视图中的数据不进行实际存储。因此,当基本表的
23、数据发生改变时,视图中的数据也会随之改变,反之。对视图进行更新时,系统会根据视图的定义去更新与视图相关联的基本表。(1)基本表数据更改对视图的影响A、 右击“ Student”表,选择“编辑前200 行” 。B、 在打开的数据窗口中,找到学号 “0910101”对应的记录, 把姓名“马萍”改为“马美丽” ,保存并关闭Student 数据表。C、 右击视图 “Grade-View ” ,选择“编辑前200 行” ,查看学号 “0910101”的学生姓名,视图中的数据如图所示。(2)通过视图修改基本表中的数据A、右击视图“ Grade-View” ,选择“编辑前200 行” 。B、 在打开的数据窗
24、口中,找到学号为“09105168”对应的记录,把大学英语课程成绩有“57”修改为“ 100” ,然后保存并关闭视图。C、 在工具栏上单击“新建查询”,在打开的查询编辑窗口中,输入如下 SQL 语句:Select* From SC Where Sno =09105168and Cno=135D、执行查询 ,SC表中对应的数据如图所示。9. 删除视图在对象资源管理器中展开“xsxk”数据库,并展开“视图”节点,选择要删除的视图,右击鼠标,选择“删除”菜单项,在弹出的“删除对象”对话框中单击“确定”按钮,删除视图。三、实验总结实验 2 主要学习数据库和数据表的基本操作,主要包括:创建数据库,创建数
25、据表,编辑表数据,修改表结构,创建完整性约束,删除数据库与数据表。实验 3 以学生选课数据库中数据查询为案例,通过单表查询、连接查询、统计查询等练习,学习select 语句数据查询功能,掌握SQL 数据查询的方法。通过SSMS管理器,学习创建视图、修改视图。查询视图、删除视图基本方法,理解视图的功能和使用方法。在此次试验中感觉困难重重,连数据库备份都没做合适,整次实验都是在同学以及网上搜索中慢慢完成的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -