登录
首页 >  数据库 >  MySQL

MySQL简单查询

来源:SegmentFault

时间:2023-01-11 17:07:10 271浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《MySQL简单查询》,就带大家讲解一下MySQL知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

图片描述

1、查询男生和女生的个数:

select 
    gender, sum(sid)
from
    student
group by gender

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

select 
    student_id, avg(num)
from
    score
group by student_id
having avg(num) > 60;

3、接上面同时显示学生名字

select 
    B.student_id, student.sname, B.xxx
from
    (select 
        student_id, avg(num) as xxx
    from
        score
    group by student_id
    having avg(num) > 60) as B
        left join
    student ON B.student_id = student.sid;

-- avg(num)会被认为函数,不能做列名使用,加as xxx定义别名,()as B定义临时表

4、查询所有同学的学号、姓名、选课数、总成绩:

select 
    score.student_id,
    student.sname,
    count(score.student_id),
    sum(score.num)
from
    score
        left join
    student ON score.student_id = student.sid
group by score.student_id

5、查询姓“李”的老师的个数:

select 
    count(tid)
from
    teacher
where
    tname like '李%'

6、查询没学过“李平”老师课的同学的学号、姓名

select 
        *
    from
        student
    where
        sid not in (select 
                student_id
            from
                score
            where
                course_id in (SELECT 
                        cid
                    FROM
                        db1.course
                            left join
                        teacher ON course.teacher_id = teacher.tid
                    where
                        tname = '李平老师'))

7、查询“生物”课程比“物理”课程成绩高的所有学生的学号

select 
    A.student_id
from
    (select 
        score.student_id, course.cname, score.num
    from
        score
    left join course ON score.course_id = course.cid
    where
        cname = '生物') as A
        left join
    (select 
        score.student_id, course.cname, score.num
    from
        score
    left join course ON score.course_id = course.cid
    where
        cname = '物理') as B ON A.student_id = B.student_id
where
    A.num > B.num

8、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名

select 
    A.student_id, student.sname
from
    (select 
        *
    from
        score
    left join course ON score.course_id = course.cid
    where
        course.cid = 1 or course.cid = 2) as A
        left join
    student ON A.student_id = student.sid
where
    course_id > 1

9、查询和编号“2”号的同学学习的课程完全相同的其他同学学号和姓名

???

10、查询学过“李平”老师所教的所有课的同学的学号、姓名

???

11、查询所有课程成绩小于60分的同学的学号、姓名

select 
    A.student_id, student.sname
from
    (select 
        student_id
    from
        score
    where
        num 

12、查询没有学全所有课的同学的学号、姓名

13、
14、
15、
16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37

今天带大家了解了MySQL的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表