MySql和Oracle的區別

2021-12-30 08:42:03 字數 2122 閱讀 3557

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查詢時不能使用索引。

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...

mysql和oracle的區別

兩者相比較的話,簡單的說,mysql比較小,而且免費,開源的緣故,現在也很健壯,若不是大型應用的話,mysql足以應付一切。oracle比較龐大,整個體系都很健全。簡單的說mysql是實用很好用,oracle就是很好很強大。這樣的說法我認為還是不夠確切的,實際上,用mysql支撐的google的資料...

MySQL和Oracle的區別

mysql一般採用自動增長型別,mysql每張表只能有乙個自增字段,這個自增字段既可以是主鍵也可以是非主鍵,要注意的是把自增欄位作為非主鍵的時候必須為其新增唯一索引,一般都把自增欄位作為主鍵。oracle 中序列採用sequence,create sequence 序列號的名稱。引號的處理 mysq...