数据库实验报告论文大学论文.docx

上传人:b****6 文档编号:4779780 上传时间:2022-12-08 格式:DOCX 页数:34 大小:2.88MB
下载 相关 举报
数据库实验报告论文大学论文.docx_第1页
第1页 / 共34页
数据库实验报告论文大学论文.docx_第2页
第2页 / 共34页
数据库实验报告论文大学论文.docx_第3页
第3页 / 共34页
数据库实验报告论文大学论文.docx_第4页
第4页 / 共34页
数据库实验报告论文大学论文.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数据库实验报告论文大学论文.docx

《数据库实验报告论文大学论文.docx》由会员分享,可在线阅读,更多相关《数据库实验报告论文大学论文.docx(34页珍藏版)》请在冰豆网上搜索。

数据库实验报告论文大学论文.docx

数据库实验报告论文大学论文

 

数据库作业

 

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows2000)上安装的SQLServer客户端程序,使用SQLServer数据库服务器。

具体包括:

1.了解SQLServer环境。

鼠标点击开始,进入“MicrosoftSQLServer企业管理器”,点击SQLServer组下的数据库服务器(服务器名称为NEUC-201S(WindowsNT)),可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。

点击服务器(NEUC-201S(WindowsNT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。

因为,数据库服务器上建有许多数据库,每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“MicrosoftSQLServer查询分析器”,输入用户名和口令,进入SQL查询分析器。

如:

你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式

 

createtableStudents--学生

(Snonchar(10),

Snamenchar(20),

Ssexnchar(8),

Sageint,

Sdeptnchar(20),

primarykey(Sno),

);

createtableCourses--课程

Cnonchar(4),

Cnamenchar(50),

Ctimeint,

Ccreditint,

Cpnonchar(4)

primarykey(Cno),

foreignkey(Cpno)referencesCourses,

);

createtableSC--选修

Snonchar(10),

Cnonchar(4),

Gradeint,

primarykey(Sno,Cno),

foreignkey(Sno)referencesStudents,

foreignkey(Cno)referencesCourses,

);

2.在数据库中定义这些关系模式,并向基本表中插入如下数据:

--插入学生表

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121001','陆毅','男',21,'信息学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121002','李铭','男',24,'资土学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121003','赵红','女',20,'信息学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121004','黄晓明','男',23,'机械学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121005','李冰','女',19,'资土学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121006','李俊','男',25,'信息学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121007','赵金','男',27,'资土学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121008','杨英','女',22,'机械学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121009','张东宇','男',18,'信息学院')

insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)

values('20121010','彭东','男',21,'机械学院')

--插入课程表

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('2001','C语言',25,2.5,null)

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('2003','C++语言',50,5,'2001')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1005','文本处理',20,2,'2003')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1006','信息安全',20,2,'2003')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('2002','汇编语言',30,3,null)

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1003','高等数学',60,6,null)

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1002','数值分析',30,3,'1003')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('2004','C#语言',20,2,'1001')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1001','离散数学',40,4,'1002')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('1004','软件工程',30,3,'2004')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('3001','工程制图',30,3,null)

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('3002','机械原理',60,6,'3001')

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('4001','线性代数',30,3,null)

insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('4002','测绘工程',50,5,'4001')

--插入选修关系

insertintoSC(Sno,Cno,Grade)values('20121001','1003',91)

insertintoSC(Sno,Cno,Grade)values('20121001','1002',93)

insertintoSC(Sno,Cno,Grade)values('20121001','1001',89)

insertintoSC(Sno,Cno,Grade)values('20121001','2001',97)

insertintoSC(Sno,Cno,Grade)values('20121001','1004',90)

insertintoSC(Sno,Cno,Grade)values('20121001','1005',98)

insertintoSC(Sno,Cno,Grade)values('20121001','1006',87)

insertintoSC(Sno,Cno,Grade)values('20121001','2002',79)

insertintoSC(Sno,Cno,Grade)values('20121001','2003',97)

insertintoSC(Sno,Cno,Grade)values('20121001','2004',99)

insertintoSC(Sno,Cno,Grade)values('20121003','1003',81)

insertintoSC(Sno,Cno,Grade)values('20121003','1002',98)

