zoukankan      html  css  js  c++  java
  • 嵌套集合

    1.去重复 instinct (可以理解为分组)

    select instinct 列 from 表名;//列相同的 合并只显示一条

    select instinct 列1,列2 from 表名;//如果是两个列  两个列的组合当做整体 只有当两个列同时满足值相同才合并显示

    select 列1,instinct 列2 from 表名;//语法错误

    2.分组 group by

    想要显示的最终结果只能是两种情况    分组条件   分组函数

    分组时候可能会产生与条件筛选相关的操作
       如果先进行条件筛选 后分组 where group-by   ,where优先级高于group by
       如果先进行分组 后进行筛选 group-by having,having用法与where一样,但优先级低于group by
       如果分析之后还需要进行排序 order-by 最后处理 

    3.嵌套
    将一条完整的SQL嵌套在另一条完整的SQL内部
    *1.可以将查询的结果当做条件 再次查询
    select * from student where chinese = (select max(chinese) from student);
    在这种情况下有可能 嵌套的子SQL查询的表格与当前的SQL不一致
    2.可以将查询的结果当做一张新的表格 表格基础上再次查询
    select * from (select sid,sname,ssex,sage from student) xxx;
    需要注意from后面的表格需要有名字 给表格起别名

    4.in,any,some,all     是否满足子集中的条件

    in(包含):where条件之后,列 in(值,值,值)。只要满足括号里的一个值就可以,默认=比较

    括号里可以是常量,也可以是sql查询到的结果

    select * from 表名 where 列 (not)in(值1,值2,。。。);

    select * from 表名 where 列 (not)in(select 列 from 表名);

    not in(不包含)

    以下三个关键字都只能用子集,不能用常量。

    any:满足查询子集中的某一个即可 >any   <any    =any(结果与in)   !=any

    some:与any完全一致
    all :满足查询子集中的全部才可以 >all <all =all !=all(结果与not in)

    5.集合 union 、union all

    集合操作 并集 (oracle数据库有-->交集intersect 差集minus)
    union(结合 合并的意思 并集)

    select t1.列,t1.列 from 表1 union select t2.列,t2.列 from 表2;

    将两张表的数据合并在一起显示出来,查询的列个数需要一致。

    union跟union all区别在于,union查询结果会去重复,union all不会,哪怕两条相同的数据也会显示,

    因此性能上union all更好,建议用union all。

  • 相关阅读:
    Js如何动态声明变量名
    vue 生命周期
    开心就要说出来
    为你自己而努力
    vue调试工具
    笨笨对面向对象的理解
    一些小知识点-慢慢更新
    Ajax同时上传表单序列化参数+自定义参数
    关闭layer当前弹窗
    JSTL 递增序号
  • 原文地址:https://www.cnblogs.com/hebiao/p/14049522.html
Copyright © 2011-2022 走看看