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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

select * from tablename 和 select 列出所有字段哪个更好些?为什么?求详细解答

评分

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

查看全部评分

7 个回复

倒序浏览
查询效率没什么区别(即使有区别也是数据量引起的),不同的是返回的数据量不一样,*返回全部数据,而字段列表返回部分数据,写字段名好,防止改表结构,添加新的字段,程序可以保持不变

评分

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

查看全部评分

回复 使用道具 举报
select 列出所有字段  更好些,数据库改动时程序改动较小或不需改动

评分

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

查看全部评分

回复 使用道具 举报
select 字段名号,虽然两者效率上没什么区别,当然如果字段特别多,你有要查询整个表,就用*好了,要是想查部分数据就用字段名吧

评分

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

查看全部评分

回复 使用道具 举报
“select * from tablename” 查询出表中所有数据
“select 列出所有字段”同样是查询出表中所有的数据,说明:“select 字段 from tablename”一般在只需要查询表中特定字段的值时使用
从效率上来说两者差不多
从编码角度上来说使用“select * from tablename” 更加方便,代码更加清晰,所以查询表中所有数据应该使用“select * from tablename”

评分

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

查看全部评分

回复 使用道具 举报
个人感觉还是 select 列出所有字段好些吧,取得自由,顺序可以自己定,方便,不过如果是取全部信息的话,还是select *吧,万一表格结构改了,也一样可以去到所有信息。

评分

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

查看全部评分

回复 使用道具 举报
各有各的好处。
select * from tablename, 只写一个*就代替了所有字段,可以少敲几下键盘,得到的结果中,字段名和字段顺序和原表一样,在不知道表中有哪些字段时,用*很方便。
把所有字段列出来,前提是你知道表中有哪些字段,查询结果的字段顺序按你所列的顺序排列,而且可以通过as对字段进行重命名。

评分

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

查看全部评分

回复 使用道具 举报
李根 中级黑马 2012-7-26 14:48:22
8#
我觉得写字段名好,防止改表结构,添加新的字段,程序可以保持不变。
对于一些在前台程序无用的字段,我可以不select出来,至少在数据库和前台程序的数据量传输可以少许多!经常见书中道:尽量少用'*',以减少返回数据量,但若需求是查所有字段时,用'*'写起来相对简单,在执行查询前,SQL应该还要把'*'转换成所有字段名。

评分

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

查看全部评分

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