新規テーブルの作成・追加と命名規則~create table~

MySQL

新規にテーブルを作成・追加する『create table』について紹介していきます

前提条件

現在のデータベース構造を確認する

show databases;

上記はデータベース一覧を取得することができるSQL

使用するデータベースを選択する

use dog_cafe;

テーブルを作成するデータベースを選択しましょう

今回はdog_cafeというデータベースを指定しています。

現在のテーブル一覧を確認する

show tables;

テーブル一覧を取得するSQLを実行する

出力結果

Empty set (0.001 sec)

現在はテーブルが何も作成されていないことがわかります。

テーブルを作成する

構文

create table テーブル名(カラム名 データ型 オプション,
                        カラム名 データ型 オプション);

コードの見方

青文字・・・省略できない決まり文句
紫文字・・・コメント
白文字・・・利用者の任意で入力する文字列

テーブル名:作成するテーブルの名前を記載する

カラム名:テーブルに作成する列名を記載する

データ型:カラムに対してデータ型(int,varcharなど)を指定する

オプション:このいい方はあまり正しくない。主に以下を指定する

  • not null または null・・・そのカラムにnullを許容するかを指定
  • aute_increment・・・idを自動で振ってくれる
  • primary key・・・指定したカラムを主キーとして設定する

データ型についての詳細は以下を参照

使用するSQL

create table drinks(id int not null auto_increment primary key,
                    name varchar(255) not null);

テーブル名には飲み物を管理するdorinksとする

作成したカラムはid(商品番号)とname(商品名)

id(商品番号)の制約

  • int(整数)を指定
  • not nullを指定 ⇒ Nullを許可しない
  • aute_incrementを指定 ⇒ 自動で番号を振る
  • primary key ⇒ 主キーとして設定
Point!
  • aute_incrementを指定したカラムはprimary keyとして指定する必要がある
  • aute_incrementを指定したカラム以外にprimary keyを指定するとエラーとなる

再度、テーブル一覧を取得する

出力結果

+--------------------+
| Tables_in_dog_cafe |
+--------------------+
| drinks             |
+--------------------+
1 row in set (0.003 sec)

作成したテーブルが追加されていることがわかる

テーブル構造(制約)を確認する

 show columns from drinks;

出力結果

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.029 sec)

指定したとおりにテーブルが作成されています

命名規則

データベース名、テーブル名、列名などには使用してよい文字とそうでない文字があります。

使用不可の文字を利用して命名するとエラーとなってしまいます。

使用可能文字

  • 半角のアルファベット・・・a、b、c…
  • 半角数字・・・1、2、3…
  • アンダースコア・・・_
Point!

最初の1文字目には半角アルファベットのみ利用できる。半角数字とアンダースコアは2文字目以降で利用すること

タイトルとURLをコピーしました