mysql - 选择列 SQL

标签 mysql sql

<分区>

为什么我们需要使用查询 SELECT COLUMN1, COLUMN2 而我们可以只使用 SELECT * 并且只显示我们想要的列?

SELECT ALLSELECT 有什么区别?

最佳答案

问题是,为什么要使用 SELECT col1, col2当您可以轻松地在应用程序中显示您喜欢的列并始终使用 SELECT * 时?

主要原因是这些:

  1. 仅选择所需的列意味着服务器必须收集并向应用程序发送更少的数据,从而加快查询速度并减少资源使用,尤其是当您有许多列或其中一些列包含 BLOB 时。
  2. 如果数据库中的结构发生变化(例如,如果列被重命名或删除,您会更容易理解错误,并且它们会出现在选择中,而不是应用程序中。
  3. 如果您想通过整数索引使用结果中的字段,您必须指定列,否则您将受制于查询优化产生的任何列顺序。您的应用程序可能会停止工作,因为有人添加了列或索引。

编辑以回答问题的第二部分:

哦,SELECT ALL 和 SELECT 之间的区别是没有区别。
SELECT ALL 是我所知道的所有方言中 SELECT 的默认行为。

但是,SELECT DISTINCT 不同。它返回一个集合的唯一值,所以如果你运行:

SELECT DISTINCT col1, col2 

在包含的表上

1,2
1,2
2,2
2,3

你会得到

1,2
2,2
2,3

关于mysql - 选择列 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892377/

相关文章:

sql - 在检查另一个表中的最小和最大 id 后,我需要从表中找到丢失的 id

c# - 如果值在不同的表中,Linq 查询不会返回正确的结果

mysql - 如何将一个表中的两个字段连接到第二个表中?

javascript - 根据从数据库获取的值打开表单

php - Laravel where if 语句

python - aws ubuntu 20.04 mysqlclient 无法安装

java - 如何在java中正确编写带有if条件的sql查询

mysql - SQL 中的 AVG 或 SUM,其中的值是动态计算的

sql - 从 Postgresql 中选择撇号

sql - 复杂 SQL 连接子查询与前 1 条记录