当前位置: 首页 > 面试题库 >

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

常海
2023-03-14
问题内容

我们正在使用SQL Server 2005,但是这个问题可能适用于任何RDBMS。

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

Select * from view 

或者

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

问题答案:

永远不要使用“选择*” !!!!

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

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

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

尽您所能,但尽您所能。



 类似资料:
  • 问题内容: 我们正在使用SQL Server2005,但是这个问题可能适用于任何RDBMS。 从视图中选择所有列时,以下哪一项更有效? 或者 问题答案: 永远不要使用“选择*” !!!! 这是查询设计的基本规则! 这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于返

  • 编辑:我调试了应用程序,并用初始化了。这消除了错误,但是现在ImageView没有得到更新,但是当我从Gallery中选择image时,它已经更新了。

  • 学生课程 我有一个名为v_student_course的Student_Course视图,它包含student_id、course_id和主题(从课程表中检索)。 V_student_course 我必须通过显示一个学生被分配到什么课程来表示学生和课程之间的多对多关系。但是,所有选择必须使用v_student_course视图来完成,所有插入/更新必须使用student_course表来完成。 >

  • 问题内容: 我试图以与从中选择类似的方式选择的列名称。 我似乎找不到解决办法。有没有其他人以前做过此事,或者知道是否有可能? 问题答案: information_schema.columns.Table_name(至少在Sql Server 2000下)包含视图,因此只需使用

  • 我的代码在下面..在中 在onActivityResult(int requestCode,int resultCode,Intent data)中

  • 问题内容: 我尝试使用创建在一个列中具有两个值的视图,并且该视图已成功创建,但是当我尝试从中选择所有视图时,出现此错误: 我尝试研究此操作和串联运算符,但令我沮丧的是没有找到任何帮助。这是我用来创建视图和选择的代码。 问题答案: Oracle中的串联运算符是双管道。所述用于添加数字加在一起,因此,该错误。 该视图已成功创建,因为Oracle在创建数据时不会评估数据;仅确保它可以编译。