insertintoSC(Sno,Cno,Grade)values('20121003','1001',79)

insertintoSC(Sno,Cno,Grade)values('20121003','2001',90)

insertintoSC(Sno,Cno,Grade)values('20121003','1004',92)

insertintoSC(Sno,Cno,Grade)values('20121003','1005',78)

insertintoSC(Sno,Cno,Grade)values('20121003','1006',80)

insertintoSC(Sno,Cno,Grade)values('20121003','2002',69)

insertintoSC(Sno,Cno,Grade)values('20121003','2003',87)

insertintoSC(Sno,Cno,Grade)values('20121003','2004',69)

insertintoSC(Sno,Cno,Grade)values('20121006','1003',83)

insertintoSC(Sno,Cno,Grade)values('20121006','1002',98)

insertintoSC(Sno,Cno,Grade)values('20121006','1001',99)

insertintoSC(Sno,Cno,Grade)values('20121006','2001',93)

insertintoSC(Sno,Cno,Grade)values('20121006','1004',72)

insertintoSC(Sno,Cno,Grade)values('20121006','1005',78)

insertintoSC(Sno,Cno,Grade)values('20121006','1006',80)

insertintoSC(Sno,Cno,Grade)values('20121006','2002',79)

insertintoSC(Sno,Cno,Grade)values('20121006','2003',83)

insertintoSC(Sno,Cno,Grade)values('20121006','2004',89)

insertintoSC(Sno,Cno,Grade)values('20121009','1003',81)

insertintoSC(Sno,Cno,Grade)values('20121009','1002',78)

insertintoSC(Sno,Cno,Grade)values('20121009','1001',77)

insertintoSC(Sno,Cno,Grade)values('20121009','2001',70)

insertintoSC(Sno,Cno,Grade)values('20121009','1004',99)

insertintoSC(Sno,Cno,Grade)values('20121009','1005',98)

insertintoSC(Sno,Cno,Grade)values('20121009','1006',89)

insertintoSC(Sno,Cno,Grade)values('20121009','2002',99)

insertintoSC(Sno,Cno,Grade)values('20121009','2003',84)

insertintoSC(Sno,Cno,Grade)values('20121009','2004',79)

insertintoSC(Sno,Cno,Grade)values('20121004','3001',84)

insertintoSC(Sno,Cno,Grade)values('20121004','3002',93)

insertintoSC(Sno,Cno,Grade)values('20121008','3001',87)

insertintoSC(Sno,Cno,Grade)values('20121008','3002',89)

insertintoSC(Sno,Cno,Grade)values('20121010','3001',94)

insertintoSC(Sno,Cno,Grade)values('20121010','3002',99)

insertintoSC(Sno,Cno,Grade)values('20121002','4001',92)

insertintoSC(Sno,Cno,Grade)values('20121002','4002',94)

insertintoSC(Sno,Cno,Grade)values('20121005','4001',94)

insertintoSC(Sno,Cno,Grade)values('20121005','4002',96)

insertintoSC(Sno,Cno,Grade)values('20121007','4001',91)

insertintoSC(Sno,Cno,Grade)values('20121007','4002',95)

3.插入相应的数据,试着插入重复的元组,结果如何?

答:

由于在定义关系模式时,已经添加主键约束(primarykey(Sno),primarykey(Cno),primarykey(Sno,Cno)),所以不可以再插入重复的元组。

4.在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。

答:

由于在定义关系模式时,已经添加主键约束(primarykey(Sno),primarykey(Cno),primarykey(Sno,Cno))和参照约束(foreignkey(Sno)referencesStudents,

foreignkey(Cno)referencesCourses,foreignkey(Cpno)referencesCourses),现添加用户定义的约束(要求学生年龄不小于14岁,不大于35岁),示例如下图:

5.如果约束建立后,请试着插入重复元组,结果如何?

试着插入重复元组,无法插入:

答:

约束建立后,插入重复元组,无法插入,示例如下图:

三、用SQL完成下列查询

1.求选修了课程的学生的学号,要求:

(1)不使用distinct语句,消除重复元组,写出其SQL语句

selectSnofromSCgroupbySNohavingcount(*)>0

(2)

使用distinct语句,消除重复元组,写出其SQL语句

