我上周在一次技术采访中听说了这个话题。数据库检索和投影本质上都是获取数据库信息的方法,但其目的和操作不同。
首先选择。想象一下,您有一个包含所有学生的电子表格,并且您需要查找数学成绩高于 90 分的所有学生。这里,选择过程类似于使用筛子,只留下那些数学特征大于90分的记录。这个过程是在数据级别完成的,只改变行数,而不改变列数。
第二个投影。现在,您还需要找到数学成绩超过 90 分的学生,但这次您只关心他们的姓名和数学成绩。这次,您需要使用投影来过滤掉这些信息并仅保留名称和数学名称列。这相当于将数据表从多维降为二维,只关注特定列。
一言以蔽之,读书是一个“筛子”,只会改变排名;投影是仅更改列的“拆分”。
每种情况不同,具体的应用场景也会有所不同。但了解这两种操作之间的本质区别对于数据库管理来说是相当有用的。
2023 年,我遇到了一个需要大量使用这两个操作来提取和分析数据的项目。我的一个朋友当时告诉我,理解这些概念会让你对数据处理更加得心应手。但他在说什么,我的那个朋友现在改变了他的职业生涯?
这取决于你,但我仍然认为选择和投影是数据库操作中两个非常重要的概念。
数据库选择:选择特定记录,例如2020年销售额超过100万的客户记录。 数据库删除:提取2020年所有客户的姓名和电话号码等特定字段。
这是一个陷阱,不要混淆这两个功能。
数据库选择用于过滤记录,投影用于显示字段。
筛选:2019年的项目要求要求过滤100万个数据点,找到10个符合特定条件的数据点。
预测:应显示您的 2021 年报告要求、用户名和电子邮件地址,并且不应显示其他信息。
数据库选择用于过滤记录并仅返回符合条件的行。 数据库投影用于提取字段并仅返回指定的列。 这就是坑,不要把两者混为一谈。 不要认为“选择”和“投射”是同一个概念。 不要这样做:只需使用 SELECT FROM tablename;相反,明确指定您需要的列。