首页 > 其他分享 >视图的创建

视图的创建

时间:2022-11-27 10:35:16浏览次数:36  
标签:cust 创建 视图 查询 num id order


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

运行结果如下:

视图的创建_表结构_02

视图 productcustomers 中的内容如下:

视图的创建_数据_03

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

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

运行结果如下:

视图的创建_数据_04

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

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

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

运行结果如下:

视图的创建_封装_05

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

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

运行结果如下:

视图的创建_数据_06

视图 total 中的内容如下:

视图的创建_封装_07

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

2. 课后题

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

A. CREATE VIEW

B. INSERT INTO

C. CREATE TABLE

D. UPDATE

标签:cust,创建,视图,查询,num,id,order
From: https://blog.51cto.com/u_15641375/5889745

相关文章

  • Altium Designer Winter 09 — 01 — 快速创建项目
    新建项目 新建原理图导入所需的库添加元器件和接插件连接导线自动标注、修改元件属性编译前——修改项目属性编......
  • Hyper-v系列---【如何创建CentOs7服务器并配置网络?】
    如何创建CentOs7服务器并配置网络?1.下载centos7镜像下载教程:https://www.cnblogs.com/hujunwei/p/15527013.html2.新建虚拟交换机    3.新建虚拟机  4.......
  • 定义(创建)、调用函数及返回值
    5.2定义(创建)、调用函数及返回值5.2.1定义(创建)函数要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列......
  • C# MVC在视图中访问静态文件
     <addname="BlockViewHandler"path="*"verb="*"preCondition="integratedMode"type="System.Web.HttpNotFoundHandler"/>若要访问静态文件,删除上行代码或者在上......
  • 设计模式之创建型模式
    创建型模式:提供创建对象的机制,提升已有代码的灵活性和可复⽤性。PS:博客根据it老齐大话设计模式课程课件进行整理,IT老齐视频学习网站:https://www.itlaoqi.com包含的设......
  • 【Amadeus原创】vmware ESXi快速创建新的虚拟机
    准备工作:新虚拟机Win10安装后,需要windowsupdate,更新补丁到最新,关机。(本文案例win10-Amadeus)在数据盘新建Win10-Users文件夹(可自定义)复制win10-Amadeus的vmx、vmdk文件到wi......
  • Python中创建类的六重境界
    1.引言大家首先需要记住一句话:类是模板,而实例则是根据类创建的对象。在面向对象编程语言中,类class最为常见。为此,本文重点来介绍在Python中创建类的六重境界。闲话少说,我......
  • Django视图
    目录介绍请求对象获取请求数据获取请求体数据获取请求头响应对象JsonResponserender返回一个模版redirect重定向介绍视图基本就是两部分一个是请求对象request,reques......
  • 关于react-native init 创建项目报错 cli.init is not a function 问题解决
    1.在react-nativeinitappDemo创建项目时,报错TypeError:cli.initisnotafunction.2.解决:产生这个问题的原因是:使用这种方式创建工程,react-native版本是0.69版本......
  • easylogging++的那些事(四)源码分析(二)日志记录宏(一)CLOG宏(二)writer对象的创建以
    目录构造函数construct接口initializeLogger接口在easylogging++的那些事(四)源码分析(二)日志记录宏(一)CLOG宏(一)宏展开中我们对CLOG宏展开了,今天来看看日志记录宏中......