我听说SELECT *
在编写SQL命令时使用通常是不好的做法,因为它对SELECT
您特别需要的列更有效.
如果我需要SELECT
表中的每一列,我应该使用
SELECT * FROM TABLE
Run Code Online (Sandbox Code Playgroud)
要么
SELECT column1, colum2, column3, etc. FROM TABLE
Run Code Online (Sandbox Code Playgroud)
在这种情况下,效率真的重要吗?SELECT *
如果你确实需要所有的数据,我认为内部会更优化,但我说的是没有真正了解数据库.
我很想知道在这种情况下最佳做法是什么.
更新:我可能应该指定我真正想要做的唯一情况SELECT *
是当我从一个表中选择数据时我知道所有列总是需要被检索,即使添加了新列.
鉴于我所看到的反应,这仍然是一个坏主意,SELECT *
永远不应该用于更多技术原因,我曾经考虑过.
我见过很多人声称你应该在选择查询中专门命名你想要的每一列.
假设我要使用所有列,为什么我不使用SELECT *
?
即使考虑问题*SQL查询 - 从视图中选择*或从视图*选择col1,col2,... colN,我不认为这是完全重复的,因为我从一个略微不同的角度来看待问题.
我们的原则之一是不要在它之前进行优化.考虑到这一点,似乎使用SELECT *
应该是首选方法,直到它被证明是一个资源问题或模式几乎是一成不变的.据我们所知,在开发完成之前不会发生这种情况.
那就是说,不使用是否有一个压倒一切的问题SELECT *
?
我的网站相当广泛,我最近刚切换到PHP5(称我为大器晚成).
我之前的所有MySQL查询都是这样构建的:
"SELECT * FROM tablename WHERE field1 = 'value' && field2 = 'value2'";
Run Code Online (Sandbox Code Playgroud)
这使它非常简单,友好.
我出于明显的安全原因,现在正试图切换到mysqli,并且SELECT * FROM
在bind_param
需要特定参数时,我很难弄清楚如何实现相同的查询.
这句话是否已成为过去?
如果是,如何处理涉及大量列的查询?我真的需要每次都输入它们吗?
我们使用的是SQL Server 2005,但这个问题适用于任何RDBMS.
从视图中选择所有列时,以下哪项更有效?
Select * from view
Run Code Online (Sandbox Code Playgroud)
要么
Select col1, col2, ..., colN from view
Run Code Online (Sandbox Code Playgroud) 我正在使用PDO并希望做这样的事情:
$query = $dbh->prepare("SELECT * FROM :table WHERE :column = :value");
$query->bindParam(':table', $tableName);
$query->bindParam(':column', $columnName);
$query->bindParam(':value', $value);
Run Code Online (Sandbox Code Playgroud)
PDO是否允许我像这样绑定表名和列名?它似乎允许它,但即使我使用PDO :: PARAM_INT或PDO :: PARAM_BOOL作为数据类型,它也会在我的参数周围加上引号.
如果这不起作用,我怎样才能安全地转义我的变量,以便我可以在查询中插入它们?
任何人都可以分享从SQL Server 2012中的表中隐藏特定列的步骤,因为我不想删除该列
通过隐藏我的意思是,每当我对该特定表使用select查询时,它都不应该向我显示该列.
可能吗?无论用户登录和使用何种查询,我都需要将列隐藏起来
根据评论But the problem is whenever i open the table in sql i dont want to see that particular column
我假设问题是:
下面的屏幕截图显示了Employee表的所有列,尽管登录StackoverIntern
没有对列的选择权限SSN, Salary
通过在查询中仅选择必需字段而不是查询整行,可以获得多少性能优势?例如,如果我有一行10个字段但显示中只需要5个字段,那么仅查询那些5个字段是否值得?这个限制的性能优势是什么?如果需要,以后必须返回并在sql查询中添加字段的风险是什么?