数据库实验报告资料文档格式.docx
- 文档编号:18738416
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:34
- 大小:3.02MB
数据库实验报告资料文档格式.docx
《数据库实验报告资料文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验报告资料文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
createtableCourses--课程
(
Cnonchar(4),
Cnamenchar(50),
Ctimeint,
Ccreditint,
Cpnonchar(4)
primarykey(Cno),
foreignkey(Cpno)referencesCourses,
createtableSC--选修
Snonchar(10),
Gradeint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudents,
foreignkey(Cno)referencesCourses,
2.在数据库中定义这些关系模式,并向基本表中插入如下数据:
--插入学生表
insertintoStudents(Sno,Sname,Ssex,Sage,Sdept)
values('
20121001'
'
陆毅'
男'
21,'
信息学院'
)
20121002'
李铭'
24,'
资土学院'
20121003'
赵红'
女'
20,'
20121004'
黄晓明'
23,'
机械学院'
20121005'
李冰'
19,'
20121006'
李俊'
25,'
20121007'
赵金'
27,'
20121008'
杨英'
22,'
20121009'
张东宇'
18,'
20121010'
彭东'
--插入课程表
insertintoCourses(Cno,Cname,Ctime,Ccredit,Cpno)values('
2001'
C语言'
25,2.5,null)
2003'
C++语言'
50,5,'
1005'
文本处理'
20,2,'
1006'
信息安全'
2002'
汇编语言'
30,3,null)
1003'
高等数学'
60,6,null)
1002'
数值分析'
30,3,'
2004'
C#语言'
1001'
离散数学'
40,4,'
1004'
软件工程'
3001'
工程制图'
3002'
机械原理'
60,6,'
4001'
线性代数'
4002'
测绘工程'
--插入选修关系
insertintoSC(Sno,Cno,Grade)values('
91)
93)
89)
97)
90)
98)
87)
79)
99)
81)
92)
78)
80)
69)
83)
72)
77)
70)
84)
94)
96)
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(*)>
(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
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'
没有withcheckoption
createviewCS_Studentsasselectsno,sage,ssex
insertintoCS_Students(sno,sage,ssex)
Withcheckoption视图插入时加入为计算机系时图、表成功插入,不是时都无法成功加入;
没有withnooption时可以插入students表,视图始终无法插入
创建一视图,表示学生的平均成绩,其中包括Sno,avgGrade。
通过该视图插
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告 资料