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_format(now(),'%H-%i-%S');


2.MySql和Oracle修改字段长度或类型

     oracle>ALTER TABLE tableName modify column columnName 类型;

     mysql>ALTER TABLE tableName modify(columnName  类型);


3.组函数规则不一样

  mysql中组函数在select语句中可以随意使用。但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错。

  例如:oralce>select name,count(money) from user group by name;

             mysql>select name,count(money) from user;


4.自增长和序列

  mysql有自增长类型,自增长列的值会依次自动增加,不需要操作。但oracle没有自增长类型,oracle有序列号,序列号需要手动添加才行。
  oracle>
create sequence customer_id_seq increment by 2 start with 1
  oracle>
create table customer(id int primary key not null, name varchar(15));
  oracle>
insert into customer values(customer_id_seq.curval, "name1"),(customer_id_seq.nextval, "name2");


  mysql>create table customer(id int auto_increment primary key not null, name varchar(15));

  mysql>insert into customer(name) values("name1"),("name2");


5.引号的处理

  mysql可以处理双引号和单引号包裹的字符串,而oarcle则只能处理是单引号包裹的字符串

  oracle>select * from user where name='张三';

  mysql>select * from user where name="张三";


6.分页

  mysql的分页比较简单,可以用limit startNum,pageNum即指定起始位置和一页的数据量来实现。

  oracle的分页则必须使用rownum来表明分页位置,而且rownum只能小于某值,不能大于某值,故而rownum和where联用才能完成数据范围的控制,where<=页数<=rownum值。
  oracle>

SELECT *
  FROM (SELECT tt.*, ROWNUM AS rowno
          FROM (  SELECT t.*
                    FROM emp t
                   WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                       AND TO_DATE ('20060731', 'yyyymmdd')
                ORDER BY create_time DESC, emp_no) tt
         WHERE ROWNUM <= 20) table_alias
 WHERE table_alias.rowno >= 10;
  mysql>

SELECT t.* FROM emp t limit 10,10

7.空字符串比较

  mysql中的空值内容可以是空字符串,但oracle的空值只能是null,不能包含空字符串。


8.模糊查询比较

  mysql和oarcle都可以用 字段名 like %str%  来进行模糊查询,但是oracle使用like查询时不能使用索引。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值