子查询和衍生表
目录一、为什么会使用子查询
虽然可以通过连接查询来实现多表查询数据记录,但不建议使用,因为连接查询的性能很差,为什么呢?
我们来进行分析,例如 我们要查询部门表dept 和雇员表employee中的数据记录,一般可能会写成:
SELECT * FROM dept t1,employee t2 WHERE t1.deptno=t2.deptno;
对于这条SQL语句,在数据库执行的时候,会先对两个表进行笛卡尔积操作,然后再选取符合条件 t1.deptno=t2.deptno的数据记录。由于笛卡尔积时是将两个表中的记录数做乘积生成新的记录,如果当两个表中的数据记录都比较多时,进行乘积操作时性能将会很差,甚至造成死机。为了解决该问题,我们可以使用子查询来实现多表查询。
二、什么是子查询
子查询,就是在一个查询中嵌套了其他若干查询,即在一个SELECT查询语句的FROM或WHERE字句中包含另一个SELECT查询语句,在这种嵌套的查询语句中,外层的SELECT查询语句称为主查询,WHERE或FROM中的查询语句称为子查询,也叫嵌套查询。通过子查询可以实现多表查询,子查询经常出现在WHERE或FROM字句中。
标签:语句,表中,查询,子句,衍生,WHERE,SELECT From: https://www.cnblogs.com/likeguang/p/16962134.html