 |

|
徹底比較!! PostgreSQL vs MySQLパート2 |
第1回:同じようで違うデータ型
著者:NTTデータ 藤塚 勤也 2007/4/2
|
|
|
1 2 3 次のページ
|
 |
連載で扱うバージョン
|
本連載では、「徹底比較!! PostgreSQL vs MySQL」で取り上げることのできなかった項目をいくつか取り上げ、再びPostgreSQLとMySQLについて解説していきます。最後までお付き合いいただけると幸いです。
なお、本連載での解説対象のPostgreSQLとMySQLのバージョンは以下の通りです。
- PostgreSQLバージョン8.1.8
- MySQLバージョン5.0.22
表1:解説対象のバージョン
ある特定のバージョンに特化した内容を解説する予定はないため、基本的には、PostgreSQLは8.1系、MySQLは5.0系の内容として理解してください。なお先日、PostgreSQL 8.2がリリースされましたが、まだまだ実際に利用されているのは8.1系だと思われますので、ご了承ください。
また、PostgreSQLとMySQLは様々なOSで動作可能ですが、特に断りのない場合はLinux版を前提にしています。
第1回目の今回は、各種データ型の違いについて取り上げます。
|
数値データ型について
|
まずは数値のデータ型についてですが、PostgreSQL、MySQLそれぞれがサポートしている代表的な数値データ型を次に示します。
- PostgreSQL
- smallint、int、bigint、decimal、numeric
- MySQL
- tinyint、smallint、mediumint、int、bigint、decimal、numeric
表2:PostgreSQLとMySQLのデータ型
PostgreSQL、MySQL共にいくつかの整数値用のデータ型(〜int型)をサポートしています。それぞれの整数型は格納できるバイト数の違いによるもので、格納できる最小値・最大値は、その格納バイト数に従います。
データ型 |
格納バイト数 |
最小値 |
最大値 |
tinyint |
1 |
-128 |
127 |
smallint |
2 |
-32768 |
32767 |
mediumint |
3 |
-8388608 |
8388607 |
int |
4 |
-2147483648 |
2147483647 |
bigint |
8 |
-9223372036854770000 |
9223372036854770000 |
表3:整数型の幅
なおMySQLは、PostgreSQLがサポートしていない格納バイト数1のtinyint型や、3のmediumint型などの数値データ型をサポートしています。
また、MySQLの数値データ型は「UNSIGNED」指定ができます。これはPostgreSQLにはありません。UNSIGNED指定を行うと同じ型のデータでもPostgreSQLとMySQLでは格納できる値の範囲が異なりますので注意が必要です。例えば、int型で格納できるデータの範囲は通常-2147483648から+2147483647ですが、MySQLのint型に「UNSIGNED」指定を行うと、0から4294967295になります。
decimal型とnumeric型は、全桁数と小数点以下桁数を指定できる、「固定小数点値用」のデータ型ですが、PostgreSQLとMySQLでは指定できる最大桁数が異なります。PostgreSQLは全桁数、小数点以下桁数ともに最大1,000を指定できます。MySQLは、全桁数65、小数点以下桁数30が最大です。当然指定桁数の最大値が異なりますので、格納できる値の範囲が異なります。
|
1 2 3 次のページ
|

|
|

|
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
|
|
|
|