Mysql與Oracle 的對比


 

MysqlOracle 的對比

區別點

Mysql

Oracle

數據類型

CHAR:定長字符串,適合主鍵

VARCHAR:變長字符串

FLOAT,     數值型

 DOUBLE,  數值型             

DATE ,      日期型         

 INT         整型  

 

字符類型 char 定長字符類型 varchar可變長的字符類型  varchar2 可變長的字符類型

二進制大對象 BLOB 主要用來存儲圖片,音頻,視頻....

文本大對象 CLO主要用來存放大文本

Date

數字類型 number

 

主鍵自動增長

Auto_increment 主鍵必須是整型才可以自增長

如creat TABLE t1 (tid INT (10) PRIMARY KEY auto_increment,

tname varchar (10),tage int(2));

Oracle 中給主鍵設置自增長,先設序列,在設置觸發器.

引號的處理

 MYSQL里可以用雙引號包起字符串,

ORACLE只可以用單引號包起字符串在插入和修改字符串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號

分頁

limit是mysql的語法
select * from table limit m,n
其中m是指記錄開始的index,從0開始,表示第一條記錄
n是指從第m+1條開始,取n條。limit 2,4
即取出第3條至第6條,4條記

Oracle 中用rownum .取前n條數據,oracle中用rownum < m;

1:其中m-1 等於要取的條數

2:rownum 只能有 < ,<= ,沒有 >

3: 如m為6,則取得是前5條數據。

 

 日期字段

MYSQL日期字段分DATE和TIME兩種

ORACLE日期字段只有DATE,包含年月日時分秒信息

空字符的處理

MYSQL的非空字段也有空的內容

如:name != ""這樣在mysql下不會報錯

ORACLE里定義了非空字段就不容許有空的內容 。 如果為NULL或空字符,需要把它改成一個空格的字符串。如:oracle下的要換成name is not null 

Sql語句group by

Mysql不要求group by 后的字段 一定要出現在select 后面

oracle中sql 的group by 后的字段 一定要出現在select 后面

開源項目

MySQL是開源的項目

付費

SQL語法的不同

MySQL較為靈活

Oracle較為嚴格

 

 

 

事務

事務的提交

MySQL默認是自動提交

 

Oracle默認不自動提交,需要用戶手動提交

 

事務隔離級別

MySQL是可重復讀

 

讀已提交

對事務的支持

MySQL在innodb存儲引擎的行級鎖的情況下才可支持事務

Oracle則完全支持事務

 

保存數據的持久性

MySQL是在數據庫更新或者重啟,則會丟失數據

Oracle把提交的sql操作線寫入了在線聯機日志文件中,保持到了磁盤上,可以隨時恢復

用戶權限

放在mysql 自己的mysql 庫中

oracle 的權限是跟着表空間走的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM