数据是许多大小企业的核心部分。例如,Facebook 存储每个用户的个人资料信息,数据库系统内的数据包括他们的朋友和帖子。SQL(Structured Query Language 的缩写)是一种编程语言,使开发人员和数据库管理员能够使用那些数据。
对于数据库操作,你应该熟悉一些常用的 SQL 命令。除了数据定义语言(DDL)或数据操纵语言(DML)语句,SQL 命令包括使用 SELECT 语句从表和视图中获取数据的命令。本篇文章将介绍几个最重要的查询,以及使用 Navicat Premium Navicat Premium 作为数据库客户端的一些示例。
确定列的最小值或最大值
Sakila 示例数据库 包含许多以电影业为主题的表,涵盖从演员和电影制片厂到影碟出租店的所有内容。我们今天将在这里构建的查询将在这个数据库运行。因此,如需下载和安装 Sakila 数据库的说明,请参阅 Generating Reports on MySQL Data(生成 MySQL 数据报表) Generating Reports on MySQL Data(生成 MySQL 数据报表) 教程。
Film 表是 Sakila数据库中的一个中心表。它包含了虚构影碟出租店拥有的每部电影的详细信息。它包括电影标题、发行年份以及租赁价格等信息:
假设我们想知道电影价格的范围,也就是说,最低和最高的租金。我们可以使用 MIN() 和 MAX() 聚合函数很容易地找到范围。聚合函数对一组值执行计算并返回单个值结果。聚合函数有许多种,包括 AVG、COUNT、SUM、MIN、MAX 等。这个查询将 MIN() 和 MAX() 应用于 film 表的 rental_rate 字段:
SELECT MIN(f.rental_rate) as lowest_price,
MAX(f.rental_rate) as highest_price
FROM film f;
正如所料,每个函数都返回一个值:
按类别对结果进行分组
GROUP BY 是 SQL 其中一个最强大的子句。它将具有相同值的行组合到摘要行中。因此,GROUP BY 语句通常与聚合函数(COUNT、MAX、MIN、SUM、AVG)一起使用,以一列或多列将结果集分组。
我们可以使用 GROUP BY 子句列出每个电影评级(即 General、PG、PG-13 等)的最低和最高租金。我们需要做的就是将 rating 字段添加到列列表并追加 GROUP BY 子句到我们现有查询的结尾:
SELECT f.rating,
MIN(f.rental_rate) as lowest_price,
MAX(f.rental_rate) as highest_price
FROM film f
GROUP BY f.rating;
结果显示每个电影评级的电影价格从 $0.99 到 $4.99:
总结
今天的文章介绍了一些重要的查询,以及使用 Navicat Premium Navicat Premium 作为数据库客户端的一些示例。Navicat 的代码补全和自定义的代码段功能透过关键字建议和减少重复输入相同的代码,令编码更加快速。你可以免费试用 14 天进行评估。