zoukankan      html  css  js  c++  java
  • day35

    1. 查询所有大于60分的学生的姓名和学号 (DISTINCT: 去重)

    mysql> select DISTINCT student.sname,sid from scores right join student on
    -> sid=scores.student_id where scores.number1>60;
    +----------+-----+
    | sname | sid |
    +----------+-----+
    | xiaoning | 1 |
    | xiaoming | 2 |
    | xiaoa | 3 |
    +----------+-----+
    3 rows in set (0.00 sec)

    -- 2.查询每个老师教授的课程数量 和 老师信息

    mysql> select count(course_id),teacher_id from teacher_course group by teacher_id;
    +------------------+------------+
    | count(course_id) | teacher_id |
    +------------------+------------+
    | 2 | 1 |
    | 2 | 2 |
    | 2 | 3 |
    +------------------+------------+
    3 rows in set (0.00 sec)

    -- 3. 查询学生的信息以及学生所在的班级信息

    mysql> select sname,sid ,caption from clas left join student on
    -> class_id=clas.cid;
    +----------+------+--------------+
    | sname | sid | caption |
    +----------+------+--------------+
    | xiaoning | 1 | 三年二班 |
    | xiaod | 5 | 三年二班 |
    | xiaof | 7 | 三年二班 |
    | xiaoming | 2 | 一年三班 |
    | xiaoa | 3 | 一年三班 |
    | xiaoe | 6 | 一年三班 |
    | xiaob | 4 | 三年一班 |
    | xiaog | 8 | 三年一班 |
    +----------+------+--------------+
    8 rows in set (0.00 sec)

    -- 4、学生中男生的个数和女生的个数

    mysql> select count(sid),gender from student group by gender;
    +------------+--------+
    | count(sid) | gender |
    +------------+--------+
    | 5 | 男 |
    | 3 | 女 |
    +------------+--------+
    2 rows in set (0.00 sec)

    -- 5、获取所有学习'生物'的学生的学号和成绩;姓名

    mysql> select student_id,sname,number1 from scores left join student on sid=scores.student_id where scores.course_id=1;
    +------------+----------+---------+
    | student_id | sname | number1 |
    +------------+----------+---------+
    | 1 | xiaoning | 80 |
    | 2 | xiaoming | 70 |
    | 3 | xiaoa | 50 |
    +------------+----------+---------+
    3 rows in set (0.00 sec)

    -- 6、查询平均成绩大于60分的同学的学号和平均成绩;

    mysql> select student_id ,avg(number1)as pj from scores group by student_id having pj > 60;
    +------------+---------+
    | student_id | pj |
    +------------+---------+
    | 1 | 66.6667 |
    | 2 | 70.0000 |
    | 3 | 70.0000 |
    +------------+---------+
    3 rows in set (0.00 sec)

    -- 7、查询姓“张”的老师的个数;

    mysql> select count(tid) from teacher where teacher.tname like '张%' group by tid;
    +------------+
    | count(tid) |
    +------------+
    | 1 |
    +------------+
    1 row in set (0.00 sec)

    -- 8、查询课程成绩小于60分的同学的学号、姓名;

    mysql> select DISTINCT student.sname,sid from scores right join student on
    -> sid=scores.student_id where scores.number1<60;
    +----------+-----+
    | sname | sid |
    +----------+-----+
    | xiaoning | 1 |
    | xiaoa | 3 |
    +----------+-----+
    2 rows in set (0.00 sec)

    -- 9. 删除学习“叶平”老师课的SC表记录

    -- 10.查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;

    mysql> select course_id ,max(number1),min(number1) from scores group by course_id;
    +-----------+--------------+--------------+
    | course_id | max(number1) | min(number1) |
    +-----------+--------------+--------------+
    | 1 | 80 | 50 |
    | 2 | 70 | 40 |
    | 3 | 90 | 80 |
    +-----------+--------------+--------------+
    3 rows in set (0.00 sec)mysql> select course_id ,max(number1),min(number1) from scores group by course_id;
    +-----------+--------------+--------------+
    | course_id | max(number1) | min(number1) |
    +-----------+--------------+--------------+
    | 1 | 80 | 50 |
    | 2 | 70 | 40 |
    | 3 | 90 | 80 |
    +-----------+--------------+--------------+
    3 rows in set (0.00 sec)

    -- 11.查询每门课程被选修的学生数

    mysql> select course_id,count(student_id) from scores group by course_id;
    +-----------+-------------------+
    | course_id | count(student_id) |
    +-----------+-------------------+
    | 1 | 3 |
    | 2 | 3 |
    | 3 | 3 |
    +-----------+-------------------+
    3 rows in set (0.00 sec)

    -- 12.查询姓“xiao”的学生名单;

    mysql> select * from student where sname like 'xiao%';
    +-----+----------+--------+----------+
    | sid | sname | gender | class_id |
    +-----+----------+--------+----------+
    | 1 | xiaoning | 男 | 1 |
    | 2 | xiaoming | 男 | 2 |
    | 3 | xiaoa | 男 | 2 |
    | 4 | xiaob | 男 | 3 |
    | 5 | xiaod | 女 | 1 |
    | 6 | xiaoe | 女 | 2 |
    | 7 | xiaof | 男 | 1 |
    | 8 | xiaog | 女 | 3 |
    +-----+----------+--------+----------+
    8 rows in set (0.00 sec)

    -- 13.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列

    mysql> select course_id,avg(number1)from scores group by course_id,
    -> course_id order by avg(number1) asc,course_id desc;
    +-----------+--------------+
    | course_id | avg(number1) |
    +-----------+--------------+
    | 2 | 56.6667 |
    | 1 | 66.6667 |
    | 3 | 83.3333 |
    +-----------+--------------+
    3 rows in set (0.00 sec)

    -- 14.查询平均成绩大于60的所有学生的学号、姓名和平均成绩

    mysql> select student_id ,sname,avg(number1)as pj from scores left join
    -> student on scores.student_id = student.sid group by student_id;
    +------------+----------+---------+
    | student_id | sname | pj |
    +------------+----------+---------+
    | 1 | xiaoning | 66.6667 |
    | 2 | xiaoming | 70.0000 |
    | 3 | xiaoa | 70.0000 |
    +------------+----------+---------+
    3 rows in set (0.00 sec)

    -- 15.查询课程编号为3且课程成绩在65分以上的学生的学号和姓名;

    mysql> select student_id ,sname from scores left join
    -> student on scores.student_id = student.sid where course_id=3 and number1>65;
    +------------+----------+
    | student_id | sname |
    +------------+----------+
    | 1 | xiaoning |
    | 2 | xiaoming |
    | 3 | xiaoa |
    +------------+----------+
    3 rows in set (0.00 sec)

    -- 16.查询各个课程及相应的选修人数

    mysql> select cname,course_id,count(student_id) from scores left join course
    -> on scores.course_id=course.coid group by course_id;
    +--------+-----------+-------------------+
    | cname | course_id | count(student_id) |
    +--------+-----------+-------------------+
    | 生物 | 1 | 3 |
    | 物理 | 2 | 3 |
    | 体育 | 3 | 3 |
    +--------+-----------+-------------------+
    3 rows in set (0.02 sec)

    -- 17.查询“2”课程分数小于85,按分数降序排列的同学学号

    mysql> select student_id from scores where number1<85 and course_id=2 order by number1 desc;
    +------------+
    | student_id |
    +------------+
    | 3 |
    | 2 |
    | 1 |
    +------------+
    3 rows in set (0.00 sec)

    -- 18.删除学号为“2”的同学的“1”课程的成绩

    mysql> delete from scores where student_id=2 and course_id=1;
    Query OK, 1 row affected (0.07 sec)

    mysql> select * from scores where student_id=2;
    +------+------------+-----------+---------+
    | scid | student_id | course_id | number1 |
    +------+------------+-----------+---------+
    | 5 | 2 | 2 | 60 |
    | 8 | 2 | 3 | 80 |
    +------+------------+-----------+---------+

    -- 1. 查询所有大于60分的学生的姓名和学号  (DISTINCT: 去重)
    
    mysql> select DISTINCT student.sname,sid from scores right join student on
        -> sid=scores.student_id where scores.number1>60;
    +----------+-----+
    | sname    | sid |
    +----------+-----+
    | xiaoning |   1 |
    | xiaoming |   2 |
    | xiaoa    |   3 |
    +----------+-----+
    3 rows in set (0.00 sec)
    
    -- 2.查询每个老师教授的课程数量 和 老师信息
    
    mysql> select count(course_id),teacher_id from teacher_course group by teacher_id;
    +------------------+------------+
    | count(course_id) | teacher_id |
    +------------------+------------+
    |                2 |          1 |
    |                2 |          2 |
    |                2 |          3 |
    +------------------+------------+
    3 rows in set (0.00 sec)
    
    -- 3. 查询学生的信息以及学生所在的班级信息
    
    mysql> select sname,sid ,caption from clas left join student on
        -> class_id=clas.cid;
    +----------+------+--------------+
    | sname    | sid  | caption      |
    +----------+------+--------------+
    | xiaoning |    1 | 三年二班     |
    | xiaod    |    5 | 三年二班     |
    | xiaof    |    7 | 三年二班     |
    | xiaoming |    2 | 一年三班     |
    | xiaoa    |    3 | 一年三班     |
    | xiaoe    |    6 | 一年三班     |
    | xiaob    |    4 | 三年一班     |
    | xiaog    |    8 | 三年一班     |
    +----------+------+--------------+
    8 rows in set (0.00 sec)
    
    -- 4、学生中男生的个数和女生的个数
    
    mysql> select count(sid),gender from student group by gender;
    +------------+--------+
    | count(sid) | gender |
    +------------+--------+
    |          5 | 男     |
    |          3 | 女     |
    +------------+--------+
    2 rows in set (0.00 sec)
    
    -- 5、获取所有学习'生物'的学生的学号和成绩;姓名
    
    mysql> select student_id,sname,number1 from scores left join student on sid=scores.student_id where scores.course_id=1;
    +------------+----------+---------+
    | student_id | sname    | number1 |
    +------------+----------+---------+
    |          1 | xiaoning |      80 |
    |          2 | xiaoming |      70 |
    |          3 | xiaoa    |      50 |
    +------------+----------+---------+
    3 rows in set (0.00 sec)
    
    -- 6、查询平均成绩大于60分的同学的学号和平均成绩; 
    
    mysql> select student_id ,avg(number1)as pj from scores group by student_id having pj > 60;
    +------------+---------+
    | student_id | pj      |
    +------------+---------+
    |          1 | 66.6667 |
    |          2 | 70.0000 |
    |          3 | 70.0000 |
    +------------+---------+
    3 rows in set (0.00 sec)
    
    -- 7、查询姓“张”的老师的个数;
    
    mysql> select  count(tid) from teacher where teacher.tname like '张%' group by tid;
    +------------+
    | count(tid) |
    +------------+
    |          1 |
    +------------+
    1 row in set (0.00 sec)
    
    -- 8、查询课程成绩小于60分的同学的学号、姓名;
    
    mysql> select DISTINCT student.sname,sid from scores right join student on
        -> sid=scores.student_id where scores.number1<60;
    +----------+-----+
    | sname    | sid |
    +----------+-----+
    | xiaoning |   1 |
    | xiaoa    |   3 |
    +----------+-----+
    2 rows in set (0.00 sec)
    
    -- 9. 删除学习“叶平”老师课的SC表记录
    
    
    
    -- 10.查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;
    
    mysql> select course_id ,max(number1),min(number1) from scores group by course_id;
    +-----------+--------------+--------------+
    | course_id | max(number1) | min(number1) |
    +-----------+--------------+--------------+
    |         1 |           80 |           50 |
    |         2 |           70 |           40 |
    |         3 |           90 |           80 |
    +-----------+--------------+--------------+
    3 rows in set (0.00 sec)mysql> select course_id ,max(number1),min(number1) from scores group by course_id;
    +-----------+--------------+--------------+
    | course_id | max(number1) | min(number1) |
    +-----------+--------------+--------------+
    |         1 |           80 |           50 |
    |         2 |           70 |           40 |
    |         3 |           90 |           80 |
    +-----------+--------------+--------------+
    3 rows in set (0.00 sec)
    
    -- 11.查询每门课程被选修的学生数
    
    mysql> select course_id,count(student_id) from scores group by course_id;
    +-----------+-------------------+
    | course_id | count(student_id) |
    +-----------+-------------------+
    |         1 |                 3 |
    |         2 |                 3 |
    |         3 |                 3 |
    +-----------+-------------------+
    3 rows in set (0.00 sec)
    
    -- 12.查询姓“xiao”的学生名单;
    
    mysql> select * from student where sname like 'xiao%';
    +-----+----------+--------+----------+
    | sid | sname    | gender | class_id |
    +-----+----------+--------+----------+
    |   1 | xiaoning | 男     |        1 |
    |   2 | xiaoming | 男     |        2 |
    |   3 | xiaoa    | 男     |        2 |
    |   4 | xiaob    | 男     |        3 |
    |   5 | xiaod    | 女     |        1 |
    |   6 | xiaoe    | 女     |        2 |
    |   7 | xiaof    | 男     |        1 |
    |   8 | xiaog    | 女     |        3 |
    +-----+----------+--------+----------+
    8 rows in set (0.00 sec)
    
    -- 13.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
    
    mysql> select course_id,avg(number1)from scores group by course_id,
        -> course_id order by avg(number1) asc,course_id desc;
    +-----------+--------------+
    | course_id | avg(number1) |
    +-----------+--------------+
    |         2 |      56.6667 |
    |         1 |      66.6667 |
    |         3 |      83.3333 |
    +-----------+--------------+
    3 rows in set (0.00 sec)
    
    -- 14.查询平均成绩大于60的所有学生的学号、姓名和平均成绩
    
    mysql> select student_id ,sname,avg(number1)as pj from scores left join
        -> student on scores.student_id = student.sid group by student_id;
    +------------+----------+---------+
    | student_id | sname    | pj      |
    +------------+----------+---------+
    |          1 | xiaoning | 66.6667 |
    |          2 | xiaoming | 70.0000 |
    |          3 | xiaoa    | 70.0000 |
    +------------+----------+---------+
    3 rows in set (0.00 sec)
    
    -- 15.查询课程编号为3且课程成绩在65分以上的学生的学号和姓名;
    
    mysql> select student_id ,sname from scores left join
        -> student on scores.student_id = student.sid where course_id=3 and number1>65;
    +------------+----------+
    | student_id | sname    |
    +------------+----------+
    |          1 | xiaoning |
    |          2 | xiaoming |
    |          3 | xiaoa    |
    +------------+----------+
    3 rows in set (0.00 sec)
    
    -- 16.查询各个课程及相应的选修人数
    
    mysql>  select cname,course_id,count(student_id) from scores left join course
        ->  on scores.course_id=course.coid group by course_id;
    +--------+-----------+-------------------+
    | cname  | course_id | count(student_id) |
    +--------+-----------+-------------------+
    | 生物   |         1 |                 3 |
    | 物理   |         2 |                 3 |
    | 体育   |         3 |                 3 |
    +--------+-----------+-------------------+
    3 rows in set (0.02 sec)
    
    -- 17.查询“2”课程分数小于85,按分数降序排列的同学学号
    
    mysql> select student_id from scores where number1<85 and course_id=2 order by number1 desc;
    +------------+
    | student_id |
    +------------+
    |          3 |
    |          2 |
    |          1 |
    +------------+
    3 rows in set (0.00 sec)
    
    -- 18.删除学号为“2”的同学的“1”课程的成绩
    
    mysql> delete from scores where student_id=2 and course_id=1;
    Query OK, 1 row affected (0.07 sec)
    
    mysql> select * from scores where student_id=2;
    +------+------------+-----------+---------+
    | scid | student_id | course_id | number1 |
    +------+------------+-----------+---------+
    |    5 |          2 |         2 |      60 |
    |    8 |          2 |         3 |      80 |
    +------+------------+-----------+---------+
    
  • 相关阅读:
    getopt( )和 getopt_long( )
    关于跳跃表 转
    进程控制块的存放和当前进程的确定
    BUAA_OO_2020_Unit1 Summary
    熟悉常用的Linux操作
    编译原理
    词法分析
    组合数据类型练习
    实验一 词法分析实验
    简化版C语言文法
  • 原文地址:https://www.cnblogs.com/ghylpb/p/11769002.html
Copyright © 2011-2022 走看看