in

满足查询子集中的某一个即可 默认=比较 in后面的自己内 可以是常量固定值 也可以是另一条sql语句查询出来的结果


一下三个关键字使用起来与in类型 查询满足查询子集中的某一个即可
但关键字的后面不允许写固定值 只允许写sql语句

any

select * from studeny where calssid > any (select classid form myclass where classid > 2);
查询班级id小于 any查询出来的id其中一个就行,加入any查出来3和4,那前面查询的classid小于3和4就

some(与any完全一致)

all (满足查询子集中的全部才行)

select * from studeny where calssid > all (select classid form myclass where classid > 2);
查询班级id > (all查询出来的classid),例如all查询出来的是3和4,那班级id要大于3和4,必须全部满


union 并集

  1. 要求前后查询的子集的列数是一致的
  2. 类型没有限制
  3. 注意union和unionall的区别
    1. union合并后会做去重的处理,如果产生重复元素,记录的是第一次出现的那一行
    2. unionall 将两个查询的字节合并,不做任何处理
  4. select * from person union all select * from newperson; 不会去掉重复的人