成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL與DB2的數據類型對比

數據庫 MySQL
隨著MySQL數據庫的應用越來越廣泛,DB2向MySQL數據庫的遷移需求也越來越多。進行數據庫之間遷移的時候,首先遇到的并且也是最基本最重要的就是兩種數據庫數據類型之間的轉換。

隨著MySQL數據庫的應用越來越廣泛,DB2向MySQL數據庫的遷移需求也越來越多。進行數據庫之間遷移的時候,首先遇到的并且也是最基本最重要的就是兩種數據庫數據類型之間的轉換。

下面結合中國證券等級結算深圳分公司開源數據庫研究測試項目的DB2數據庫向MySQL數據庫遷移項目,說明兩種數據庫數據類型的差異以及遷移過程中的一些注意事項。

無論是DB2數據庫,還是MySQL數據庫,都要在創建數據庫表時為其中的每一列定義一個數據類型,用于限定該列取值范圍。DB2數據庫支持內置的數據類型(built-in)和用戶自定義的數據類型(UDT),但是MySQL數據庫只支持內置的數據類型。

下圖是MySQL數據庫支持的內置數據類型:

DB2和MySQL系列|MySQL與DB2的數據類型對比

MySQL5.7支持數據類型總覽

下圖是DB2數據庫支持的內置數據類型:

DB2和MySQL系列|MySQL與DB2的數據類型對比

DB2 V9/V10支持數據類型總覽

DB2數據類型轉換為MySQL數據類型,原則上可以分為三大類,在實際轉換過程建議遵從以下轉換規則進行轉換:

數值字段類型(Numeric)

DB2數據庫和MySQL數據庫的數值類型都可以分為整型數值和浮點型數值。其中在整型數值方面,MySQL數據庫的整型類型有有符號(singed)和無符號(unsigned)兩種,因此每一類型都可以有兩種精度范圍的取值;DB2數據庫則都是有符號的取值,只存在一種精度范圍。下圖是兩種數據庫的整型類型對照表:

DB2和MySQL系列|MySQL與DB2的數據類型對比

浮點型數值轉換方面,基本上DB2中有的基本數據類型,在MySQL中能找到對應的同名數據類型。

DB2和MySQL系列|MySQL與DB2的數據類型對比

實際測試對比發現,DB2的數值類型和MySQL中對應的數值類型基本同名同義,可以很輕松地實現轉換。

日期時間字段類型(Date &Time)

MySQL支持的日期時間類型(Datetime/Date/Timestamp/Time/Year)比DB2支持的(Date/Timestamp/Time)更豐富。

兩種數據庫在日期時間類型上存在如下異同:

Date類型

DB2和MySQL中的Date類型都占四個字節(其中前兩個字節為Year,第三個字節為Month,第四個字節為Day);主要差別是DB2數據庫中Year的范圍是0001~9999,MySQL中Year的范圍則為1000~9999。實際運用中可以直接轉換。

Timestamp類型

MySQL中的Timestamp是一個Date/time的組合體,取值范圍是從1970-01-01 00:00:00到2037年。轉換中可以直接從DB2中的Timestamp轉換而來。

Time類型

MySQL中Time類型取值范圍為從“-838:59:59”to “838:59:59”(HHH:MM:SS),小時部分非常大的原因是MySQL中Time類型不僅可以代表一天中的時間(小于24小時),而且可以代表某個數據庫事件消耗的時間或者兩個事件之間的時間間隔(可能大于24小時,甚至為負值)。

DB2中該Time類型指一天中的時間,因此取值范圍只能是從“00:00:00”到“23:59:59”。

其他

MySQL中除了上述三種日期時間類型外,還有Datetime和Year兩種特有的時間類型。Datetime類型也是date和time類型的組合體(YYYY-MM-DDHH:MM:SS),其中Year取值范圍從1000到9999。

Year類型取值范圍從1901到2155,實際運用中完全可以用SMALLINT或CHAR(4)取代。

字符串字段類型(String)

字符型(CHAR/VARCHAR)類型

無論是DB2還是MySQL,CHAR(n)和VARCHAR(n)類型分別表示定長和變長字符類型,括號中的n表示定義的能允許最大字符個數;這兩種數據類型在DB2和MySQL中可以互換。

但是DB2中CHAR(n)和VARCHAR(n)的一些特殊用法比如CHAR(n) FOR BIT DATA,VARCHAR(n)FOR BIT DATA在MySQL中沒有得到很好實現,取而代之的是MySQL設計了新的數據類型來實現DB2中的類似功能。MySQL中分別使用BINARY(n)和VARBINARY(n)替代CHAR(n)FOR BIT DATA 和VARCHAR(n) FOR BIT DATA。

