Oracle rank()和dense_rank()的区别是: –rank()是跳跃排序,有两个第二名时接下来就是第四名 –dense_rank()l是连续排序,有两个第二名时仍然跟着第三名 select sno,cno,score, rank() over(partition by cno order by score desc) "名次" from sc; --名次不跳跃 两个第二名 接下来还是第三名 select sno,cno,score, dense_rank() over(…
一.Oracle写法介绍 MySQL5.7版本没有提供类似Oracle的分析函数,比如开窗函数over(...),oracle开窗函数over(...)使用的话一般是和order.partition by.row_number().rank().dense_rank()几个函数一起使用,具体的用法可以参考我之前的博客oracle开窗函数用法简介 假如要获取成绩排序第一的学生信息,可以用如下的SQL: select * from (select stuId, stuName, classId, r…
  假设表格为student, 数据如下:   我们要在MySQL中实现Oracle中的rank()函数功能,即组内排序,具体来说: 就是对student表中按照课程(course)对学生(name)按分数(score)高低进行排名.   首先新建存储过程realize_rank_in_MySQL,代码如下: DROP PROCEDURE IF EXISTS realize_rank_in_MySQL; DELIMITER ;; CREATE PROCEDURE realize_rank_in_…
在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * from dual; mysql会出错——1096:没有使用到表:而oracle 会返回列:“du”,其值为“X”——行为和只有一行记录的普通表是一样的! select  express [from dual];  mysql总是作为返回该表达式值的普通select语句执行,返回一行记录的结果集,fr…
Mysql与Oracle区别 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大访问量,是OLTP最好的工具. 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能. 4.Oracle也Mysql操作上的区别 ①主键 Mysql一般使用自动增长类型,在创建…
1.Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2.Oracle支持大并发,大访问量,是OLTP最好的工具. 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能. 4.Oracle和Mysql操作上的区别 ①主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto i…
在平时工作中使用这两个数据库的时候要多一些,这两数据库的使用方面存在的一些各自不同的地方,许多面试官也会问这两个的区别.所以,凭着自己的一些经验个感触,来说说这二者的区别. 使用的群众:MySql中小型数据库,开源的免费使用,轻便简单,当然也是初学者的最佳选择,市场使用率排在Oracle之后:Oracle大型数据库,需要高昂的价格,性能较好支持大并发大访问量,是联机事务处理(OLTP)的最好工具,所以市场的使用率也是相当高的. 安装使用时,对电脑的性能要求也是不一样的.MySql安装完后仅占10…
一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取.共享与锁定. mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据.虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁. oracle:oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与…
循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON' THEN       ii_weekly_day := 'MON';ELSIF iv_weekly_day = 'TUE' THEN       ii_weekly_day := 'TUE';END IF; IF iv_weekly_day = 'MON' THEN      set ii_weekly_day = 'MON';ELSEIF iv_weekly_day =…
数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型:MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据…