• SQL练习题


    Student(S#,Sname,Sage,Ssex) --学生表 
    Course(C#,Cname,T#)         --课程表 
    SC(S#,C#,score)             --成绩表 
    Teacher(T#,Tname)            --教师表
    
    -- 1、查询“001”课程比“002”课程成绩高的所有学生的学号;
    select a.S#   -- 是表限定符,S.S#意思是取S表中的S#列的值
    from (select S#,score from SC where C#='001')a,(select S#,score from SC where C#='002')b 
    where a.score>b.score and a.S#=b.S#;
    
    -- 2、查询平均成绩大于60分的同学的学号和平均成绩;
    select S#,avg(score)
    from SC
    group by S# having avg(score)>60; -- HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
    
    -- 3、查询所有同学的学号、姓名、选课数、总成绩;
    select Student.S#,Student.Sname,count(SC.C#),sum(SC.score)
    from Student left Outer join SC on Student.S#=SC.S# -- 左外连接(left join)
    group by Student.S#,Sname;
    
    -- 4、查询姓“李”的老师的个数;
    select count(distinct(Tname))
    from Teacher
    where Tname like '李%';
    
    -- 5、查询没学过“叶平”老师课的同学的学号、姓名;
    select Student.S#,Stufent.Sname
    from Student
    where S# not in (
        select distinct(SC.S#) -- 关键词 DISTINCT 用于返回唯一不同的值
        from SC,Course,Teacher 
        where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'
    );
    
    -- 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; 
    select Student.S#,Student.Sname 
    from Student,SC 
    where Student.S#=SC.S# and SC.C#='001' and exists(
        select *
        from SC as SC_2 
        where SC_2.S#=SC.S# and SC_2.C#='002'
    );
  • 相关阅读:
    MOSS中的WebPart开发
    坚持学习WF(8):本地服务之调用外部方法
    坚持学习WF(9):本地服务之事件处理
    MOSS中如何自定义WebService
    uHub 0.4.1 发布,ADC 网络枢纽
    电商网站的宕机案例分析
    JID 2.0.1 发布,高性能的 Java 序列化库
    YaCy 1.2 发布,基于P2P的分布式Web搜索引擎
    Notepad++ 6.2.0 正式版
    Windows上 IE10 最快,Mac上Chrome 19最快
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/10384757.html
Copyright © 2020-2023  润新知