实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南华大学
计算机科学与技术学院
实验报告
(2010 ~2011 学年度第二学期)
课程名称数据库原理与技术实验名称
姓名苏宁学号***********
专业软件工程班级091
地点2-209 教师刘征海老师
实验一
一.实验题目
熟悉SQL Server Management Studio 的基本操作,进一步理解数据库、表、表间关系的概念。且要熟悉创建数据库和数据表的SQL语句。
二.实验要求
创建数据库和数据表时应认真,如果出错,应相应地修改结构或删除。输入SQL语句时应注意,语句中均使用西文操作符号。三.实验代码
CREATE DATABASE[StudentCourseRJ0139]
CREATE TABLE[dbo].[StudentRJ0139](
[Sno][nchar](10)PRIMARY KEY,
[Sname][nchar](4)NOT NULL,
[Ssex][nchar](2)NOT NULL,
[Sbirthday][nchar](15)NOT NULL,
[Sdept][nchar](10)NOT NULL,
[Memo][nchar](20)NOT NULL)
CREATE TABLE[dbo].[CourseRJ0139](
[Cno][nchar](10)PRIMARY KEY,
[Cname][nchar](10)NOT NULL,
[ProCno][nchar](2)NOT NULL,
[Credit][nchar](2)NOT NULL)
CREATE TABLE[dbo].[ScRJ0139](
[Sno][nchar](10)PRIMARY KEY,
[Cno][nchar](10)NOT NULL,
[Grade][nchar](3) NOT NULL)
四.截图
五.实验总结
既要熟悉直接建立数据库相应的操作,又要掌握用SQL语句建立数据库相应的操作。注意create语句的使用。
实验二
一.实验题目
数据库单表查询和多表连接查询
二.实验要求
子句where《条件》表示元组筛选条件;子句having《条件》表示元组选择条件;子句having《条件》必须和group by子句配合使用;注意输入sql语句时均应使用西文操作符号。
三.实验代码
1.查询计算机系全体学生的信息
select*from StudentRJ0139 where Sdept='计算机'
2.查询姓‘李’的学生的学号和姓名
select Sno学号,Sname姓名from StudentRJ0139 where Sname like'李%'
3.查询课程表中先行课为空的课程名
select Cname from CourseRJ0139 where PreCno is null
4.查询考试成绩有不及格的学生的学号
select sno from ScRJ0139where Grade<60
5.求选修了C1或C2课程的学生的学号和成绩
select sno, grade from ScRJ0139where Cno='c1' or Cno='c2'
6.查询全体计算机系学生的姓名及其年龄
select Sname, Sage from StudentRJ0139 where sdept='计算机'
7.查询计算机系在1986-1987年出生的学生
select sname from StudentRJ0139where Sbirthday between 1986 and 1987
8.查询姓李的前两个学生的学号和姓名
select top 2 sno from StudentRJ0139where Sname like'李%'
9.查询选修了两门以上课程的学生学号和课程数
select sno,count(*)as选课数from ScRJ0139group by sno having COUNT(*)>2
10.查询选修课程数大于等于2的学生的学号、选课门数和平均成
绩
select sno,COUNT(*)as选课门数,A VG(grade)from ScRJ0139group by Sno having COUNT(*)>=2 order by A VG(grade)desc
1.查询选修了数据库原理的计算机系的学生的学号和姓名
select s.sno,s.sname from StudentRJ0139s join ScRJ0139sc on s.Sno=sc.Sno join CourseRJ0139c on o=o where Sdept='计算机'and Cname='数据库原理'
2.查询每一门课的间接先行课
select PreCno from CourseRJ0139where Cno in(select PreCno from CourseRJ0139 where PreCno is not null)
3.查询学生的学号、姓名、选修课程的名称和成绩
select s.sno,sname,Cname,grade PreCno from StudentRJ0139s join ScRJ0139SC on s.Sno=SC.sno join CourseRJ0139c on o=o
4.查询选修了课程的学生的姓名
select distinct sname from StudentRJ0139s join ScRJ0139SC on s.Sno=SC.sno
5.查询所有学生的信息和所选修的课程
select sname,s.sno,Ssex,Sbirthday,Sdept,Memo,cname from StudentRJ0139s join ScRJ0139SC on s.Sno=SC.sno join o=o
6.查询已被选修的课程情况和所有课程名字
select sno,cname,c,Cno,PreCno,Credit from ScRJ0139sc join CourseRJ0139c on o=o
7.列出学生所有可能的选修情况
select sname,Cno from ScRJ0139sc join StudentRJ0139s on sc.Sno=s.Sno