MySQL group by的迷惑

MySQL group by的疑惑
《SQL入门经典》:所有被选中的,非汇总函数的字段必须列在group by子句里面。
但是,我在MySQL里面却可以只有部分字段出现在group by子句里面。
tab:
id     name
1         d
3         b
3         c
2         b
null     e
4         smith

执行select id,name from tab
         group by id;
却可以执行,得到结果
id       name
null     e
1         d
3         b
4         smith
同学说他在oracle里面绝对会报错,但是为什么在MySQL里面不报错,可以执行呢?

------解决思路----------------------
这个是MYSQL的特殊语法,不是标准的
------解决思路----------------------
SQLSERVER也会报错。还是按照标准语法写吧  
------解决思路----------------------
标准的SQL语法group by 要包含所有的非汇总字段
------解决思路----------------------
最好按标准的sql语法来写
------解决思路----------------------
这是MySQL 特有的语法,在SQLServer 和 Oarcle 中是会报错的,建议按照SQL标准来