在MySQL中创建视图的X种方式

在本教程中,您将学习如何使用CREATE VIEW语句在MySQL中创建视图。

CREATE VIEW语句简介

要在MySQL中创建新视图,请使用CREATE VIEW语句。 在MySQL中创建视图的语法如下:

CREATE 
   [ALGORITHM = {MERGE  | TEMPTABLE | UNDEFINED}]
VIEW [database_name].[view_name] 
AS
[SELECT  statement]

让我们更详细地查看了解以上语法。

视图处理算法

算法属性允许您控制MySQL在创建视图时使用的机制。MySQL提供三种算法:MERGETEMP TABLEUNDEFINED
- 使用MERGE算法,MySQL首先将输入查询与定义视图的SELECT语句组合成单个查询。 然后MySQL执行组合查询以返回结果集。如果SELECT语句包含聚合函数,如:MIN, MAX, SUM, COUNT, AVGDISTINCT, GROUP BY, HAVING, LIMIT, UNION, UNION ALL子查询 等等则不允许MERGE算法。如果SELECT语句没有引用表,则也不允许MERGE算法。如果不允许MERGE算法,MySQL将算法更改为UNDEFINED。 注意,输入查询和视图定义中的查询到一个查询的组合被称为视图决议。
- 使用TEMP TABLE算法,MySQL首先根据定义视图的SELECT语句创建一个临时表,然后对该临时表执行输入查询。因为MySQL必须创建一个临时表来存储结果集,并将数据从基表移动到临时表,TEMP TABLE算法的效率低于MERGE算法。此外,使用TEMP TABLE算法的视图不可更新

  • UNDEFINED是创建视图时未指定显式算法的默认算法。UNDEFINED算法让MySQL做出选择使用MERGETEMP TABLE算法。MySQL优先选择MERGE算法再到TEMP TABLE算法,因为MERGE算法更有效率。

视图名称

在数据库中,视图和表共享相同命名空间,因此,视图和表不能具有相同的名称。 此外,视图的名称必须遵循表命名规则。

SELECT语句

SELECT语句中,可以从数据库中存在的任何表或视图查询数据。SELECT语句必须遵循几个规则:
- SELECT语句可以在WHERE子句中包含子查询,但不能在FROM子句中。
- SELECT语句不能引用任何变量,包括局部变量,用户变量和会话变量。
- SELECT语句不能引用预处理语句的参数。

注意,SELECT语句不需要引用任何表。

创建MySQL视图示例

创建简单视图

让我们来看看 order_detail 表。可以创建一个表示每个订单的总销售额的视图。

CREATE VIEW SalePerOrder AS
    SELECT 
        order_id, SUM(buy_number * price) total
    FROM
        studymysql.order_detail
    GROUP by order_id
    ORDER BY total DESC;

如果使用SHOW TABLES命令查看studymysql数据库中的所有表,我们还会看到SalesPerOrder视图显示在列表中。

SHOW TABLES;

这是因为视图和表共享同一个命名空间。如要知道哪个对象是视图或表,请使用SHOW FULL TABLES命令,如下所示:

结果集中的 table_type 列指定哪个对象是视图,哪个对象是表(基表)。
如果我们要查询每个销售订单的总销售额,只需要按照如下所示对SalePerOrder视图执行一个简单的SELECT语句:

SELECT 
    *
FROM
    salePerOrder;

执行上面的语句,结果如下 -

基于一个视图来创建视图

MySQL允许您基于一个视图来创建另一个视图。例如,您可以基于SalesPerOrder视图创建名为大销售订单的视图,以显示总数大于150,000的销售订单,如下所示:

CREATE VIEW BigSalesOrder AS
    SELECT 
        order_id, ROUND(total,2) as total
    FROM
        saleperorder
    WHERE
        total > 150000;

现在,我们可以从BigSalesOrder视图中查询数据,如下所示:

SELECT 
    order_id, total
FROM
    BigSalesOrder;

执行上面的语句,结果如下 -

使用join创建视图

以下是使用INNER JOIN创建视图的示例。视图包含订单号,客户名称和每个订单的总销售额。

