SQL 视图(Views)

视图是可视化的表。

本章讲解如何创建、更新和删除视图。

SQL CREATE VIEW 语句

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

SQL CREATE VIEW 语法

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

SQL CREATE VIEW 实例

样本数据库 Northwind 拥有一些被默认安装的视图。

视图 "Current Product List" 会从 "Products" 表列出所有正在使用的产品(未停产的产品)。这个视图使用下面的 SQL 创建:

CREATE VIEW [Current Product List] AS

SELECT ProductID,ProductName

FROM Products

WHERE Discontinued=No

我们可以像这样查询上面这个视图:

SELECT * FROM [Current Product List]

Northwind 样本数据库的另一个视图会选取 "Products" 表中所有单位价格高于平均单位价格的产品:

CREATE VIEW [Products Above Average Price] AS

SELECT ProductName,UnitPrice

FROM Products

WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

我们可以像这样查询上面这个视图:

SELECT * FROM [Products Above Average Price]

Northwind 样本数据库的另一个视图会计算在 1997 年每个种类的销售总数。请注意,这个视图会从另一个名为 "Product Sales for 1997" 的视图那里选取数据:

CREATE VIEW [Category Sales For 1997] AS

SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales

FROM [Product Sales for 1997]

GROUP BY CategoryName

我们可以像这样查询上面这个视图:

SELECT * FROM [Category Sales For 1997]

我们也可以向查询添加条件。现在,我们仅仅需要查看 "Beverages" 类的销售总数:

SELECT * FROM [Category Sales For 1997]

WHERE CategoryName='Beverages'

SQL 更新视图

您可以使用下面的语法来更新视图:

SQL CREATE OR REPLACE VIEW 语法

CREATE OR REPLACE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

现在,我们希望向 "Current Product List" 视图添加 "Category" 列。我们将通过下列 SQL 更新视图:

CREATE VIEW [Current Product List] AS

SELECT ProductID,ProductName,Category

FROM Products

WHERE Discontinued=No

SQL Server

ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]

[ WITH [ ,...n ] ]

AS select_statement

[ WITH CHECK OPTION ] [ ; ]

::=

{

[ ENCRYPTION ]

[ SCHEMABINDING ]

[ VIEW_METADATA ]

}schema_name:视图所属架构的名称。

view_name: 要更改的视图。

column:将成为指定视图的一部分的一个或多个列的名称(以逗号分隔)。

SQL 撤销视图

您可以通过 DROP VIEW 命令来删除视图。

SQL DROP VIEW 语法

DROP VIEW view_name

mysql drop view_SQL CREATE VIEW、REPLACE VIEW、 DROP VIEW 语句 | 菜鸟教程相关推荐

  1. MySQL数据库命令行【篇章十】之视图的创建与管理(create or replace+alter+drop view)

    1) 理解视图的概念. 2) 掌握创建.更改.删除视图的方法. 3) 掌握使用视图来访问数据的方法. 使用choose数据库,按照下列要求进行操作: 创建视图v_student1,使其具有功能:&qu ...

  2. mysql删除语句菜鸟教程_MySQL 删除数据库 | 菜鸟教程

    MySQL 删除数据库 使用 mysqladmin 删除数据库 使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用 ...

  3. create view 和 create or replace view的区别

    create or replace view的意思就是若数据库中已经存在这个名字的视图的话,就替代它,若没有则创建视图: create则不进行判断,若数据库中已经存在的话,则报错,说对象已存在:

  4. linux系统sql语句报错_linux之SQL语句简明教程---CREATE VIEW

    视观表 (View) 可以被当作是虚拟表格.它跟表格的不同是,表格中有实际储存资料,而视观表是建立在表格之上的一个架构,它本身并不实际储存资料. 建立一个视观表的语法如下: CREATE VIEW & ...

  5. HoloLens开发遇到的问题:d3d11: failed to create 2D texture shader resource view

    开发HoloLens程序的时候,遇到了这个问题,我的unity项目很简单,没有加任何脚本,只有几个从网上下载的3D模型,我主要想看看这个模型在HoloLens模拟器里是啥样的. 但是运行的时候报错,d ...

  6. Create and Drop Database, Create, Alter and Drop Tables, Select, Insert, Update, Delete Commands

    此文仅做自我学习记录用!!! Introduction (Descriptive) Content:- Creating and Maintaining Tables, Objectives, The ...

  7. sql server 中 create or replace 视图方法

    sql server 中没有  create or replace 语法,可以用下面的语句: IF EXISTS(SELECT 1 FROM sys.views WHERE name = '视图名称' ...

  8. oracle view占资源,关于VIEW PUSHED PREDICATE的一个优化案例

    根据这个案例需要的一些知识,后面会跟进关于外联结.视图合并.VIEW PUSHED PREDICATE的相关知识. 早上某数据库服务器CPU不断报警,应用系统管理员同时反馈应用响应明显变慢.登陆数据库 ...

  9. oracle没有create or replace table

    Sql代码   SQL> create or replace table testTb; create or replace table testTb ORA-00922: 选项缺失或无效 只能 ...

最新文章

  1. 30个精美的模板,贺卡,图形圣诞素材
  2. SAP Credit Memo Debit Memo
  3. linux mv 环境变量,linux环境变量 cp mv 以及文档查看的几个命令
  4. JAVA基础知识(5)
  5. /etc/group 很好很强大
  6. 【luogu 2709 / BZOJ 3781】小B的询问
  7. 【绝对干货】TEASER前传之QUASAR:基于四元数的存在外点Wahba问题的可证明最优解
  8. Eclipse配置国内镜像源
  9. redis并发锁 thinkphp5_资深架构师经典总结:Redis分布式锁实现理解
  10. 学习SQL:使用日期和时间函数创建SQL Server报表
  11. debian apt-get php,Debian系统apt-get命令整理
  12. 用户注册加密操作,实现加密工具PasswordHelper
  13. 用户不在sudoers文件中的解决方法 .
  14. Linux 命令行常用快捷键
  15. 中国移动MM7 API用户手册
  16. 百度指数 如何批量获取?
  17. 蓝奏云软件库源码分享下载
  18. 用python输出沙漏_2018-2019寒假作业 其一 打印沙漏
  19. 解决C++中调用Python脚本的LNK2001错误
  20. 内网穿透神器ngrok mac系统

热门文章

  1. 逆水寒2021最新服务器,2021年3月25日常规服务器合并投票结果公告
  2. 【C++】「一本通 1.1 例 4」加工生产调度
  3. JavaWeb - 小米商城:登录与退出
  4. directshow(directShow多个usb摄像头方案)
  5. pc客户端软件自动化测试工具,自动化测试工具(QuickTester)
  6. 解决win10 安装dnw驱动,每次重启都得禁用数字签名。解决命令行操作,设置元素数据时出错。电脑关闭Secure Boot
  7. (copy)真正的程序员,请你站出来---结论:戒骄戒躁,脚踏实地
  8. 产品管理——产品PM你必须掌握的用户体验五大层
  9. 一文了解百度信息流:百度电商直播、百青藤、观星盘
  10. Day357358359360.JVM监控及诊断工具-GUI -JVM