CREATE TABLE 構文
データベースに表を作成します。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 [(列名 型名 制約,...)]
[table_options] [select_statement]
TEMPORARY を指定すると接続中のみその接続ごとで使用可能なテーブルが作成されます。 この一時表は、接続が終了すると自動的に消去されます。
IF NOT EXISTS は、すでにテーブルが作成されていた場合エラーを表示しません。 ただし、表名のみの判断のようです。
表名は、最大64バイトでファイル名として許されるすべての文字。/ と . を除きます。
列名は、最大64バイトで全ての文字が使用可能です。
フィールドに使用できる型
数値型
| 型 | 値 |
|---|---|
| TINYINT [(M)] [UNSIGNED] [ZEROFILL] | 範囲:-128~127,符号なし範囲:0~255 |
| SMALLINT [(M)] [UNSIGNED] [ZEROFILL] | 範囲:-32768~32767,符号なし範囲:0~65535 |
| MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL] | 範囲:-8388608~8388607,符号なし範囲:0~16777215 |
| INTEGER または INT [(M)] [UNSIGNED] [ZEROFILL] | 範囲:-2147483648~2147483647,符号なし範囲:0~4294967295 |
| BIGINT [(M)] [UNSIGNED] [ZEROFILL] | 範囲:-9223372036854775808~9223372036854775807,符号なし範囲:0~18446744073709551615 |
| FLOAT (精度) [ZEROFILL] | 8桁以内の浮動小数。 |
| FLOAT [(M,D)] [ZEROFILL] | 4バイト浮動少数。 範囲: -3.402823466E+38~-1.175494351E-38、0、1.175494351E-38~3.402823466E+38 |
| DOUBLE または REAL [(M,D)] [ZEROFILL] | 8バイト浮動少数。 範囲:-1.7976931348623157E+308~-2.2250738585072014E-308、0、2.2250738585072014E-308~1.7976931348623157E+308 |
| DECIMAL または NUMERIC (M,D) [ZEROFILL] | パック無し浮動小数。 |
日付型
| 型 | 値 |
|---|---|
| DATE | 日付。 書式:YYYY-MM-DD |
| DATETIME | 日時。 書式:YYYY-MM-DD HH:MM:DD |
| TIMESTAMP [(M)] | 自動更新される日時。 書式:YYYY-MM-DD HH:MM:DD |
| TIME | 時刻。 書式:HH:MM:DD |
| YEAR | 2桁または4桁形式(デフォルト)の年。 書式:YYYY |
文字列型
| 種別 | 型 | 値 |
|---|---|---|
| 固定長 | [NATIONAL] CHAR (M) [BINARY] | 固定長文字列(幅:1~255文字) |
| /5. 可変長 | [NATIONAL] VARCHAR (M) [BINARY] | 可変長文字列(幅:1~255文字) |
| TINYTEXT | 最大長 255 バイトのテキスト | |
| TEXT | 最大長 65535 バイトのテキスト | |
| MEDIUMTEXT | 最大長 16777215 バイトのテキスト | |
| LONGTEXT | 最大長 4294967295 バイトのテキスト |
バイナリ型,その他
| 型 | 値 |
|---|---|
| BYNARY(M) | 最大長 255 バイトの固定長バイナリオブジェクト |
| VARBINARY(M) | 最大長 255 バイトの可変長バイナリオブジェクト |
| TINYBLOB | 最大長 255 バイトのバイナリオブジェクト |
| BLOB | 最大長 65535 バイトのバイナリオブジェクト |
| MEDIUMBLOB | 最大長 16777215 バイトのバイナリオブジェクト |
| LONGBLOB | 最大長 4294967295 バイトのバイナリオブジェクト |
| ENUM (‘value1’,‘value2’,…) | char データ型のリスト。 最大65535個の値を持つことができます。 |
| SET (‘value1’,‘value2’,…) | 組。 最大 64個の要素を持つことができます。 |
列制約と表制約
1.列制約構文
CREATE TABLE 表名(列名 データ型 制約 制約 ...,...);
[NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [参照定義]
2.表制約構文
CREATE TABLE 表名(列名 データ型,...
,制約名(列名,列名,...));
PRIMARY KEY (index_col_name,...)
KEY [index_name] (index_col_name,...)
INDEX [index_name] (index_col_name,...)
UNIQUE [INDEX] [index_name] (index_col_name,...)
FULLTEXT [INDEX] [index_name] (index_col_name,...)
[CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...) [参照定義]
CHECK (expr)
KEYとINDEXは同じです。