mysql与oracle的对比

由于最近三年一直用mysql,好多oracle知识都有点生疏了,现在回顾下并记录下

1.表空间

mysql的表空间有共享表空间和独占表空间
独占表空间,其实就是一张表一个表空间,其实也就是一张表一个数据文件
共享表空间似乎有点类似oracle的表空间,不同的表可以保存在同一个数据文件里
但是貌似mysql新版本也有单独创建表空间的方法:

CREATE TABLE t1 (a int KEY, b text) DATA DIRECTORY='/ssd1/my_data';

详细的可以看oracle说明

oracle要先创建好表空间,然后指定某张表放到某个表空间

2.查询语句

在执行顺序上是一样的:开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果 
每个子句执行后都会产生一个中间结果 ,供接下来的子句使用,如果不存在某个子句,就跳过。

如日期函数

SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;   
mysql> select date_format(now(),'%Y-%m-%d');  
增加一个月: 
SQL> select to_char(add_months(to_date ('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual; 
结果:2000-02-01   
mysql> select date_add('2000-01-01',interval 1 month); 
结果:2000-02-01 
截取字符串: 
SQL> select substr('abcdefg',1,5) from dual;  
结果:abcde

mysql> select substring('abcdefg',2,3); 

结果:bcd 

在MySQL中from 后的表如果是(select.......)这种,那么后面必须有别名 

连接字符串在Oracle中用|| ,MySQL中用concat('a','b','c') 

变量名不能跟列名相同,否则效果为1=1,且MySQL不区分大小写

mysql的group by 语句可以select 没有被分组的字段

orcale用decode()来转换数据,mysql用case when:

MySql和Orcale的ID自增 实现不一样,mysq是表主键自增长,oracle是通过序列实现


3.事务

oracle很早就完全支持事务。 
mysql在innodb存储引擎的行级锁的情况下才支持事务。

4.分区表和分区索引

oracle的分区表和分区索引功能很成熟,可以提高用户访问db的体验。
mysql的分区表还不太成熟稳定。
  

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值