1. 程式人生 > >總結ORACLE和MYSQL的一些區別

總結ORACLE和MYSQL的一些區別

一、ORACLE是大型資料庫,MYSQL是中小型資料庫

二、ORALCE支援高併發、大訪問量,是OLTP最好的工具

三、ORACLE和MYSQL操作上面的一些區別:

①:MYSQL一般使用的是自動增長型別,在建立表的時候只要指定主鍵為auto increment,插入記錄時,不需要再指定該記錄的主鍵值,MYSQL將自動增長;ORALCE沒有自增長型別,主鍵一般使用序列,在插入欄位的時候,將序號的下一個值賦給該欄位即可,ORM框架只要使用native主鍵生成策略即可。

②:MYSQL可以用雙引號包起字串,ORACLE只能用單引號包起字串;

③:分頁的SQL語句的處理

MySql分頁(簡單,隨著資料量的不斷增大,效率會降低):(page:當前頁碼,pageSize:每頁顯示的記錄數)

    select * from tablename order by id desc limit (page-1)*pageSize, pageSize;
MySql分頁(高效)
    select * from tablename where id>=(select id from tablename order by id limit (page-1)*pageSize, 1) limit pageSize;

ORALCE分頁

    select * from (select t.*,rownum rn from (select * from tablename) t where rownum<=page*pageSize) where rn>(page-1)*pageSize;

④:空字元的處理

MYSQL非空欄位也有空的值,ORACLE的非空欄位不容許有空的值

⑤:日期欄位處理

MySql日期欄位分為DATE和TIME兩種,ORACLE日期欄位只有DATE,包含年月日時分秒。MySql插入當前時間的幾個函式是:NOW()函式以“YYYY-MM-DD HH:MM:SS”返回當前的日期,可以直接儲存到DATETIME欄位中。CURDATE()以‘YYY-MM-DD’的格式返回今天的日期,可以直接存到DATE欄位中。CURTIME()以‘HH:MM:SS’的格式返回當前的時間,可以直接存到TIME欄位中。

ORACLE中的當前時間是sysdate

⑥:組函用法規則

MySql中組函式在select語句中可以隨意使用,但在oracle中如果查詢的語句中含組函式,那其他列名必須是組函式處理過的,或者是group by子句中的列,否則報錯;

例如:

select name,count(money) from user;這個放在MySql中沒有問題,在ORACLE就有問題;