LoginSignup
7
8

More than 5 years have passed since last update.

MySQLをMacに導入して基礎を学ぶ(2)

Last updated at Posted at 2015-09-11

前回の記事の続きです。
余談ですが、これを書くために都内のノマドに適したカフェを探しています!情報をください!!今回は下北沢からお届けします。

前回はmacでインストールして、、データベースを作成して、作業ユーザを作成するというところまで学びました。
今回はMySQLでテーブルを作成して、フィールドの決定を行います。前回はあまりにもドットインストールの内容そのままになっていたので、今回は噛み砕いて自分の言葉で説明できるようになれるように意識します。

はじめに

とりあえず前回作ったユーザdbuserで指定したパスワードでログインします。
まだサーバを指定する方法がわからないですが、dbuser@localhostで作成したのでローカル環境でしょう

データベースの構成

では実際に作成したデータベースにデータを入れていきます。

データを扱う際にはテーブルを作成します。テーブルは日本語でです。
学校の名簿表のようにデータをまとめるのです。

名簿の表にはそれぞれ出席番号、名前、電話番号などがあります、この並びをfield(またはcolumn)と呼びます。どちらの呼び方でも慣れておいて損はないです。
カラムは日本語でいうと列つまり縦の並びを指します。名前であれば、山田、田中、鈴木など並びますね。

ではそれぞれの名前に対して、出席番号、電話番号など定義できますねその横の並びのことをrecordといいます。

おそらくデータベースはこのデータの関係が全てであるので少し詳しく理解できるようにしました。

このような表をいくつも持ってデータベースは完成します。

ここで気の利いた図を持ってこれると一流ですが自分理解できればそれでいいので…

テーブルの作成

ではテーブルを作成します。

まずはターミナルで以下を実行してパスワード入力

$ mysql -u dbuser -p test_app

ちなみにtest_app(データベース名)を入力しないとテーブル作成できません.しっかり使用するデータベースはアクティブにします。tableの作成はdatabaseの作成と同じcreateです。
さてデータベースを作成したようにmysqlで以下を実行

create table accounts(
id int,
user_name varchar(255),
user_email varchar(255),
phone_number char(20),
password char(30),
sex enum('male','female'),
created datetime
);

と実行
ここではブログサービスを作る前提としてまずはアカウントデータを管理するテーブルaccountsを作りました。
表はただ作成するだけでなく、フィールド名とそこに入るデータの型を指定することで意味を持ちます。
- int は整数
- varcharは可変長文字列
- charは固定長文字列
- enumは列挙型でどちらかを選択します
- datetimeは日付の型です
()でバイト数を指定します。

またデータベース同様

  • 一覧で見る
show tables;
  • 削除
drop table accounts;

も扱えます。

扱えるデータ型

フィールドに設定できるデータ型は大きく分けて8つ

  1. 整数型 int
  2. 浮動小数点数型 double float
  3. 日付型と時刻型 date datetime timestamp
  4. 文字列 char varchar
  5. バイナリ binary varbinary
  6. 巨大文字列 巨大バイナリ text bolb
  7. 列挙型 enum
  8. set型 set

この辺の説明だけで記事が書けそうですがまた後回しにします

フィールドのオプション

先ほど作ったテーブルのフィールドのオプションを設定

入力の必須化

入力が必須なのでnullではないということでnot nullをつけます

デフォルト

もともと値を持つように指定するにはdefaultと書いて値を指定します。

自動連番

そのものに意味はなく、登録する度に一ずつ増えていくのが扱いやすいidなどはauto_incrementで指定

索引

そのフィールドを検索するときに早くなる

  • 主キー
    レコードを一意に特定するものにつける。一つのフィールドにしかつけられないのでidなどにつけるのが一般的でprimary keyをつける

  • キー
    よく検索されるフィールドにつける、フィールドと一緒にkey keyName (フィールド名)と宣言する

  • ユニークキー
    uniqueをつけることで、カラム内に同じデータがあった場合エラーを出す。

オプションによって

1.idは必ず入る
2.性別の指定がないときは男性
3.idは自動連番で入る
4.主キーとしてidを定義
5.user_nameをよく検索されるキーとして登録
6.user_emailは他と被らない

とした結果が以下です。

create table accounts(
id int not null auto_increment primary key,
user_name varchar(255),
user_email varchar(255) unique,
phone_number char(20),
password char(30),
sex enum('male','female') default 'male',
created datetime,
key user_name (user_name)
);

このようにフィールド値に制限を入れてテーブルが作成できます。

7
8
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
7
8