您的位置:首页 > 数据库

sql 当中的 count 用法 及两个库复制数据时该列不能为空

2012-12-17 18:25 351 查看
  今天写sql时,用到了count,大家都知道count是统计数量的,因为我不管在写什么统计时,一般都会用直接这么用 select count (*) from 表,

不知道其它人在用count时,是不是也是count (*) ,由于我们的数据库数据量是在40W数据之内,且该表字段数量在70个左右,

用count(*)时,用时有时会在0-1秒之间,有时会在0秒(有可能是电脑速度问题),就在我查的同时,脑中忽然出现,为什么不直接count(id)呢?

id列肯定是不为空的,于是就反复查询count(id),操作其它语句的再进行测试count(id)和count(*),发现用时都是在0秒,但是心里感觉还是count(id)要快一些。

所以建议,如果遇到count时,不用*,直接用id列

  同理,如果在查select * from 表时,不如直接查select 字段,字段,字段...from 表,去掉没有用的字段,这样查出来的数据比*查出来的要快.

  刚才,从A库当中直接打开某个表,复制其中部分数据,到远程B库中的表里,提示该列值不能为空,查看复制的数据当中,该列没有为空的数据,

后来想到,可能是因为复制的数据当中其它字段存在在空值,当中并不是NULL这样的值。所以打乱了字段的数据。

  后来想办法,先查出来导成Excle数据,再导入数据,谁知,导成的Excle表,当中数据也是乱的。于是就再试复制,把用sql查出来的数据进行复制,

再再远程B库的表里粘贴,这下成功了,不知道是什么逻辑,直接打开表复制,不可以,查询出来的数据复制就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: