mysql 与 oracle 比较(一)group by 容易产生的误解

注:本文并不是列举出两者之间的所有不同,而是在实际应用中发现的不同的功能点或者处理模式,之所以记录下来,就是为了提醒自己,勿忘

group by :

(1)oracle 中,总所周知,select (查询字段) from table1 group by column1 ,column2,,,,,,

其中查询字段只能是column1,column2,,,,,,和其他列的聚合函数,其中红色字体要完全一致,

(2)但是在mysql中,当查询字段未出现在group by 后面的字段,竟然也可以执行。如下例:

SELECT
    CODE,
    NAME,
    kindergartenCode,
    gradeCode
FROM
    t_class
WHERE
    isDelete = 0
AND NAME = ‘大一班999989‘
GROUP BY
    kindergartenCode,
    gradeCode
ORDER BY
    id DESC

运行结果:

看到上面的结果,似乎对oracle的规定表示怀疑,可是经过仔细分析,运行sql:"select * from t_class where name=‘大一班999989‘ and kindergartenCode=‘1cd3b2a04fe1470fbc999989‘ and gradeCode=‘4‘",结果如下:

可以发现,其实表中是有两行记录的,但是按照上面分组后只返回了一条记录,显然是不正确的,因此,无论是mysql ,还是oracle ,一定要注意,使用了group by 语句后,前面select 出的列,要么是分组的列,要么是其他列的聚合函数,这样结果集才准确

时间: 2024-10-11 03:13:45

mysql 与 oracle 比较(一)group by 容易产生的误解的相关文章

mysql和Oracle的简单比较

ORA-27101: shared memory realm does not exist解决方法: 1.用CMD进入命令行2.sqlplus /nolog3.conn / as sysdba4.startup 首先介绍一下SQL92/99标准的四大分类 DML(数据操纵语言): select,insert,update,delete DDL(数据定义语言): create table,alert table,drop table,truncate table DCL(数据控制语言): gran

MySql和Oracle的日期转换到底有哪些不同?我们来比较一下

1.MySql和Oracle的日期转换 mysql中有2种日期格式DATE和TIME,oracle只有一种日期格式DATE. oracle> select to_char(sysdate,'yyyy-mm-dd') from dual; oracle> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_form

异构平台同步(Mysql到Oracle)

Oracle GoldenGate学习之--异构平台同步(MySQL到Oracle) 如图所示:源端采用Mysql库,目标端采用Oracle库 一.OGG安装配置(源端) 1.OGG下载 https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=14841438 https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=14841440

MySql和oracle的不同

一.语法的不同 1.oracle没有offet,limit关键字,所以在oracle中要分页的话,要换成rownum. 2.oracle建表时,没有auto_increment,所有要想让表的主键自增,要自己添加序列. 3.oracle有一个dual表,当select后没有表时,加上的.不加会报错的.select 1 这个在mysql不会报错的,oracle下会.select 1 from dual这样的话,oracle就不会报错了. 4.对空值的判断,name != ""这样在mys

Mysql与Oracle区别

文章分类:数据库 周五去一家公司去面试,那公司经理问了关于Mysql与Oracle的区别问题,以前没有总结,回答也不是很好,只是凭感觉,先总结如下: 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大访问量,是OLTP最好的工具. 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特

Mysql与Oracle区别(转载)

Mysql与Oracle区别 文章分类:数据库 转载于http://blog.sina.com.cn/s/blog_5d9ca4ea0100kmhy.html 周五去一家公司去面试,那公司经理问了关于Mysql与Oracle的区别问题,以前没有总结,回答也不是很好,只是凭感觉,先总结如下: 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大访问量,是

qlserver、Mysql、Oracle三种数据库的优缺点总结

这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下 一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势.从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要.作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应

jdbc:mysql和oracle插入一条数据返回主键

package org.sin.common.dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import or

MySQL,Oracle,PostgreSQL 数据库web维护管理软件

TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB方式对 MySQL,Oracle,PostgreSQL 等数据库进行维护管理操作. 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护,数据的在线编辑维护,查询语句保存,JSON数据格式化,SQL语法帮助,在线数据源选择配置等.系统内置14套UI皮肤,45套代码编辑区UI方案,使用中可以依个人喜好选择配色方案. 本系统不但稳定,实