
最大的变化 天翻地覆
最宝贵的话 一字千金
最难做的饭 无米之炊
最吝啬的人 一毛不拔
最大的手术 脱胎换骨
--1、利用SQL语句创建以上三张表,并指定每张表的主键和外键;--学生表(S):
create table student
(
sid varchar2(20) primary key,
sname varchar2(20),
age number,
sex varchar2(4),
department varchar2(20),
address varchar2(50),
birthplace varchar2(50)
)
--选课表(SC):
create table class
(
sid varchar2(20) references student(sid),
cid varchar2(20) primary key,
grade number
)
--教师表(C):
create table teacher
(
cid varchar2(20) references class(cid),
cname varchar2(20),
teacher varchar2(20)
)
--2、以上三张表各插入一条记录,
--记录值分别为:(s20110101,王林,20,男,经济管理系,浙江省杭州市西湖区168号,浙--江杭州)、
--(s20110101,1001,85)、(1001,网络数据库与应用,李小波);
insert into student
values
('s20110101',
'王林',
20,
'男',
'经济管理系',
'浙江省杭州市西湖区168号',
'浙江杭州')
insert into class values ('s20110101', '1001', 85)
insert into teacher values ('1001', '网络数据库与应用', '李小波')
--3、查询李老师所教的课程号、课程名称;
select cid, cname from teacher where teacher like '李%'
--4、查询年龄在23岁26岁之间的女学生的学号和姓名;
select sid, sname
from student
where sex = '女'
and age >= 23
and age <= 26
--5、查询“李小波”所选修的全部课程名称;
select t.cname
from student s, class c, teacher t
where s.sid = c.sid
and c.cid = t.cid
and a.sname = '李小波'
--6、查询所有成绩都在90分以上的学生姓名及所在系;
select s.sname, s.department
from student s, class c
where s.sid = c.sid
and c.grade > 90
--7、查询没有选修“ *** 作系统”课的学生的姓名;
select s.sname
from student s, class c, teacher t
where s.sid = c.sid
and c.cid = t.cid
and t.cname = ' *** 作系统'
--8、查询与“李小波”同乡的男生姓名及所在系;
select sname, department
from student
where sex = '男'
and address in (select address from student where sname = '李小波')
and sname <> '李小波'
--9、查询英语成绩比数学成绩好的学生;
select s.sname
from student s
where s.sid in (select c1.sid
from (select c.sid, c.grade
from class c, reachar t
where c.cid = t.cid
and t.name = '英语') c1,
class (select c.sid, c.grade
from class c, reachar t
where c.cid = t.cid
and t.name = '数学') c2
where c1.sid = c2.sid
and c1.grade > c2.grade)
--10、查询选修同一门课程时,女生比男生成绩好的学生名单;
select f.sname
from (select s.sname, c.cid, c.grade
from student s, class c
where s.sid = c.sid
and s.sex = '女') f,
(select c.cid, c.grade
from student s, class c
where s.sid = c.sid
and s.sex = '男') m
where f.cid = m.cid
and f.grade > m.grade
--11、查询至少选修两门以上课程的学生姓名、性别;
select s.sname, s.sex
from student s, class c, teachar t
where s.sid = c.sid
group by s.sname, s.sex
having count(distinct c.cid) > 2
--12、查询选修了李老师所讲课程的学生人数;
select count(distinct s.sid)
from student s, class c, teacher t
where s.sid = c.sid
and c.cid = t.cid
and t.teacher like '李%'
--13、查询没有选修李老师所讲课程的学生;
select s.sname
from student s, class c
where s.sid = c.sid
and c.cid not in (select cid from teacher where teacher like '李%')
--14、查询“ *** 作系统”课程得最高分的学生姓名、性别、所在系;
select sname, sex, department
from student s, class c, teacher t
where s.sid = c.sid c.cid = t.cid
and cname = ' *** 作系统'
and c.grade in (select max(grade)
from class c1, teacher t1
where c1.cid = t1.cid
and cname = ' *** 作系统')
全部手打,望采纳。。。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)