在Navicat for MySQL,PostgreSQL,SQLite,MariaDB和Navicat Premium的Non-Essentials版本中,查询生成器允许任何人只使用粗略的SQL知识来创建和编辑查询。在本文中,我们将使用它来编写一个查询来获取在给定年份中发布的电影中出现的演员列表。
Step 1:源数据库
我们将要构建的查询将针对Sakila示例数据库运行。MySQL AB文档团队的前成员Mike Hillyer创建了Sakila数据库,专门用于提供标准模式,用于书籍,教程和文章,就像您正在阅读的那样。
该数据库包含许多以电影业为主题的表格,涵盖从演员和电影制片厂到视频租赁店的所有内容。
Step 2:打开查询生成器
您可以将查询生成器视为可视化构建查询的工具。可以从“Query Builder”屏幕访问它。让我们通过打开一个新查询来启动它:
2.1 单击主工具栏上的“Query”图标,然后单击“Object”工具栏中的“New Query”按钮:
2.2 在“Query Designer”中,单击“Query Builder”按钮以打开可视SQL生成器。
数据库对象显示在左窗格中,而右窗格分为两部分:上部“Design pane”窗格和下部“Syntax”窗格:
Step 3:构建年度电影查询的演员
首先选择表格是个好主意,以便查询生成器知道要为字段列表显示哪些字段:
3.1将表/视图从左窗格拖到“Diagram Design”窗格,或者双击它以将其添加到查询中。我们需要actor,film_actor和电影表。
3.2您可以通过单击每个表旁边的“”来指定表别名。要添加表别名,只需双击表名称并在Diagram Design窗格中输入别名。 请注意查询生成器如何知道表关系。那是因为已经在Table对象上声明了外键约束:
3.3要在查询中包含字段,请在“Diagram Design”窗格中选中字段名称的左侧。要包括所有字段,请单击对象标题的左侧。选择演员的名字和姓氏以及电影片名。
添加WHERE标准
单击WHERE关键字旁边的“< Click here to add conditions>”会添加默认的WHERE条件“< - > = < - >”。
- 单击左侧的“< - > = < - >”以选择一个字段。这将打开一个弹出对话框,其中包含字段列表和编辑选项卡。
- 单击“列表”选项卡,然后选择f.release_year字段。
- 单击“OK”关闭对话框。
- 接下来,单击右侧“< - > = < - >”以设置发布年份。这次在“编辑”选项卡中输入值“2006”。单击“OK”关闭对话框。
- 单击“OK”关闭“查询生成器”。您现在应该在查询编辑器中看到生成的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
单击“Run”按钮以执行查询。结果将按电影标题排序:
结论
无论您是初学者还是经验DBA,Navicat的Query Builder都可以比以往更轻松地编写SELECT查询。