DB2數據庫中使用For Bit Data從句修飾Char(n)和Varchar(n)限制指定的字段類型存儲二進制數據,一般用于存儲音頻數據等場合。而在MySQL數據庫中則沒有對Char和Varchar類型做類似擴展,取而代之的是設計了BINARY和VARBINARY數據類型專門存儲二進制數據。

大數據字段(LOB)類型

DB2數據庫中VARCHAR類型字段最大能存儲的字節數不超過表定義的頁大小,比如某個表的頁大小(pagesize)為32KB,那么定義的VARCHAR最大有32,672個字節長;如果要存儲的字節長超過表的頁大小,那么需要為字段定義大數據類型存儲數據。

DB2的大數據類型有CLOB和BLOB兩種,分別存儲字符或者二進制數據。而在MySQL中對大數據字段的定義則更加精細,分別為不同長度的大數據字段設計了不同層次的字段類型。

DB2和MySQL系列|MySQL與DB2的數據類型對比

如上圖所示,DB2中CLOB(n)和BLOB(n)兩種大數據字段類型因其定義的大小不同而分別對應了MySQL數據庫中的八種數據類型。

自增字段類型

DB2允許在Create table時能且只能為表中的一個字段指定為Identity自增字段,分別有Generatedalways和Generated bydefault兩種形式,表示定義的自增字段不允許人工(應用)干預或者允許人工干預。

MySQL數據庫中的自增字段只需要AUTO_INCREMENT修飾即可,而且該字段是人工可干預的。

DB2和MySQL系列|MySQL與DB2的數據類型對比

總結

前述主要對比了DB2數據庫和MySQL數據庫在基本數據類型上的一些差異,對這些差異的掌握了解在做DB2數據庫遷移到MySQL數據庫工作中必不可少。為了方便比對,將兩種數據庫的數據類型總結如下圖所示:

DB2和MySQL系列|MySQL與DB2的數據類型對比 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2010-08-11 09:14:33

DB2數據類型

2010-08-10 17:17:59

2010-08-25 13:36:53

DB2Oracle

2010-11-01 14:14:59

DB2數值型數據類型

2010-08-09 15:44:44

DB2 數據類型

2010-08-26 09:44:42

db2數據類型

2010-08-16 15:06:15

DB2數據類型轉換

2010-11-01 14:26:12

DB2日期時間型數據類

2011-03-16 15:07:10

DB2數據庫數據類型

2010-08-20 10:26:25

DB2數據類型

2010-08-16 09:55:23

DB2數據類型

2010-08-19 13:36:11

DB2數據類型

2009-07-06 17:34:26

遠程復制DB2

2010-09-01 10:17:14

DB2日志

2010-07-27 11:08:49

DB2數據移動

2010-11-02 11:22:06

DB2索引類型

2010-09-07 10:24:26

DB2數據庫

2010-09-01 15:23:59

DB2字段類型

2010-08-17 16:24:32

IBM DB2數據庫

2010-08-31 14:04:49

DB2驅動
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费一区二区三区最新6 | 夜久久 | 手机看片1 | 国产乱码精品一品二品 | 精品中文字幕一区二区 | 日韩乱码一二三 | 国产成人在线视频 | 欧美日韩久久久 | 国产精品99久久久久久宅男 | 亚洲国产成人av | 日韩成人在线电影 | 国产第一亚洲 | 一本大道久久a久久精二百 国产成人免费在线 | 免费在线视频a | 男女视频免费 | 亚洲免费片 | 日本三级日产三级国产三级 | 一区二区在线免费观看视频 | 青草青草久热精品视频在线观看 | 日韩美女爱爱 | 国产电影一区二区 | 亚洲精品电影网在线观看 | 亚洲 欧美 日韩在线 | 日韩精品a在线观看图片 | 久久久123| 免费毛片网站 | 久久久久久久久毛片 | 欧美日韩一区二区在线 | 国产专区在线 | 国产国产精品久久久久 | 91精品国产综合久久久密闭 | 亚洲国产中文字幕 | 亚洲日韩中文字幕一区 | 最新超碰| av中文字幕在线播放 | 日本欧美国产在线观看 | 天堂一区二区三区 | 中国一级特黄视频 | 不卡视频一区 | 秋霞在线一区 | 免费在线黄色av |