为什么我们需要使用查询SELECT COLUMN1, COLUMN2
,而我们可以只使用SELECT *
并且只显示我们想要的列?
SELECT ALL
和SELECT
有什么区别?
问题是,当您可以轻松地在应用程序中显示您喜欢的列并始终使用SELECT *
时,为什么要使用 SELECT col1, col2
?
主要原因如下:
- 仅选择所需的列意味着服务器必须收集较少的数据并将其发送到应用程序,从而加快查询速度并减少资源使用量,尤其是在有许多列或其中一些列包含 BLOB 的情况下。 如果
- 数据库中的结构发生更改(例如,如果重命名或删除列),则会收到更容易理解的错误,并且它们出现在选择中,而不是应用程序中。
- 如果要按整数索引使用结果中的字段,则必须指定列,否则您将受到查询优化提出的任何列顺序的支配。您的应用程序可能只是因为有人添加了列或索引而停止工作。
编辑以回答问题的第二部分:
哦,SELECT ALL 和 SELECT 之间的区别在于没有区别。
SELECT ALL 是我所知道的所有方言中 SELECT 的默认行为。
但是,选择不同是不同的。它返回集合的唯一值,因此如果您运行:
SELECT DISTINCT col1, col2
在包含以下内容的表上
1,2
1,2
2,2
2,3
你会得到
1,2
2,2
2,3
在比较SELECT Col1, Col2
与SELECT *
的差异之前,发布了很多问题
你可以在这里找到其中的一些。
哪个更快/最好?选择 * 或选择列 1、列 2、列 3 等
选择* 和选择
选择* 与选择列
关于SELECT ALL
和SELECT
:这两个语句之间没有区别,您可以使用SELECT Col1, Col2
或SELECT ALL Col1, Col2
如果你看一下SELECT
语句:
SELECT [ALL | DISTINCT] column1[,column2] FROM table1
ALL
是默认值。
如果你有一个包含很多列的大表,而你只需要其中一个,"选择列"将比"全选"执行得更快。