CREATE VIEW customerOrders AS
    SELECT 
        o.order_number,
        c.customer_name,
        SUM(buy_number * price) total
    FROM
        studymysql.order_detail d
            INNER JOIN
        studymysql.order o ON o.order_id = d.order_id
            INNER JOIN
        studymysql.customer c ON c.customer_id = o.customer_id
    GROUP BY o.order_number
    ORDER BY total DESC;

要从customerOrders视图中查询数据,请使用以下查询:

SELECT
    *
FROM
    customerOrders;

执行上面的语句,结果如下 -

使用子查询创建视图

下面说明如何使用子查询创建视图。该视图包含价格高于所有产品的平均价格的产品。

CREATE VIEW aboveAvgProducts AS
    SELECT 
        product_code, product_name, price
    FROM
        studymysql.product
    WHERE
        price > 
 (SELECT 
                AVG(price)
            FROM
                studymysql.product)
    ORDER BY price DESC;

从上述aboveAvgProducts视图中查询数据很简单,如下所示:

SELECT 
    *
FROM
    aboveAvgProducts;

在本教程中,我们向您展示了如何使用CREATE VIEW语句创建视图。

相关教程

MySQL学习QQ群:418407075

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HBuilderX可以通过安装扩展插件来连接MySQL数据库。你可以在HBuilderX的扩展商店搜索并安装"MySQL"类型的插件,然后使用该插件提供的API来连接、查询和操作MySQL数据库。 ### 回答2: HBuilderX是一款面向前端开发的IDE,它可以连接MySQL数据库以便在开发过程数据库进行管理和操作。下面介绍几连接MySQL数据库方式。 1. 安装MySQL 在HBuilderX连接MySQL数据库之前,需要先在本地安装MySQL数据库软件,可以下载安装包进行安装。 2. 安装MySQL插件 在HBuilderX的插件市场搜索安装MySQL插件,如MySQL-Plus、MySQL语法高亮插件等。安装成功后,会显示在HBuilderX的插件列表。 3. 连接MySQL数据库 打开HBuilderX后,点击左侧菜单栏的“数据库”选项,在数据库面板点击“连接”按钮,选择MySQL服务器连接。在弹出的对话框,输入MySQL服务器的相关信息,如主机地址、端口号、用户名、密码等,并进行测试连接,确认连接成功后,点击“确定”按钮完成连接。 4. 操作MySQL数据库 连接成功后,在HBuilderX可以对MySQL数据库进行操作,如新建、编辑、删除等操作。在编辑器编辑SQL语句,运行后会在结果窗口显示查询结果。 总之,HBuilderX连接MySQL数据库是非常方便和简单的,只需要安装插件,输入服务器信息即可。可以完美地与前端开发进行整合,提高开发效率和效果。 ### 回答3: HBuilderX是一个功能强大的IDE,它不仅支持HTML、CSS、JavaScript等前端开发语言,还支持后端语言Node.js、PHP等,而MySQL数据库是常见的关系型数据库管理系统,因此,在HBuilderX连接MySQL数据库是一个非常重要的操作。 要在HBuilderX连接MySQL数据库,您需要进行以下步骤: 1. 安装MySQL数据库:如果您还没有安装MySQL数据库,那么您需要先安装MySQL数据库。可以从MySQL官网下载适合您的操作系统的版本。 2. 创建数据库:在MySQL数据库,您需要创建一个数据库,并为该数据库创建用户和密码。可以使用MySQL命令行客户端或图形化界面来完成这些操作。 3. 下载MySQL数据库驱动程序:您需要下载MySQL数据库驱动程序,可以从MySQL官网下载或从其他可靠来源下载。 4. 在HBuilderX配置数据库连接:在HBuilderX,打开“数据”视图,右键单击数据源和连接到数据库,通过选择MySQL的JDBC驱动程序,输入用户名、密码、主机名和端口等数据库连接信息,保存并测试连接。 5. 创建数据库表:在HBuilderX使用SQL语句或GUI界面,您可以创建一个表来存储数据。 6. 连接数据库并执行操作:已连接到数据库后,您可以执行各操作,例如插入、更新和删除数据,查询数据等。 总体而言,连接MySQL数据库需要详细了解HBuilderX的配置流程和MySQL数据库的安装和配置过程。通过正确地进行这些操作,您可以轻松地使用HBuilderX连接MySQL数据库并进行前端和后端的开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值