前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >视图在SQL中的作用是什么,它是怎样工作的?

视图在SQL中的作用是什么,它是怎样工作的?

原创
作者头像
码农架构
修改2020-10-19 18:01:24
2.1K0
修改2020-10-19 18:01:24
举报
文章被收录于专栏:码农架构

首发公众号:码农架构

视图就是虚拟表:

如何创建,更新和删除视图

创建视图:CREATE VIEW

代码语言:javascript
复制
CREATE VIEW player_above_avg_height AS
SELECT player_id, height
FROM player
WHERE height > (SELECT AVG(height) from player)

当视图创建之后,它就相当于一个虚拟表,可以直接使用:

代码语言:javascript
复制
SELECT * FROM player_above_avg_height

嵌套视图

代码语言:javascript
复制
CREATE VIEW player_above_above_avg_height AS
SELECT player_id, height
FROM player
WHERE height > (SELECT AVG(height) from player_above_avg_height)

修改视图:ALTER VIEW

代码语言:javascript
复制
ALTER VIEW view_name AS
SELECT column1, column2
FROM table
WHERE condition

删除视图:DROP VIEW

代码语言:javascript
复制
DROP VIEW view_name

需要说明的是,SQLite 不支持视图的修改,仅支持只读视图,也就是说你只能使用 CREATE VIEW 和 DROP VIEW,如果想要修改视图,就需要先 DROP 然后再 CREATE。

如何使用视图简化 SQL 操作

利用视图完成复杂的连接

代码语言:javascript
复制
CREATE VIEW player_height_grades AS
SELECT p.player_name, p.height, h.height_level
FROM player as p JOIN height_grades as h
ON height BETWEEN h.height_lowest AND h.height_highest

利用视图对数据进行格式化

代码语言:javascript
复制
CREATE VIEW player_team AS 
SELECT CONCAT(player_name, '(' , team.team_name , ')') AS player_team FROM player JOIN team WHERE player.team_id = team.team_id

使用视图与计算字段

代码语言:javascript
复制
CREATE VIEW game_player_score AS
SELECT game_id, player_id, (shoot_hits-shoot_3_hits)*2 AS shoot_2_points, shoot_3_hits*3 AS shoot_3_points, shoot_p_hits AS shoot_p_points, score  FROM player_score

总结

使用视图有很多好处,比如安全、简单清晰。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何创建,更新和删除视图
    • 创建视图:CREATE VIEW
      • 嵌套视图
        • 修改视图:ALTER VIEW
          • 删除视图:DROP VIEW
          • 如何使用视图简化 SQL 操作
            • 利用视图完成复杂的连接
              • 利用视图对数据进行格式化
                • 使用视图与计算字段
                • 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档