当前位置:文档之家› 数据库课程实验第一部分

数据库课程实验第一部分

徐州工程学院管理学院实验报告实验课程名称:数据库原理及应用实验地点:经济管理实验教学中心2013—2014学年(一)学期2013 年9月至2013 年12 月专业信息管理与信息系统班级11信管2班学生姓名学号指导老师蒋秀莲数据库课程实验第一部分实验一熟悉SQL Server 2008工作环境实验目的:1. 熟悉SQL Server 2008工作环境。

2. 熟悉SQL Server 2008中的主要管理工具。

3. 熟悉SQL Server 2008系统数据库的结构。

实验内容:1.独立安装SQL Server 2008 。

2.练习使用SQL Server 2008中的主要管理工具3. 查看系统数据库4. 查看样例数据库实验二创建数据库和数据表实验目的:1.了解SQL Server 2008数据库的逻辑结构和物理结构。

2. 了解表的结构特点。

3. 熟悉SQL Server的基本数据类型。

4. 了解数据库、数据表、约束等相关概念。

5. 创建数据库和表。

6. 掌握使用Transact-SQL语句创建数据库和表的方法。

实验内容:练习创建数据库和数据表。

(1)打开“我的电脑”或“资源管理器”,在磁盘中以自己的姓名或学号建立文件夹。

(2)创建名为“学生-选课”(即名称为JWGL)数据库,并存储在第(1)步建立的文件夹下。

(3)在建立的JWGL数据库中按照表9-1至9-3所示创建Student、Course和SC三张关系表。

(4)在数据表中输入数据。

为表1和表3建立主键约束,并为各表输入数据,具体记录如表1-3至1-8所示,为后续实验做准备。

(表1-3至1-8、9-1至9-3参见教材)(1)(2)(3)(4)主键约束如(3)中图所示StudentCourseSC实验三基本数据查询实验目的:1. 掌握SELECT-FROM-WHERE语句的结构及使用,实现在数据库上进行简单查询。

2. 掌握各种查询操作方法。

实验内容:练习1:简单查询(1)查询全体学生的学号与姓名(2)查询全体学生的姓名及年龄(3)查询全体学生的姓名、年龄及所在学院(4)查询选修了课程的学生学号练习2:条件查询(1)查询所有年龄在20岁以下的学生的姓名及其年龄(2)查询年龄在20到23岁之间的学生的姓名及年龄(3)查询年龄不在20~23岁之间的学生的姓名、学院及年龄(4)查询所有姓“刘”的学生的姓名、学号和性别(5)查询全体学生情况,结果按所在学院的编号升序排列,同一学院的学生按年龄降序排列(6)查询所有不姓李的学生的姓名(7)查询姓“李”且名为一个汉字的学生的姓名(8)查询名字中第2个汉字为“斌”的学生的姓名和学号(9)查询所有不姓“李”的学生的姓名(10)查询全体学生情况,结果按所在学院的编号升序排列,同一学院中的学生按年龄降序排列练习1:简单查询(1)Select Sno,Sn FROM Student;(2)Select Sn,Age FROM Student;(3)Select Sn,Age,Dept FROM Student(4)Select Sno FROM SC;练习2:条件查询(1)Select Sn,Age FROM Student WHERE Age<20;(2)Select Sn,Age FROM Student WHERE Age BETWEEN 20 AND 23;(3)Select Sn,Dept,Age FROM StudentWHERE Age NOT BETWEEN 20 AND 23;(4)Select Sn,Sno,Sex FROM Student WHERE Sn LIKE'刘%';(5)Select*FROM Student Order BY Dno ASC,Age DESC;(6)Select Sn FROM Student WHERE Sn NOT LIKE'李%';(7)Select Sn FROM Student WHERE Sn LIKE'李_'(8) Select Sn,Sno FROM Student WHERE Sn LIKE'_斌%'(9)Select Sn FROM Student WHERE Sn NOT LIKE'李%';(10) Select*FROM Student ORDER BY Dno ASC,Age DESC实验四数据分组与汇总实验目的:1.掌握数据分组查询的方法。

2.掌握统计函数的使用。

3.使用GROUP BY和HAVING子句对数据进行分组查询。

4.使用相应的运算符或子句生成汇总数据。

