Navicat 博客

2018 年 1 月 3 日,由 Robert Gravelle 撰写

在 Navicat for MySQL、PostgreSQL、SQLite、MariaDB 和 Navicat Premium 的非 Essentials 版本中使用查询创建工具,即使只有粗略的 SQL 知识都能创建和编辑查询。在今天的文章中,我们将使用它来编写查询,以获取在给定年份发布的电影中出现过的演员的列表。

源数据库

我们将要构建的查询将在 Sakila示例数据库运行。MySQL AB 文档团队的前成员 Mike Hillyer 创建了 Sakila 数据库,专门提供用于书籍、教程和文章(就像这篇文章)的标准模式。

该数据库包含许多以电影业为主题的表,涵盖从演员和电影制片厂到影碟出租店的所有内容。有关下载和安装 Sakila 数据库的说明,请参阅 Generating Reports on MySQL Data(生成 MySQL 数据报表)教程。

打开查询创建工具

你可以将查询创建工具视为能可视化地构建查询的工具。它可以从“查询设计器”中访问。现在,我们将通过打开一个新查询来启动它:

  • 点击主工具栏上的“查询”图标,然后点击“对象”工具栏中的“新建查询”按钮:
  • 在“查询设计器”中,点击“查询创建工具”按钮以打开可视化 SQL 创建工具。

    数据库对象显示在左窗格中,而右窗格则分为两部分:上面的“图表设计”窗格和下面的“语法”窗格:

构建年度电影演员的查询

首先,选择表以便查询创建工具知道要在字段列表显示哪些字段:

  • 将表或视图从左窗格拖到“图表设计”窗格,或者双击它以将其添加到查询中。我们需要 actor、film_actor 和 film 表。
  • 若要添加表别名,你可以点击每个表旁边的“<alias>”来指定表别名。或者,只需在“图表设计”窗格中双击表名,然后输入别名。
  • 请注意查询创建工具知道表之间的关系。这是因为之前已经在表对象中声明了外键约束:

  • 若要在查询中包含字段,请在“图表设计”窗格中勾选字段名左侧的框。若要包含所有字段,请点击对象标题左侧的框。现在,我们选择演员的名字和姓氏以及电影名。

添加 WHERE 准则

点击 WHERE 关键字旁边的“<按这里添加条件>”会添加默认的 WHERE 条件“<--> = <-->”。

  • 点击左侧的“<--> = <-->”以选择一个字段。这将打开一个弹出对话框,其中包含字段列表和编辑选项卡。
  • 点击“列表”选项卡,然后选择 f.release_year 字段。
  • 点击“确定”关闭对话框。
  • 接下来,点击右侧的“<--> = <-->”以设置发布年份。这次在“编辑”选项卡中输入值“2006”。点击“确定”关闭对话框。
  • 点击“确定”关闭查询创建工具。你现在应该可以在查询编辑器中看到自动生成的 SELECT 语句:
  • SELECT
    a.first_name,
    a.last_name,
    f.title
    FROM
    actor AS a
    INNER JOIN film_actor AS fa ON fa.actor_id = a.actor_id
    INNER JOIN film AS f ON fa.film_id = f.film_id
    WHERE
    f.release_year = 2006
    	
  • 点击“运行”按钮以运行查询。结果将按电影名排序:

总结

无论你是新手还是经验丰富的 DBA,Navicat 的查询创建工具都可以使你比以往更轻松地编写 SELECT 查询。在即将发布的文章中,我们将介绍一些更高级的功能。

Navicat 文章
频道条目
分享
文章归档