Navicat 博客

2018 年 2 月 13 日,由 Robert Gravelle 撰写

在 Navicat for MySQL、PostgreSQL、SQLite、MariaDB 和 Navicat Premium 的非 Essentials 版本中,查询创建工具是一个用于直观地创建和编辑查询的工具。在第 1 部分中,我们使用它来编写查询以获取在给定年份发布的电影中出现过的演员的列表。第 2 部分是关于字段选择。今天的文章将概述如何使用 Navicat Premium 查询创建工具在 SELECT 查询添加 WHERE准则。

关于 Sakila 示例数据库

与第 1 部分和第 2 部分一样,我们今天在此构建的查询将在 Sakila 示例数据库Sakila 示例数据库运行。它包含许多以电影业为主题的表,涵盖从演员和电影制片厂到影碟出租店的所有内容。有关下载和安装 Sakila 数据库的说明,请参阅 Generating Reports on MySQL Data(生成 MySQL 数据报表)教程。

使用 WHERE 子句

WHERE 子句是 SELECT 查询的一部分,它会根据一组条件准则筛选结果。通过指定我们感兴趣的记录子集来减少返回的行数是非常有用的。例如,从第 1 部分获取的查询,它产生了在给定年份发布的电影中出现过的演员的列表,但仍然返回差不多一千行。有一种方法可以进一步限制返回的行数,就是令查询仅包括我们想要的某些演员信息。

添加以下 SQL 到 Navicat Premium 查询编辑器中,然后点击“查询创建工具”按钮以在查询创建工具中显示它:

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

除了 WHERE 子句,你还会看到 “<按这里添加条件>”标签。在查询创建工具中,“<...>”括号中的所有标签都是可点击的,并会打开特定上下文的列表和/或编辑器。点击“<按这里添加条件>”标签会将文本更改为“<--> = <-->”表达式。它实际上是三个不同的可点击区域:

  • 左侧字段或表达式:“<-->”
  • 比较运算符:“=”
  • 右侧字段或表达式:“<-->”

让我们继续从左到右填写表达式,就像手写查询一样。

我们可以使用“Like”表达式搜索 actors 字段。点击等号(“=”)左侧的“<-->”标签,然后从弹出对话框的字段列表选项卡中选择 film_list.actors(它在最后):

现在,点击等号(“=”)。这将打开一个可供选择的比较运算符列表。选择“Like”运算符:

接下来,我们将输入我们正在寻找的演员。点击等号(“=”)右侧的“<-->”标签,然后在“编辑”选项卡中输入“'%GENE HOPKINS%'”(不带双引号):

设置了 WHERE 条件后,点击“查询创建工具”的“确定”按钮以关闭对话框。你将看到“WHERE film_list.actors LIKE'%GENE HOPKINS%'”行已加到查询编辑器中的 SELECT 语句。

运行查询并确认在所有 22 条记录中 GENE HOPKINS 是电影的演员之一:

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