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

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 還支持 float(Oracle 也支持)和 double 類型。get
1.3 字符串it
在 Oracle 中,字符串通常用 varchar2(N) 來定義字符串類型,若是是表字段的話,它的最大長度是4000,varchar2 是變長類型,佔用的空間由插入的數據決定,還可用 char(N) 來表示定長類型,不過通常不多用。io
MySQL 支持 char 和 varchar,但不支持 varchar2,varchar2 是 Oracle 自定義的類型。char 的最大長度是255,varchar 的最大長度是 65535,這一點比 Oracle 好,Oracle 表字段的長度超過4000就要用 clob 類型了。除了 char 和 varchar,MySQL 還支持其餘字符串類型:
須要注意 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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。