彩票走势图

Navicat使用教程:了解关系数据库中的视图

翻译|使用教程|编辑:莫成敏|2019-11-04 17:08:49.597|阅读 1027 次

概述:Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。在今天的文章中,我们将学习一种视图以及如何使用Navicat Premium作为客户端为MySQL 8创建视图。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

数据库视图是一个虚拟表或逻辑表,由SELECT查询组成。与数据库表非常相似,视图也包含可以查询的行和列。包括MySQL在内的大多数数据库管理系统,甚至都允许您通过视图更新基础表中的数据,但有一些需要注意的事项。在今天的文章中,我们将学习一种视图以及如何使用Navicat Premium作为客户端为MySQL 8创建视图。

Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。

点击下载Navicat Premium试用版

基本语法

在MySQL中,您可以使用CREATE VIEW语句创建一个新视图。这是基本语法:

CREATE
   [ALGORITHM = {MERGE | TEMPTABLE | UNDEFINED}]
VIEW view_name [(column_list)]
AS
select-statement;

现在,让我们更详细地检查语法。

视图处理算法

ALGORITHM属性告诉MySQL创建视图时使用哪种机制。MySQL提供了三种算法:MERGE、TEMPTABLE和UNDEFINED:

  • MERGE算法将输入查询与定义视图的SELECT语句组合为一个查询。然后,MySQL执行组合查询以返回合并的结果集。MERGE算法不能应用于包含聚合函数(例如MIN、MAX、SUM、COUNT、AVG或DISTINCT、GROUP BY、HAVING、LIMIT、UNION和UNION ALL)的SELECT语句。如果无法应用MERGE算法,MySQL会自动将算法更改为UNDEFINED。

  • TEMPTABLE算法首先基于定义视图的SELECT语句创建一个临时表,然后针对该临时表执行输入查询。因为MySQL必须创建一个临时表来存储结果集并将数据从基表移到临时表,所以TEMPTABLE算法的效率不如MERGE算法。

  • 创建视图而不指定显式算法时,UNDEFINED是默认算法。UNDEFINED算法使MySQL可以选择使用MERGE还是TEMPTABLE算法。由于效率更高,MySQL首先选择了MERGE算法,但如果不能采用MERGE,则会选择TEMPTABLE算法。

视图名称

只要遵循与表相同的命名规则,就可以为视图选择任何名称。此外,视图和表在数据库中共享相同的名称空间,因此您不能为视图指定与任何现有视图相同的名称。

SELECT语句

在SELECT语句中,您可以从数据库中存在的任何表或视图中查询数据。但是,SELECT语句遵循一些规则:

  • SELECT语句可以在WHERE子句中包含子查询,但不能在FROM子句中包含子查询。

  • SELECT语句不能引用任何变量,包括局部变量、用户变量和会话变量。

  • SELECT语句不能引用准备好的语句的参数。

在Navicat中创建视图

在Navicat中,可以通过单击主工具栏上的“视图”按钮,然后单击“对象”工具栏上的“新视图”来创建新视图:

Navicat使用教程:了解关系数据库中的视图

“定义”选项卡是您编写SQL的地方。您甚至可以使用View Builder来帮助编写语句!

Navicat使用教程:了解关系数据库中的视图

可以在“高级”选项卡上找到“算法”,以及其他一些选项:

Navicat使用教程:了解关系数据库中的视图

完成后,您可以使用“预览”按钮测试您的“视图”,然后单击“保存”将其保存。

结论

视图是将一个或多个表的数据以可查询的格式组合在一起的好方法,但请记住,使用数据库视图存在一些缺点。首先,从数据库视图查询数据可能会很慢——特别是如果该视图是基于其他视图创建的。此外,每当更改视图引用的表的结构时,都必须记住要更改视图。


想要购买Navicat Premium正版授权,或了解更多产品信息请点击

850×682.png


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP