LoginSignup
1
5

More than 3 years have passed since last update.

データベースとテーブルを作成する方法!

Last updated at Posted at 2019-04-29

この記事で分かること

  • データベースとテーブルの作成方法について

データベースとテーブルの作成手順

  • ECサイトを作る場合を想定して、次のような構造でデータベース、テーブルを作ります。

スクリーンショット 2019-04-29 19.01.50.png

テーブルの設計を考える

  • 作成するアプリケーションを元に、データを保存するためにどのテーブルが必要でどの項目に保存するのかを考えます。
  • 次のような流れでテーブルを作成していきます。

手順1.必要なカラムを洗い出す

  • 保存するデータを元に、必要なカラムを洗い出します
  • 例えば、ECサイトを作成する場合、「会員番号」「名前」「メールアドレス」「電話番号」の4つの項目が必要と考えます。

手順2.カラムごとの型を設定する

  • カラムにそれぞれどんな内容が入るのかを設定します。
  • 例えば、「名前」のカラムは文字列が入るので、「VARCHAR」が入ります

データ型の種類

型名 データ型 値の範囲 備考
INT 整数型 -2147483648~+2147483647 UNSIGNEDを指定した場合:0~4294967295
VARCHAR 文字列型 m(バイト数指定):0~65535バイト -
DATETIME 日付時刻型 'YYYY-MM-DD HH:MM:SS' データを取得した日時を自動的に取得できる

※「UNSIGNED」はデータ型に対して付与するもので、負の値が入らないように設定するもの。(0と正の値のみ)

手順3.文字列や値の長さを設定する

  • カラムの型に文字列や数字を入力するものを指定した場合、値の長さを設定する必要があります。
  • 例えば、文字列型の「VARCHAR」を設定した場合、何文字まで入力可能なのかを設定する必要があります。

手順4.AUTO_INCREMENT(オートインクリメント)とPRIMARY KEY(主キー)について

  • 最後に2つの設定項目について解説します。

AUTO_INCREMENT(オートインクリメント)

  • AUTO_INCREMENT(オートインクリメント)とは、カラムに値が指定されなかった場合に、自動で1から順番に数字が割り振られるように設定することです。
  • 例えば、会員番号を割り当てるとき、AUTO_INCREMENT(オートインクリメント)を設定すると自動で1から順番に数字が割り振られます。

PRIMARY KEY(主キー)

  • PRIMARY KEY(主キー)とは、カラムに対してデータを重複させない一意の値のみ入るように設定することです。
  • PRIMARY KEY(主キー)を設定することで、同じテーブルの中で、カラムの値は他と重複しないようになります。
  • 例えば、お客様の中で偶然同じ名前の人がいる可能性はあります。

スクリーンショット 2019-04-29 19.40.39.png

  • それに対して、会員番号はお客様一人一人に別々の番号が割り当てられているので、同じ名前でも会員番号から一人のお客様を特定することができます。

スクリーンショット 2019-04-29 19.45.30.png

  • このようにデータと値が重複することがないようにPRIMARY KEY(主キー)を設定します。

手順5.SQLでテーブルを作成する

  • 手順1~4で設定した内容を表にしてまとめます。
カラム名 データ型 長さ/値 A_I
会員番号 id INT 11 あり
名前 name VARCHAR 255 -
メールアドレス email VARCHAR 255 -
電話番号 tel VARCHAR 255 -

SQLコマンド

  • 上記のテーブルをSQLで書くと次のようになります。
CREATE TABLE `ec`.`users` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL , `tel` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5