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は同じです。