2016.4 课程管理sql 以及查询视图

//某学院管理系统有如下表:
//课程表:课程号,课程名,任课老师姓名,学时数。
//学生表:学号,学生姓名,性别,年级。
//选课表:课程号,学号,成绩。
//要求:1,使用sql渔具建立以上三个表,需要主键,外键。
//      2,建立视图,对于每门课程,列出课程号,课程名以及不及格学生人数。
//        注:不需要在电脑上建表,只需要写出sql语句,保存在文本中即可。
        
      1,  
        creat table student
        (
            sno smallint primary key,
            sname char(20) unique,
            ssex char(2),
            gradno smallint
        );
        
        creat table course
        (
            cno smallint primary key,
            cname char(20) unique,
            techername char(20) unique,
            classtime smallint
        );
        
        creat table s_c
        (
         cno smallint,
         sno smallint,
         score smallint,
         primary key(sno,cno),
         foreign key(sno) reference student(cno),
         foreign key(cno) reference course(no)
         );
         
        2,第一步,先建立不及格学生的视图。
        creat view badst(cno,cname,sno,score)
          as
          select course.cno,cname,sno,score
          from s_c,course
          where score<60 and 
                course.no=s_no
                 
                 
          ;
          
          第二步,建立最终目标视图。
          creat view bsn(cno,cname,badno)
        as
        select distinct cno,cname,count(sno)
        from badst
        group by cno;
        
        
        ; 
         
         
         
         
         
         
         

 

一、建立以下五个表: 教师表:Teacher,学生表:Student, 课程表:Course,选课表:SC,授课表:TC 二、完成以下查询: 1.查询成绩在80-90之间的记录。 2.查询至少4个同学选修的课程名。 3.查询其他系中比“信息系”所有学生年龄都大的学生名单及年龄,并按年龄降序输出: 4.查询与学生张建国同岁的所有学生的学号。姓名和系别。 5.查询选修了2门以上课程的学生名单。 6.查询至少有一门与“张建国”选课相同的学生的姓名,课程号,系别 7.查询成绩比该课程平均成绩高的学生的成绩表。 8.查询选课号为01001课程且成绩高于课程01002学生的姓名,此两门课的课程名和成绩。 9.查询所有没选修01001号课程的学生名单 10、查询每个同学各门课程的平均成绩和最高成绩,按降序输出姓名、平均成绩、最高成绩; 11、查询所有学生都选修了的课程号和课程名; 12、查询选修了991102号学生选修了的课程的学生学号和姓名。 三、使用SQL创建视图,修改记录 1.创建成绩视图SCORE_VIEW,包含学号sno,姓名sn,课程名cn,成绩score; 2.创建一个计算机系学生名单视图S_VIEW,包含学号sno,姓名sn,性别sex; 3.通过上面的视图,修改学号为991102,课程号01001的成绩记录; 4,创建一个视图,计算机系学生的成绩单score_view_CDEPT,包含学号sno,姓名sn,课程名cn,成绩score
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值