本笔记整理自《SQL 基础教程》、《MySQL 必知必会》和网上资料。个人笔记不保证正确。
将 SELECT 查询包装成一个虚拟表,该虚拟表就被称为视图。(因为只是一个包装,因此视图的数据也会随着原表的更新而更新)
创建视图:
CREATE VIEW <视图名称>
(<视图列名1>, <视图列名2>... )
AS
<SELECT 语句>;
删除视图:DROP VIEW <视图名称>;
子查询,其实就是一次性的视图:
SELECT ...
FROM (
SELECT ... -- 这就是一个子查询:嵌套的 select 语句
) AS <别名>
...
上面的查询的 FROM 子句中,给另一 SELECT 子句定义了一个别名,并将它作为了查询对象。这就是一个子查询。
子查询不仅能用于 FROM,还能用在 WHERE 子句等很多地方。
即用到了外部数据的子查询语句:
SELECT ...
FROM product AS p1
WHERE (
SELECT ...
FROM duck AS p2
WHERE p1.price > p2.price -- 这里,内部子查询访问了外部查询的表p1,因此是一个关联子查询。
);
原文:https://www.cnblogs.com/kirito-c/p/9192776.html