知识回顾
    1.去重复 distinct
    distinct 列, 列 如果是两个列, 两个列的组合当做整体
    列, distinct列 可能会产生第二个列去重复后个数减少
    2.分组之后想要再深入进行分析
    分组条件+分组函数
    1.group by 列
    2.一旦搭配了分组条件来进行分析
    想要显示的最终结果只能是两种情况 分组条件 分组函数
    3.分组时候可能会产生与条件筛选相关的操作
    如果先进性条件筛选 后分组 where group by
    如果先进行分组 后进行筛选 group by having
    分析之后还需要进行排序 order by 最后处理
    3.嵌套
    将一条完整的SQL嵌套在另外一条完整的SQL内部
    1.可以将查询的结果当做条件 再次查询
    select from student where chinese = (select max(chinese) fromm student);
    在这种情况下有可能 嵌套的子SQL查询的表格与当前的SQL不一致
    2.可以将查询的结果当做一张新的表格 表格基础上再次查询
    select
    from(select sid, sname, sex, sage from student) xxx;
    需要注意from 后面的表格需要有名字 给表格起名字
    ================================================================

    几个关键字使用
    i in 满足查询自己中的某一个即可 默认=比较
    in后面的子集内 可以是常量固定值
    也可以是通过另一条sql语句查询出来的结果
    如下的三个使用起来与in类似 查询是否满足后面的子集中的条件
    ii any >any || < any 这个是大于或小于any中的其中一个
    例子: select * from student where classid >any (select classid from student where classid>2);

    iii some 与any完全一致

    iiii all 满足查询自己中的全部才可以
    select * from student where classid >all(select classid from myclass where chassid>2);
    —————————————————————————————————————————————————————————

    集合操作 并集 (oracle数据库有—->交集intersect 差集minus);
    union(结合 合并的意思 并集);
    select * from student;

    有两张表格 学生信息 老师信息
    我们的学校想要召开运动会
    学校想要给所有的老师和同学都准备同意的服装
    这时候就需要统计全学校所有的人的信息

    这个就是并集 列数不一样不可以并集
    select tid, tname, tsex from teacher union select sid, sname , ssex from student;

    1.要求前后两个查询子集的列数是一致的
    2.类型没有要求
    3.拼接后显示的列名是前一个子集默认的列名
    4.注意 union和union all的区别
    create table newteacher as select from teacher;
    select
    from newteacher union select from teacher;
    union合并后去做重复的处理 性能比较慢
    如果产生重复元素 记录的是第一次出现的那一行
    union all 将两个查询的字节直接做合并
    不做任何处理 性能比较快
    建议以后尽量使用 union all来进行合并处理
    select
    from teacher union all select * from newteacher;

    select from newteacher union all select from teacher