总结
面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。
我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
面试题及解析总结
大厂面试场景
知识点总结
子查询作为枚举查询条件使用是将一个查询结果(单列多行)的结果集作为枚举查询条件进行二次查询。
语法 :SELECT 列名 FROM 表名 Where 列名 in(子查询结果);
举个栗子:查询和健哥,旭哥同龄的学生信息。
#思路:
#1. 先查询健哥和旭哥的年龄(多行单列)
select Sage from student where Sname in('健哥', '旭哥'); #年龄是12和23
#2. 再查询年龄为12和23的学员信息
select * from student where Sage in(12, 23);
#3.SQL:合并
select * from student where Sage in(select Sage from student where Sname in('健哥', '旭哥'));
将子查询 ”多行一列“的结果作为外部查询的枚举查询条件,做第二次查询。
3.子查询(作为一张表)
此处健哥敲黑板啦!非常重要,使用频率很高!
下面的子查询是将一个查询的结果当做一张虚拟表,然后在这个表的结果基础上再进行查询。
语法 :SELECT 列名 FROM (子查询的结果集) WHERE 条件;
举个栗子:查询最老的5名学生信息。
#思路:
#1. 先对学生年龄排序查询(排序后的临时表)
select * from student order by Sage desc;
#2. 再查询临时表中前5行学生信息
select *
from (临时表)
limit 0,5;
#SQL:合并
select * from (
select * from student order by Sage desc
) as temp limit 0,4;
将子查询 ”多行多列“的结果作为外部查询的一张表,做第二次查询。
注意: 子查询作为临时表,为其赋予一个临时表名。
二. 结语
最后在这里对本文核心要点进行总结:
- 子查询有三种使用场景分别是:子查询结果作为判断条件、子查询结果作为枚举条件、子查询结果作为一个虚拟表进行二次查询。
- 以上三种使用方式各位小伙伴要熟练掌握哦。
写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
45ff00ff254613a03fab5e56a57acb)收录**