• 検索結果がありません。

テーブル

ドキュメント内 財務データベースサーバの構築 (ページ 68-71)

テーブル

(表)

の列と行は, それぞれ, カラム

(column),

フィールド

(field)

と呼ばれる7)

.

カラムには データの形式を指定する必要があり,データ型

(data type)

といわれる.

データ型には大別して以下のものがある:

数値型

:

数値型としては以下のようなデータ型が利用できる:

データ型 意味 対応している範囲

INT

右の範囲の整数

[ 2

31

, 2

31

1] = [ 2147483648, 2147483647]

TINYINT

とても小さな整数

[ 2

7

, 2

7

1] = [ 128, 127]

SMALLINT

小さな整数

[ 2

15

, 2

15

1] = [ 32768, 32767]

MIDEUMINT

中くらいの整数

[ 2

23

, 2

23

1] = [ 8388608, 8388607]

BIGINT

大きい整数

[ 2

63

, 2

63

1] = [ 9223372036854775808, 9223372036854775807]

FLOAT

単精度浮動小数点 [−2128,−2149(2231)] = [−3.402823669∗1038,−1.175494211∗1038]

(負の範囲) DOUBLE

倍精度浮動小数点 [21024,2−1074(2521)] = [1.79769313510308,−2.22507385910−308]

(負の範囲)

文字型

:

文字型としては以下のデータ型が利用できる:

データ型 意味 対応している範囲

CHAR

固定長の文字列

255(= 2

8

1)

文字まで

VARCHAR

可変長の文字列

255(= 2

8

1)

文字まで

TEXT

長い文字列

65535(= 2

16

1)

文字まで

LONGTEXT

とても長い文字列

4294967295(= 2

32

1)

文字まで

7)テーブルはリレーション(relation)と呼ばれることがある. また,カラムは属性(attribute),フィールドはタプル(tuple)とも いわれる.

60

付 録

B MySQL

ここで,

CHAR

VARCHAR

には最大となる桁数を

()

に指定することができる. たとえば,

VARCHAR(100)

は 最大

100

文字までの文字を格納することができる. なお,

CHAR(100)

とすれば,文字を格納するときに指定 した長さになるようにスペースが埋め込まれるが,

VARCHAR(100)

は埋め込まれない. なお, 取り出される ときにはともにスペースは削除される. また, MySQLバージョン

4.1

以降では桁数の単位は「文字」であ る. たとえば,

CHAR(10)

のとき,日本語でも半角英数文字でも「10文字」まで格納できる.

注意

B.6.1 (5C

コード問題). データベースに格納される文字列の漢字コードとして

Shift JIS

を利用する 場合,円マーク

(Y)

の文字コードは

‘5C’

に割り当てられている. 一方, MySQLでは

Y

はエスケープ処理を

行う記号

(エスケープシーケンスと呼ばれる.)

であるため,たとえば「暴」(文字コード

‘965C’)

という文字

をモニタに表示する場合,デフォルトの文字コードが

sjis

に設定されていない場合にはエラーとなる. こ れは,「暴」の文字コード

‘965C’

の後

2

‘5C’

MySQL

モニタが

‘Y’

と解釈してしまったことによる. こ のような類のトラブルは, 一般に,「5Cコード問題」と呼ばれる.

日付・時刻型

:

日付型としては以下のデータ型が利用できる:

データ型 意味 対応している範囲

DATETIME

日付と時刻

1000-01-01 00:00:00 9999-12-31 23:59:59 DATE

日付

1000-01-01 9999-12-31

YEAR

1901 2155(4

桁のとき)

1970 2069(2

桁のとき)

TIME

時刻

-838:59:59 838:59:59

テーブルを作成するためには

CREATE TABLE

コマンドを使う.

テーブルの作成

³

CREATE TABLE

テーブル名

(カラム名 1

データ型

1,

カラム名

2

データ型

2, ...);

µ ´

注意

B.6.2 (文字セットを指定したテーブルの作成). MySQL

でテーブルに文字を入れたときに文字化け を防止する方法として,

CREATE TABLES

の末尾に

CHARSET=sjis

のように文字コードの指定をオプション として与えることができる.

文字コードを指定したテーブルの作成

³

CREATE TABLE

テーブル名

(カラム名 1

データ型

1, ...) CHARSET=sjis;

µ ´

データベースに存在するすべてのテーブルの表示には

SHOW TABLES

コマンドを利用する.

すべてのテーブルの表示

³

SHOW TABLES;

µ ´

実行例として,データベース

mysql

を指定し,それに含まれるすべてのテーブルを表示させることを以下に 与える:

mysql> USE mysql Database changed mysql> SHOW TABLES;

+---+

| Tables_in_mysql | +---+

| columns_priv |

| db |

| func |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| host |

| proc |

| procs_priv |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---+

17 rows in set (0.00 sec) mysql>

µ ´

テーブルのカラム構造の確認は,

DESC

コマンドで行う8)

.

テーブル構造の確認

³

DESC

テーブル名;

µ ´

実行例として,データベース

mysql

func

テーブルの構造を表示させることを以下に与える:

データベース

mysql

func

テーブルの構造を表示

³

mysql> DESC func;

+---+---+---+---+---+---+

| Field | Type | Null | Key | Default | Extra | +---+---+---+---+---+---+

| name | char(64) | NO | PRI | | |

| ret | tinyint(1) | NO | | 0 | |

| dl | char(128) | NO | | | |

| type | enum(’function’,’aggregate’) | NO | | NULL | | +---+---+---+---+---+---+

4 rows in set (0.05 sec) mysql>

µ ´

なお,テーブルのカラム構造の変更,たとえば,データ型の変更やカラムの追加,カラム位置の変更,カラム の削除等を行うには

ALTER

コマンドを利用する.

注意

B.6.3 (SHOW

コマンドに関する注意).

MySQL

では,データベース名やテーブル名,テーブルの構造, 文字コードの設定などを

SHOW

コマンドで行うことが可能であるけれども,このコマンドは他の

RDBMS

SQL

には存在しないコマンドであることに注意が必要である.

8)DESCRIBE (;記述する)でも可能.

62

付 録

B MySQL

テーブルの削除に関しては

DROP

コマンドを利用する.

テーブルの削除

³

DROP TABLE

テーブル名;

µ ´

指定するテーブルが存在する場合にのみそのテーブルを削除したい場合には,以下のように

IF EXISTS

オ プションを与えて指定する:

条件付きテーブルの削除

³

DROP TABLE IF EXISTS

テーブル名;

µ ´

このような

DROP

コマンドの使用法は,既存のテーブルをバージョンアップする際などに利用されることに 注意しよう.

ドキュメント内 財務データベースサーバの構築 (ページ 68-71)