当前位置:  开发笔记 > 数据库 > 正文

SQL查询 - 从视图中选择*或从视图中选择col1,col2,... colN

如何解决《SQL查询-从视图中选择*或从视图中选择col1,col2,colN》经验,为你挑选了2个好方法。

我们使用的是SQL Server 2005,但这个问题适用于任何RDBMS.

从视图中选择所有列时,以下哪项更有效?

Select * from view 

要么

Select col1, col2, ..., colN from view

devlord.. 37

永远,永远使用"SELECT*"!!!!

这是查询设计的基本规则!

这有多种原因.其中之一是,如果您的表上只有三个字段并且您在调用查询的代码中使用了所有三个字段,那么随着应用程序的增长,您很可能会在该表中添加更多字段,如果你的select*查询只是为了返回调用代码的那3个字段,然后你从数据库中提取的数据远远超过你需要的数量.

另一个原因是表现.在查询设计中,不要像这个口头禅那样考虑可重用性:

吃所有你可以吃,但吃所有你吃.



1> devlord..:

永远,永远使用"SELECT*"!!!!

这是查询设计的基本规则!

这有多种原因.其中之一是,如果您的表上只有三个字段并且您在调用查询的代码中使用了所有三个字段,那么随着应用程序的增长,您很可能会在该表中添加更多字段,如果你的select*查询只是为了返回调用代码的那3个字段,然后你从数据库中提取的数据远远超过你需要的数量.

另一个原因是表现.在查询设计中,不要像这个口头禅那样考虑可重用性:

吃所有你可以吃,但吃所有你吃.


@Even Mien:这取决于实施.有些RDBMS知道如何在`EXISTS()`谓词中优化`SELECT*`,所以它甚至比`SELECT 1`更有效.了解usre的唯一方法是使用您的品牌和版本进行测试.
SELECT 1很有趣!

2> Gthompson83..:

最佳做法是按名称选择每列.将来,您的数据库架构可能会更改,以添加您不需要特定查询的列.我建议按名称选择每一列.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有