A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© anyu 中级黑马   /  2012-11-10 18:52  /  2014 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 anyu 于 2012-11-11 12:37 编辑

每次写Sql查询语句时,为了省事,都写select * from 表,但是都建议我写成需要某列就只查询某列,select 列名 from 表,为什么?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

5 个回复

正序浏览
select * from  【表名】会查询你数据库中所有列,当你只需要 查询某一列的时候 或者 两列的时候,就写select [列名] from [表],

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
很简答的道理,假设你是人事经理你是查询一个人的一个特性的时间长还是查询多个特性的时间长!查列表的只索引一个字段!查*是索引所有字段!所以查一个字段的效率高吗!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
*太浪费了。。。需要什么查什么
回复 使用道具 举报
本帖最后由 郑昱曦 于 2012-11-10 19:04 编辑

因为数据库在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间,并且*包含所有字段,如果只查询部分字段,这样只会浪费服务器资源

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
我想一个是为了更清楚表达你的需要,另一个是为了节约空间吧和提高查找的速度吧。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马