在 Navicat for MySQL、PostgreSQL、SQLite、MariaDB 和 Navicat Premium 的非 Essentials 版本中使用查询创建工具,即使只有粗略的 SQL 知识都能创建和编辑查询。在第 1 部分中,我们使用它来编写查询以获取在给定年份发布的电影中出现过的演员的列表。今天的文章将提供有关选择输出字段的更详细的概述。
今天的查询
我们今天在这里构建的查询将再次在 Sakila sample databaseSakila 示例数据库运行。它包含许多以电影业为主题的表,涵盖从演员和电影制片厂到影碟出租店的所有内容。有关下载和安装 Sakila 数据库的说明,请参阅Generating Reports on MySQL Data(生成 MySQL 数据报表)教程。
与之前的文章非常相似,我们将构建一个查询以获取在给定年份发布的电影中出现过的演员的列表。不同的是,这次我们将使用一个视图,将每套电影的标演员以逗号分隔列表列出。
设置字段关系
将表或视图从左窗格拖动到“图表设计”窗格,或者双击它以将其添加到查询中。查询创建工具将自动包含已声明了外键约束的实体关系。在这个例子,我们需要 film 表和 film_list 视图。他们之间没有定义的关系,所以我们必须自己添加一个。要做到这一点,只需将一个字段从一个对象拖到另一个对象,链接的字段(即 film.film_id 和 film_list.FID)之间将出现一条线。
查询创建工具不仅会绘制对象之间的关系,还会为查询语句添加 INNER JOIN:
选择表或视图后,我们就可以选择输出字段了。
点击要在查询结果中显示的每个字段旁边的复选框,即 film.title、film.film_id、film.release_year 和 film_list.actors。
你在“图表设计”窗格中选择的字段将显示在“语法”窗格中,然后你可以点击 <Distinct>、<func> 和 <别名> 修饰符进行修改。
使用函数
点击 <func> 修饰符将打开 SUM、MAX、MIX、AVG 和 COUNT 聚合函数的列表。你也可以在“编辑”选项卡输入其他函数。例如,我们可以选择 film_list.price 字段并在“编辑”选项卡中输入“concat('$', film_list.price)”添加货币符号。我们也可以通过拖动来移动字段位置,例如,移动到 actor 列表之前:
字段别名
使用函数时,最好使用别名来选择一个更具描述性的字段名。例如,在这例子中,我们可以简单地使用字段名“price”:
以下是查询创建工具生成的最终的查询语句:
SELECT film.title, film.film_id, film.release_year, concat('$', film_list.price) AS price, film_list.actors FROM film INNER JOIN film_list ON film.film_id = film_list.FID
以下是查询结果: