美文网首页zhaoyqiu的数据分析进阶之路1.0
【2020-06-13】mysql学习笔记(二)

【2020-06-13】mysql学习笔记(二)

作者: 喝奶茶不加奶茶 | 来源:发表于2020-06-13 17:28 被阅读0次

    --mysql查询练习

    首先准备表,
    1、学生表student
    2、课程表course
    3、成绩表score
    4、教师表teacher


    在新的数据库selectest中创建四个表

    添加数据完成后开始查询练习。
    -- 1.查询student表中所有的记录


    查询某个表中的所有记录

    -- 2.查询student表中所有记录的s_name,s_sex和s_class列


    查询某张表的部分记录

    -- 3.查询教师所有的单位但是不重复的t_depart列
    ==distinct 排重==


    先普通查询teacher表中的单位信息 使用关键词distint排除重复的关键词

    -- 4.查询score表中成绩在60-80之间所有的记录(sc_degree)
    ==查询区间==
    between ... and ...(between是包括边界点的)


    查询某张表某个区间的值

    或者
    ---直接使用运算符比较


    -- 5.查询score表中成绩为85, 86, 或者88的记录(sc_degree)
    ---表示 或者关系的查询 in


    同一类字段或的查询用in

    -- 6.查询student表中'95031'班或者性别为'女'的同学记录
    ---or 表示或者


    同一张表中不同字段用or

    -- 7.以class降序查询student表中所有的记录
    ---升序asc、降序desc


    按字段降序查询

    -- 8.以c_no升序.sc_degree降序查询score表中所有的数据


    以一个字段升序,另一个字段降序

    -- 9.查询'95031'班的学生人数
    ---统计 count


    统计某个字段某个值的数目

    -- 10.查询score表中的最高分数的学生号和课程号.(子查询或者排序)


    多限制条件的查询

    ----1、找到最高分

    select max(sc_degree) from score;
    

    2、找最高分的s_no和c_no

    select s_no,c_no from score where sc_degree=(select max(sc_degree) from score);
    

    ---排序的做法

    select s_no,c_no,degree from score order by degree;   
    

    --- limit
    第一个数字表示从多少开始,第二个数字表示传多少条。


    limit 从0位置开始,传1项

    -- 11.查询每门课的平均成绩
    --avg()


    查询某门课的平均成绩

    ---如何在一个sql语句中进行查询?
    ---group by分组


    利用groupby查询每门课程的平均成绩

    -- 12,查询score表中至少有2名学生选修的,并且以3开头的课程的平均分


    having和模糊查询

    --对一个复杂的查询,分段的思路进行操作


    分段查询

    ---因为已经分好组了,所以可以用select(*);
    ---having是过滤的意思。
    ---模糊查询用的是like
    -- 13.查询分数大于70但是小于90的s_no列:


    查询某一区间的分数

    -- 14.查询所有的学生 s_name , c_no, sc_degree列


    多表查询例子

    -- 15.查询所有学生的s_no, c_name, sc_degree列


    多表查询例子

    -- 16.查询所有的学生 s_name , c_name, sc_degree列


    多表查询例子

    -- 17.查询班级是'95031'班学生每门课的平均分


    多表查询例子

    -- 18.查询选修"3-105"课程的成绩高于'109'号同学'3-105'成绩 的所有同学的记录


    多表查询例子

    -- 19.查询成绩高于学号为'109',课程号为'3-105'的成绩的所有记录


    -- 20.查询所有学号为108、101的同学同年出生的所有学生的s_no,s_name和s_birthday


    year(s_birthday)

    -- 21.查询 张旭 教师任课的学生的成绩


    多层子查询

    -- 22.查询选修课程的同学人数多余 2 人的教师姓名
    ---having 是在分组情况下的条件触发词。
    ---where用于筛选表内全部记录,having用于筛选分组后的记录。

    表course为中转

    -- 23.查询95033班和95031班全体学生的记录


    in 的使用

    -- 24.查询存在85分以上成绩的课程c_no


    -- 25.查出所有'计算机系' 教师所教课程的成绩表


    不知道为什么不运行出结果,等待解决

    -- 26.查询'计算机系'与'电子工程系' 不同职称的教师的t_name和t_prof
    ----union 求并集

    为什么不出结果?

    -- 27, 查询选修编号为"3-105"课程且成绩至少高于选修编号为'3-245'同学的c_no,s_no和sc_degree,并且按照sc_degree从高到地次序排序
    ---至少?any

    -- 28.查询选修编号为"3-105"且成绩高于选修编号为"3-245"课程的同学c_no.s_no和sc_degree
    ---且?all


    all

    -- 29. 查询所有教师和同学的 name ,sex, birthday
    ---合并两个表 union
    ---别名 as


    合并表+取别名

    -- 30.查询所有'女'教师和'女'学生的name,sex,birthday


    未完待续

    相关文章

      网友评论

        本文标题:【2020-06-13】mysql学习笔记(二)

        本文链接:https://www.haomeiwen.com/subject/kjqztktx.html