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 数据报表)
教程。
打开查询创建工具
你可以将查询创建工具视为能可视化地构建查询的工具。它可以从“查询设计器”中访问。现在,我们将通过打开一个新查询来启动它:
点击主工具栏上的“查询”图标,然后点击“对象”工具栏中的“新建查询”按钮:
首先,选择表以便查询创建工具知道要在字段列表显示哪些字段:
将表或视图从左窗格拖到“图表设计”窗格,或者双击它以将其添加到查询中。我们需要 actor、film_actor 和 film 表。
若要添加表别名,你可以点击每个表旁边的“<alias>”来指定表别名。或者,只需在“图表设计”窗格中双击表名,然后输入别名。
请注意查询创建工具知道表之间的关系。这是因为之前已经在表对象中声明了外键约束:
点击 WHERE 关键字旁边的“<按这里添加条件>”会添加默认的 WHERE 条件“<--> = <-->”。
点击左侧的“<--> = <-->”以选择一个字段。这将打开一个弹出对话框,其中包含字段列表和编辑选项卡。
点击“列表”选项卡,然后选择 f.release_year 字段。
点击“确定”关闭对话框。
接下来,点击右侧的“<--> = <-->”以设置发布年份。这次在“编辑”选项卡中输入值“2006”。点击“确定”关闭对话框。
点击“确定”关闭查询创建工具。你现在应该可以在查询编辑器中看到自动生成的 SELECT 语句:
SELECT
a.first_name,
a.last_name,
f.title
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
点击“运行”按钮以运行查询。结果将按电影名排序: