利用Navicat
时间: 2025-05-21 09:38:55 浏览: 9
### 使用 Navicat 编写 SQL 查询以获取前 10 部最受欢迎的电影
在 Navicat 中,可以使用图形化界面或手动输入 SQL 查询来完成任务。以下是基于用户需求编写的 SQL 查询语句,用于从数据库中检索前 10 部最受欢迎的电影(按租赁次数排序),并显示其演员姓名、电影简介、语言、总销量和租赁次数。
```sql
SELECT
m.电影名称 AS MovieTitle,
GROUP_CONCAT(a.演员姓名 SEPARATOR ', ') AS ActorNames,
m.电影简介 AS MovieDescription,
m.电影语言 AS Language,
m.总销量 AS TotalSales,
l.被租出去的次数 AS RentalCount
FROM
电影表 m
JOIN
演员表 a ON m.电影ID = a.电影ID
LEFT JOIN
租赁记录表 l ON m.电影ID = l.电影ID
GROUP BY
m.电影ID, m.电影名称, m.电影简介, m.电影语言, m.总销量, l.被租出去的次数
ORDER BY
l.被租出去的次数 DESC
LIMIT 10;
```
#### 解析查询结构
- **字段选取**:
- `m.电影名称`: 获取电影的名字。
- `GROUP_CONCAT(a.演员姓名 SEPARATOR ', ')`: 合并同一部电影的所有演员姓名,并用逗号分隔[^2]。
- `m.电影简介`, `m.电影语言`, `m.总销量`: 分别表示电影的描述信息、语言种类及销售总量。
- `l.被租出去的次数`: 表示每部电影被租赁的频次。
- **连接方式**:
- 主表 `电影表 (m)` 和辅助表 `演员表 (a)` 通过 `ON m.电影ID = a.电影ID` 进行内联接,确保能匹配到对应电影的演员名单。
- 左外联接 `租赁记录表 (l)` 是为了即使某些电影尚未被租赁过也能正常展示其基本信息。
- **聚合函数与去重**:
- 使用 `GROUP BY` 对每一部独立电影的数据进行分组处理,防止重复项干扰结果准确性。
- **排序规则**:
- 结果集按照 `l.被租出去的次数` 字段降序排列 (`DESC`),从而优先呈现租赁次数最多的电影。
- **数量限制**:
- 应用 `LIMIT 10` 控制输出规模至最多十条记录,满足仅需前 10 名的要求。
---
### 在 Navicat 中的操作步骤说明
尽管不建议使用“步骤”类词汇,这里提供一种逻辑顺序以便理解如何实际操作:
1. 打开 Navicat 并连接目标数据库实例。
2. 定位到对应的数据库模式(Schema)下找到相关表格资源。
3. 创建新查询窗口,在其中粘贴上述完整 SQL 脚本。
4. 修改脚本中的表名和字段名以适配真实环境下的命名约定。
5. 执行查询命令查看预期的结果集合。
以上过程假设读者已熟悉基本的数据库管理工具功能;如果遇到任何困难可查阅官方文档进一步学习[^3]。
---
###
阅读全文
相关推荐