selectdistinctStudents.SnofromStudents,SCwhereStudents.Sno=SC.

Sno

(3)如果该查询写成:

selectStudents.SnofromStudents,SCwhereStudents.Sno=SC.Sno

请问该查询结果和上面哪个结果是相同的?

都不相同

2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。

selectCourses.Cno课程号,Courses.Cname课程名,Courses.Ctime学时,Courses.Ccredit学分fromCourses

3.求计算机系和数学系的学生学号、姓名和年龄。

selectStudents.Sno,Students.Sname,Students.SagefromStudents

whereStudents.Sdeptin('计算机系','数学

4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的列名。

select*fromStudentswhereSdeptnotin('计算机系','数学系')

5.求全体学生的信息,要求按年龄升序排列。

select*fromStudentsorderbySageasc

6.求计算机系年龄在18~20岁之间的学生姓名和年龄

selectSname,SagefromStudentswhereSdept='计算机系'andSagebetween18and24

7.求姓名是以王开头的计算机系学生。

select*fromStudentswhereSnamelike'王%'andStudents.Sdept='计算机系'

8.求选修了C2(课号)课程的学生的学号、姓名、成绩。

selectStudents.Sno,Students.Sname,SC.GradefromStudents,SC

whereStudents.Sno=SC.SnoandSC.Cno='C2'

9.求学号为95开头的学生的学号和所选修的课程的学分。

selectStudents.Sno学号,Courses.Ccredit学分fromStudents,SC,Courses

whereStudents.Sno=SC.SnoandSC.Cno=Courses.CnoandStudents.Snolike'95%'

10.求选修C1课程且成绩为80分以上的学生的学号、姓名和成绩。

selectStudents.Sno学号,Students.Sname姓名,SC.Grade成绩fromStudents,SC,Courses

whereStudents.Sno=SC.SnoandSC.Cno=Courses.CnoandCourses.Cno='C1'andSC.Grade>80

11.求计算机系每个学生的姓名,选修的课程名和成绩。

selectStudents.Sname姓名,Courses.Cname课程名,SC.Grade成绩fromStudents,SC,Courses

whereStudents.Sno=SC.SnoandSC.Cno=Courses.CnoandStudents.Sdept='计算机系'

12.求每个学生的学号及平均成绩。

selectStudents.Sno学号,avg(Grade)平均成绩fromStudents,SC

whereStudents.Sno=SC.Sno

groupbyStudents.Sno

13.求男学生每一年龄组中超过1人的年龄组及人数。

selectSage年龄组,count(Sno)人数fromStudentsgroupbySagehavingcount(*)>1

14.求每一门课程的间接先行课号。

selectcourses1.Cno课程号,courses2.Cpno间接先行课号fromCoursescourses1,Coursescourses2

wherecourses1.Cpno=courses2.Cno

 

15.求选修了全部课程的学生的学号。

selectStudents.Sno学生的学号

fromStudents

wherenotexists(select*

fromCourses

wherenotexists(select*

fromSC

whereSno=Students.Snoand

Cno=Courses.Cno))

四、

1.修改表Students,在其中加入一个字段性别sexchar

(1)

ALTERTABLEstudentsADDsexchar

(1);

2.创建视图

▪创建计算机系学生视图CS_Students,其中包括学号、年龄和性别。

带withcheckopition子句

不带withcheckopition子句

▪时各插入一计算机系学生记录,通过视图查询插入的记录,结果如何?

通过表Students查询插入的记录,查看所在系字段上的值?

---withcheckoption

createviewCS_Studentsasselectsno,sage,ssex,sdept

fromstudents

wheresdept='CS'

withcheckoption

insertintoCS_Students(sno,sage,ssex,sdept)

values('2010012','19','M','CS');

没有withcheckoption

createviewCS_Studentsasselectsno,sage,ssex

fromstudents

wheresdept='CS'

insertintoCS_Students(sno,sage,ssex)

values('2010012','19','M');

Withcheckoption视图插入时加入为计算机系时图、表成功插入,不是时都无法成功加入;没有withnooption时可以插入students表,视图始终无法插入

创建一视图,表示学生的平均成绩,其中包括Sno,avgGrade。

通过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1