当前位置:
文档之家› 实验2 数据管理与查询(一)
实验2 数据管理与查询(一)
use school
create table student
(sno char(9) primary key,
sname char(20) unique,
ssex char(20),
sage smallint,
sdept char(20)
);
create table course
(cno char(4) primary key,
insert
into Course
values(2,'数学',null,2);
insert
into Course
values(6,'数据处理',null,2);
insert
into Course
values(4,'操作系统',6,3);
insert
into Course
values(7,'PASCAL语言',6,4);
insert
into Course
values(5,'数据结构',7,4);
insert
into Course
values(1,'数据库',5,4);
insert
into Course
values(3,'信息系统',1,4);
insert
into SC
values('200215121',1,92);
from SC
where Grade>=80 and Grade<90
and sno in(
select sno
from SC
group by sno
having count(*)>=2);
五出现的问题及解决方法
1,在course 表输入数据过程时,注意先行课和课程号之间的关系,输入次序要有所变化。
insert
into student
values('200215122','刘晨','女',19,'CS');
insert
into student
values('200215123','王敏','女',18,'MA');
insert
into student
values('200215125','张立','男',19,'IS');
insert
into SC
values('200215121',2,85);
insert
into SC
values('200215121',3,88);
insert
into SC
values('200215122',2,90);
insert
into SC
values('200215122',3,80);
2,在查询中要注意各个表之间的对应关系,连接关系
3,在一些细节方面,容易发现问题,忽视解决方法。
六总结
要多练上机操作,学会在问题中学习,查找,发现和解决,提高自己的动手实践能力。另外还要夯实书本的基本知识点,手写基本操作,在上机执行,更快提高自己的能力。
1,查询计算机系(CS)中所有男生的姓名和学号,并按学号降序排列
use school
select sname,sno
from student
where ssex='男'and sdept='CS'
order by sno desc;
2,查询“信息系统”课程的先行课程的学分
select Grade
from SC
(7)分组查询各课程的平均成绩,输出课程号和平均成绩
(8)查询计算机系学生的姓名和各课程的成绩
(9)查询至少有2门课程的成绩为良好(≥80并且<90)的学生的学号
四实验过程和结果
(注:对于实验内容中的9个查询,请写出对应的关系代数表达式、SQL查询语句和查询结果)
首先用creat语句创建student,course,sc表
foreign key (sno) references student(sno)
foreign key (cno) references course(cno)
);
再利用insert语句插入内容
insert
into student
values('200215121','李勇','男',20,'CS');
cname char(40) ,
cpno char(4),
ccredit smallint,
foreign key (cpno) references course(cno)
);
create table sc
(sno char(9) ,
cno char(4) ,
grade smallint,
primary key (sno,cno)
use school
select sno,grade
from sc
where cno='2'and grade>='90'
5,查询2002级学生的总人数信息
use school
select count(sno)
from student
where sno like'2002%'
6,分组查询各系的学生总人数,输出系名和总人数
use school
select sdept,count(sno)
from student
group by sdept
7,分组查询各课程的平均成绩,输出课程号和平均成绩
Select cno, avg(grade)avg_grade
From sc
Group by cno
8,查询计算机系学生的姓名和各课程的成绩
三实,创建数据库“School”,在School数据库中利用Create语句创建教科书P82页中给出的Student、Course和SC表(注意保持关系表之间的外码依赖关系)。
2利用Insert语句在Student、Course和SC表中插入P82页中给出三个表的所有元组。
3完成如下查询:
(1)查询计算机系(CS)中所有男生的姓名和学号,并按学号降序排列
(2)查询“信息系统”课程的先行课程的学分
(3)查询姓“刘”的学生的学号、姓名、性别和专业信息
(4)查询2号课程成绩为优秀(≥90)的学号和成绩
(5)查询2002级学生的总人数信息
(6)分组查询各系的学生总人数,输出系名和总人数
Select student.sname,sc.grade,o
From sc,student
Where sc.sno=student.sno
And student.sdept =’cs’
9,查询至少有2门课程的成绩为良好(≥80并且<90)的学生的学号
select distinct sno
where Cno=(select Cpno
from Course
where Cname='信息系统');
3,查询姓“刘”的学生的学号、姓名、性别和专业信息
Select sno,sname,ssex,sdept
From student
Where sname like‘刘%’
,
4,查询2号课程成绩为优秀(≥90)的学号和成绩
南京财经大学
数据结构与数据库系统
实验报告书
实验2 SQL语言——数据定义、管理与查询(一)
专业:统计学
学号:1102110220
姓名:王靓雅
任课老师:戴华
学院:经济学院
2012年11月1日
一实验目的
1熟悉SQL语言的数据定义、管理和查询
二实验平台
1操作系统:Windows XP
2数据库管理系统:Access和SQL Server 2000