Oracle 與 MySQL 的差別分析(2):數據類型

再不點藍字關注,機會就要飛走了哦微信

Oracle   MySQL  的差別分析( 2 ):數據類型

 

1.1 整數spa

Oracle中,通常使用 integer int或者 number(N)MySQL 也支持 integer int,但不支持 number number(N) 的類型。.net

MySQL 支持的整數類型以下,其中 amsllint int(與 integer 等價)是標準定義,在 Oracle 中也支持,其餘類型 Oracle 不支持。orm

MySQL 中能夠用 decimal(3) 定義三位整數,等價於 Oracle number(3),其實 Oracle 中的 decimal(3) number(3) 也是等價的。blog

MySQL 中還可能看到 int(N) 這種定義方式,這裏的 N 隻影響顯示寬度,當制定 zerofill 時,能夠在展現時左補零。ci


 

1.2 浮點數字符串

Oracle 中通常使用 number(5,2) 這種方式,表示小數位爲兩位,整數位最多三位。在 MySQL 中能夠使用decimal(5,2),其實在 Oracle 中也能夠用 decimal(5,2),它與 number(5,2) 是等價的。除此以外,MySQL 還支持 floatOracle 也支持)和 double 類型。get

 

 

 

1.3 字符串it

Oracle 中,字符串通常用 varchar2(N) 來定義字符串類型,若是是表字段的話,它的最大長度是4000varchar2 是變長類型,佔用的空間由插入的數據決定,還可用 char(N) 來表示定長類型,不過通常不多用。io

MySQL 支持 char varchar,但不支持 varchar2varchar2 Oracle 自定義的類型。char 的最大長度是255varchar 的最大長度是 65535,這一點比 Oracle 好,Oracle 表字段的長度超過4000就要用 clob 類型了。除了 char varcharMySQL 還支持其餘字符串類型:

 


 

須要注意 varchar2(N) Oracle 中的 N 表示最大字節數,而 MySQL varchar(N) 表示最大字符數。在 Oracle 須要使用 varchar2(N char) 才表示最大字符數是 N

 

1.4 日期類型

Oracle 中,時間和日期類型使用 date,若是要精確到毫秒還能夠使用 timestamp。在 MySQL 中,date 類型僅表示日期,不包含時分秒,而 time 類型只有時分秒。

若是要在 MySQL 中實現 Oracle date 類型,既有日期又有時分秒,能夠使用 datetime timestamp,其中 timestamp 能夠表示的範圍比較小而且受時區影響。MySQL 還支持 year 類型表示年,能夠更省空間。MySQL 的時間類型都不支持毫秒。


 

1.5 枚舉類型

MySQL 中特有的類型,能夠指定列的取值,好比能夠指定性別的取值,如:

create table t_test_1(gender enum(‘M’,’F’));

對比這種列,若是插入的值不是定義的枚舉值也不是 null,那麼會自動轉換成第一個枚舉值,不區分大小寫。

 

1.6 集合類型

集合類型也是 MySQL 特有的類型,它表示數據只能是指定元素的組合,如:

create table t_test_1(col set(‘a’, ‘b’,‘c’));

這個列能夠插入‘a, b’’a, c’,可是不能插入 abc 之外的字符,若是插入的數據有重複會自動去重,如插入‘b, a, b’,實際會轉換成‘a, b’





本文分享自微信公衆號 - 微光點亮星辰(SandTower)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索