实验内容:练习1:使用统计函数(1)查询学生的总人数(2)查询选修课程的学生人数(3)计算选修2号课程的学生的平均成绩(4)查询选修了3号课程的学生的最高分数(5)求成绩排名前三名的学生号、课程号、成绩(6)求成绩排名前三名的学生号、课程号、成绩(包括成绩并列情况)练习2:分组查询(1)求有成绩的每个学生的平均成绩(2)求有成绩的每个学生的总成绩(3)求每门课程的平均成绩(4)求平均成绩大于85分的学生的学号及平均成绩(5)求平均成绩大于85分的课程的课程号及课程平均成绩(6)求各个课程号及相应的选课人数练习1:使用统计函数(1)Select COUNT(Sno)as总人数FROM Student(2)Select COUNT(Sno)as选修课程的人数FROM Student WHERE Sno in (Select Sno FROM SC)(3)Select AVG(Grade)as课程号的学生的平均成绩FROM SC WHERE Cno='2'(4) Select MAX(Grade)as课程号的最高成绩FROM SC WHERE Cno='3'(5) SElECt top 3 Sno,Cno,Grade FROM SC ORDER BY Grade DESC(6) ElECt top 3 Sno,Cno,Grade FROM SC ORDER BY Grade DESC练习2:分组查询(1)Select AVG(Grade)AS平均分FROM SC group by Sno(2)Select SUM(Grade)as总成绩from SC GROUP BY Sno(3)Select AVG(Grade)as各科平均成绩FROM SC GROUP BY Cno(4)Select Sno,AVG(Grade)as分数大于分的学生平均成绩FROM SC GROUP BY Sno HAVING AVG(Grade)>85(5)Select Cno,AVG(Grade)as分数大于分的课程平均成绩FROM SC GROUP BY Cno HAVING AVG(Grade)>85(6) SELECT Cno,COUNT(Sno)as选课人数FROM SC GROUP BY Cno实验五多表连接实验目的:1. 了解多表连接的作用。

2. 掌握使用不同类型的连接方式进行表的连接操作的方法。

3. 使用UNION命令。

4. 了解连接与UNION的区别。

实验内容:(1)查询选修“数据结构”课程的学生的学号(2)查询学生“姜珊”选修的课程的平均分(3)查询选修“数据库原理”课程的学生的平均分(4)查询学生“李斌”的所有成绩,显示的列包括姓名,成绩(5)查询学生选修课的考试情况,显示的列名包括学生姓名,课程名称,成绩(6)查询成绩大于70分的学生姓名(1)SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM Course WHERE Cn='数据结构')(2)SELECT AVG(Grade)as姜珊的平均分FROM SC WHERE Sno IN(SELECT Sno FROM Student WHERE Sn='姜珊')(3)SELECT AVG(Grade)as数据库原理平均分FROM SC WHERE Cno IN(SELECT Cno FROM Course WHERE Cn='数据库原理')(4)SELECT Sn,Grade as成绩FROM Student,SC WHERE Student.Sno=SC.Sno AND Student.Sn='李斌'(5)SELECT Sn,Cn,Grade FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND o=o(6)Select DISTINCT Sn FROM Student,SCWHERE Student.Sno=SC.Sno AND Grade>70实验六数据更新操作实验目的:1. 掌握使用Transact-SQL语句对数据库表进行插入、修改和删除的数据操作。

2. 了解Transact-SQL语句对表数据操作的灵活控制能力。

实验内容:1. 向Student、Course、SC表增加、修改、删除学生的基本信息和课程及成绩信息。

2. 用SQL语句实现1中的功能。

增加学生的基本信息:INSERT INTO Student(Sno,Sn,Sex,Age,Dept,IDCard,Dno)VALUES('07','张丹','女',20,'管理学院','07','4');Select*FROM Student;修改学生的基本信息:UPDATE StudentSET Age=20WHERE Sno='02';Select*FROM Student;删除课程信息DELETE FROM CourseWHERE Cn='数据库原理'Select*FROM Course;实验七索引及其应用实验目的:1. 掌握创建索引的方法。

2. 了解不同索引对查询性能的影响。

实验内容:为JWGL数据库中的3张表创建聚集索引和非聚集索引,并能管理和维护所创建的索引。

CREATE UNIQUE INDEX SCI on Student(Sno,Sn)聚集及非聚集Student表CREATE UNIQUE INDEX SSno ON SC(Grade)聚集及非聚集SC表CREATE CLUSTERED INDEX CourseCno ON Course(Cno ASC)聚集及非聚集Course表实验八实现视图实验目的:1. 掌握创建视图的方法。

相关主题