SQL 面试题 目录

SQL 中子查询有哪些类型 (如:标量子查询, 行子查询, 表子查询, 派生表)?

推荐答案

SQL 中的子查询主要分为以下几种类型:

  1. 标量子查询(Scalar Subquery)
    返回单个值的子查询,通常用于 SELECT、WHERE 或 HAVING 子句中。

  2. 行子查询(Row Subquery)
    返回一行数据的子查询,通常用于与行比较操作符(如 =<> 等)一起使用。

  3. 表子查询(Table Subquery)
    返回一个表的子查询,通常用于 FROM 子句中,作为派生表使用。

  4. 派生表(Derived Table)
    在 FROM 子句中定义的子查询,生成一个临时表供外部查询使用。

本题详细解读

1. 标量子查询(Scalar Subquery)

标量子查询返回单个值,通常用于需要单个值的上下文中。例如:

在这个例子中,子查询返回每个员工的部门名称,作为一个标量值。

2. 行子查询(Row Subquery)

行子查询返回一行数据,通常用于与行比较操作符一起使用。例如:

在这个例子中,子查询返回每个部门的最高工资和部门 ID,然后外部查询使用这些值与员工表中的数据进行匹配。

3. 表子查询(Table Subquery)

表子查询返回一个表,通常用于 FROM 子句中。例如:

在这个例子中,子查询返回一个包含高薪员工的临时表,然后外部查询与部门表进行连接。

4. 派生表(Derived Table)

派生表是在 FROM 子句中定义的子查询,生成一个临时表供外部查询使用。例如:

在这个例子中,子查询生成一个包含员工工资的临时表,然后外部查询计算每个部门的平均工资。

纠错
反馈