MySQLでテーブルを作成する方法について書いています。
テーブルを作成するときには、CREATE TABLE文を使うと良いです。
MySQLのバージョン8.0.32で、動作を検証しています。
テーブルを作成するには?
MySQLでテーブルを作成するには、CREATE TABLE文を使います。
USE
を使って、テーブルを作成したいデータベースを選択した後に実行してください。
CREATE TABLE文の後に、テーブル名を指定します。
その後に、テーブルに属するカラムを指定してすることで、作成することができます。
CREATE TABLE users (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(128),
age SMALLINT,
birthday DATE,
PRIMARY KEY (id)
);
users
という名前のテーブルを作成しています。
丸括弧「()
」の中にテーブルのカラムを定義しています。
カラムとしては、下記の内容を保持するようにしました。
・name: ユーザーの名前
・age: ユーザーの年齢
・birthday: ユーザーの誕生日
実行すると、users
テーブルが作成されます。
テーブルの名前は好きなようにつけることができますが、次項の命名規則には従う必要があります。
テーブル名の命名規則
テーブル名の命名規則は下記になります。
データベース名をつけるときと同じルールです。
・64文字を超えることができない
・スペース文字を終わりに使うことができない
こちらもスペースを使うことができますが、アンダースコアを使うのが通例です。
ちなみにスペースを含む名前のテーブルは、下記のようにすることで作成できます。
CREATE TABLE `fuga hoge` (id INT);
グレイヴ・アクセント(`)で囲うと、スペースを含めて文字列として認識されて、登録することができます。
テーブル作成時にエラーになるパターン
先ほどの命名規則に沿っていない場合などはエラーになります。
同名のテーブルが既にある
既に存在する名前のテーブルを作ろうとすると、ERROR 1050 (42S01)
エラーが発生します。
CREATE TABLE users (id INT); -- 既にあるusersテーブルを作成
ERROR 1050 (42S01): Table 'users' already exists
同名のテーブルが不要だったら削除するか、違う名前でテーブルを作成しましょう。
テーブル名が64文字を超える
テーブル名が64文字を超える場合は、ERROR 1059 (42000)
エラーが発生します。
CREATE TABLE testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttestt (id INT);
ERROR 1059 (42000): Identifier name 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttestt' is too long
テーブル名は、シンプルでわかりやすい、短い英単語などでつけましょう。
テーブル名の最後にスペースが入っている
テーブル名の最後にスペースが入っているときには、ERROR 1103 (42000)
エラーが発生します。
CREATE TABLE `hoge ` (id INT);
ERROR 1103 (42000): Incorrect table name 'hoge '
テーブル名の最後にスペースを入れないようにしましょう。
データベースを選択していない
データベースを選択していないときには、ERROR 1046 (3D000)
エラーが発生します。
CREATE TABLE test (id INT);
ERROR 1046 (3D000): No database selected
USE
で、テーブルを作りたいデータベースを選択してから実行しましょう。
テーブルを作成する方法のまとめ
今回はMySQLでテーブルを作成する方法について書きました。
記事の内容をまとめると、下記のようになります。
・命名規則に沿っていない場合にはエラーになる。
コメント