视图&子查询

1.视图

什么是视图

从SQL 的角度来看视图就是一张表

视图是一种虚拟表,其内容由查询定义。和真实的表类似,视图包含一系列带有名称的列和行数据。但是,视图在数据库中并不以存储的数据值集形式存在,它的数据来自定义视图查询时所引用的表,并且在引用视图时动态生成。

视图的定义是基于基本表的,与直接操作基本表相比,视图有以下优点:

  • 由于视图无需保存数据,因此可以节省存储设备的容量
  • 可以将频繁使用的 SELECT 语句保存成视图,这样就不用每次都重新书写了
  • 对机密数据提供安全保护

使用视图

创建(修改)视图
    -- 创建/修改视图    
    CREATE OR REPLACEVIEW view_name (column1,...)
    AS
    select_statement;
    -- 修改视图
    ALTER view_name (column1,...)
    AS
    select_statement;

在创建视图时,没有在视图名后面指定字段列表,则视图中字段列表默认和SELECT语句中的字段列表一致。如果SELECT语句中给字段取了别名,那么视图中的字段名和别名相同

查看视图
    -- 查看表、视图等对象    
    SHOW TABLES;
    -- 查看视图结构    
    DESC/DESCRIBE view_name;
    -- 查看视图详细定义信息
    SHOW CREATE VIEW producttype;
删除视图
    DROP VIEW IF EXISTS view_name;

2.子查询

子查询

子查询就是将用来定义视图的SELECT语句直接用于FROM子句当中。从相对位置来说,子查询又被称为内查询,主查询又被称为外查询。

使用子查询时,需要将其放入”()”内,并使用AS关键字为其命名(ORACLE中不使用AS关键字)。

标量子查询

标量子查询就是返回单一值的子查询。

标量子查询的书写位置并不仅仅局限于 WHERE 子句中,通常任何可以使用单一值的位置都可以使用。也就是说,能够使用常数或者列名的地方,无论是 SELECT 子句、GROUP BY 子句、HAVING 子句,还是ORDER BY 子句,几乎所有的地方都可以使用。

关联子查询
    SELECT column1, column2, ...
      FROM table1 AS o
     WHERE column1 operator (SELECT column3
                                 FROM table2 AS i
                               WHERE i.expr1=o.expr2);
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