视图的创建

简介: 如何创建和使用视图的功能,更好的方便我们的工作。

1. 创建和使用视图

例如我们要查询订购了某种产品的顾客,SQL 语句如下:

SELECT 
    cust_name, 
    cust_contact
FROM 
    customers c 
    JOIN orders o ON c.cust_id = o.cust_id
    JOIN orderitems oi ON oi.order_num = o.order_num
WHERE
    oi.prod_id = 'BR01';

运行结果如下:

网络异常,图片无法展示
|

这种复杂的查询需要查询人员非常熟悉表的结构,知道如何连接表以及如何创建查询。视图的存在就是为了简化复杂的查询。例如,我们可以创建如下视图:

CREATE VIEW productcustomers AS
SELECT 
    cust_name, 
    cust_contact,
    prod_id
FROM 
    customers c 
    JOIN orders o ON c.cust_id = o.cust_id
    JOIN orderitems oi ON oi.order_num = o.order_num

运行结果如下:

网络异常,图片无法展示
|

视图 productcustomers 中的内容如下:

网络异常,图片无法展示
|

接下来我们便可以利用这个视图来查询订购了商品 BR01 的客户。

SELECT 
    cust_name,
    cust_contact
FROM 
    productcustomers
WHERE 
    prod_id = 'BR01';

运行结果如下:

网络异常,图片无法展示
|

可以发现:上述查询比原来的查询简单了好多,对表结构不熟悉同样可以进行查询。

在简化计算字段的使用上,视图也很有用。例如:我们要查询某个订单的总金额。

SELECT 
    order_num,
    SUM(quantity * item_price) total
FROM 
    OrderItems 
WHERE 
    order_num = 20005;

运行结果如下:

网络异常,图片无法展示
|

我们同样可以创建一个视图来简化查询。

CREATE VIEW total AS
SELECT 
    order_num,
    SUM(quantity * item_price) total_price
FROM 
    OrderItems 
GROUP BY
    order_num;

运行结果如下:

网络异常,图片无法展示
|

视图 total 中的内容如下:

网络异常,图片无法展示
|

视图为虚拟的表。它们包含的不是数据而是根据需要检索数据的查询。 视图提供了一种封装 SELECT 语句的层次,可用来简化数据处理, 保护基础数据。

2. 课后题

下列用于创建视图的语句是

A. CREATE VIEW

B. INSERT INTO

C. CREATE TABLE

D. UPDATE

相关文章
|
存储 安全 算法
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到架构设计借鉴
Tomcat 架构原理解析到架构设计借鉴
215 0
|
监控 供应链 定位技术
什么是 eCPM?它与 CPM 有何不同?
这篇文章解释了eCPM(每千人有效成本)的概念,它与CPM(每千人成本)的区别,如何计算eCPM,以及eCPM的主要优势和底价设置。文章还探讨了影响eCPM值的因素,以及如何确定合适的eCPM目标。
4731 2
什么是 eCPM?它与 CPM 有何不同?
|
SQL 存储 数据库
创建SQL Server视图
【8月更文挑战第19天】创建SQL Server视图
239 1
|
SQL JSON 分布式计算
DataWorks操作报错合集之如何解决在创建Hologres开发节点时报错
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
存储 算法 C++
虚拟存储管理(OPT,FIFO,LRU,LFU,NUR算法的C++实现)
虚拟存储管理(OPT,FIFO,LRU,LFU,NUR算法的C++实现)
603 1
|
DataWorks 数据处理 API
DataWorks内置函数是什么?
DataWorks内置函数是什么?
319 1
|
自然语言处理 安全 网络安全
22LLMSecEval数据集及其在评估大模型代码安全中的应用:GPT3和Codex根据LLMSecEval的提示生成代码和代码补全,CodeQL进行安全评估【网安AIGC专题11.22】
22LLMSecEval数据集及其在评估大模型代码安全中的应用:GPT3和Codex根据LLMSecEval的提示生成代码和代码补全,CodeQL进行安全评估【网安AIGC专题11.22】
362 0
|
Shell TensorFlow 算法框架/工具
DSW环境创建自定义python环境,使用更高版本python
DSW环境创建自定义python环境,使用更高版本python
1906 0
DSW环境创建自定义python环境,使用更高版本python