|
||||||||||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||||||||||
| 文字データ型について | ||||||||||||||||||
|
続いては、文字列を扱うデータ型です。数値のときと同じく、PostgreSQL、MySQLそれぞれがサポートしている代表的な文字データ型を次に示します。
表4:PostgreSQLとMySQLの文字データ型 文字データ型としてchar型はよく使用すると思います。MySQLについては、char型は最大255文字の制限が明確になっており、それ以上の文字列を扱う場合はtext型を使うことになります。一方、PostgreSQLにはあまり明確な制限はなく、1,000万文字ほどの文字列をchar型に格納することも可能です。 PostgreSQL、MySQL共にサポートしているtext型ですが、SQLの標準ではありません。しかし、多くのRDBMSがサポートしているデータ型です。 PostgreSQLのtext型に格納できる文字列の長さには制限がありませんが、MySQLのtext型およびlongtext型には制限があります。text型は65535文字、mediumtext型は16777215文字、longtext型4294967295文字です。 |
||||||||||||||||||
| 日付・時刻データ型について | ||||||||||||||||||
|
最後は日付・時刻データ型についてです。PostgreSQL、MySQLそれぞれがサポートしている代表的な日付・時刻データ型は次の通りです。
表5:PostgreSQLとMySQLの日付・時刻データ型 よく見かけるテーブル設計として、そのテーブル内のレコード単位の更新日時を記録するためのカラムを用意することがあると思います。このカラムのデータ型としては、日付・時刻データ型の1つであるtimestamp型を用いることが多いでしょう。timestamp型はPostgreSQL、MySQL共にサポートしていますが、若干機能が異なりますので具体的に例をあげて説明します。 図1の通りカラム「COL01」「COL02」「COL03」「COL04」を持つテーブル「TABLE01」を使用した例を考えてみます。 ![]() 図1:TABLE01のサンプル 「COL01」「COL02」「COL03」のデータ型はchar(4)で「COL04」のデータ型はtimestamp型とします。この「TABLE01」テーブルに対してレコードを挿入し、その時の日付時刻を「COL04」に記録するためには、以下のようなINSERT文を使用します。
INSERT INTO TABLE01 (COL01,COL02,COL03) VALUES ('1000','2000','3000')
これは、「COL04」に対して明示的な値を設定しないことによって、RDBMSに自動でその時の日付時刻を設定してもらう方法です。PostgreSQLとMySQL共にこの方法を実行できます。ただしPostgreSQLの場合は、「COL04」にデフォルト制約として、現在の日付時刻値を意味する「current_timestamp」を定義しておく必要があります。デフォルト制約とは、レコードの挿入時に値が指定されなかった場合に、自動でRDBMSが記録する値を定義できる機能で、PostgreSQLやMySQLだけでなく他のRDBMSでもこの機能は提供されています。 |
||||||||||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||||||||||
|
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||


