TOPサーバ構築・運用> 連載で扱うバージョン




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

この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第1回:同じようで違うデータ型
連載で扱うバージョン
  文字データ型について
  更新時における日付時刻の記録
徹底比較!! PostgreSQL vs MySQLパート2
第1回 同じようで違うデータ型
第2回 拡張部分によって違いがでてくるSQL文
第3回 実は差があるキャラクターセットの違い
第4回 PostgreSQLとMySQLに対応したGUIツールを使いこなす
第5回 バックアップとリストア
第6回 ストアドプロシージャ
第7回 トリガ
第8回 それぞれが持つビュー機能

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です