作業ユーザー(dbuser)でテーブル作成

データベースを作成したのち、その操作を行う作業ユーザーを設定しなければならない。プログラミングの世界って本当に分業化が進んでいますね(笑)
理由:今までは「mysql -u root -p」というroot userを使って作業を行っていたが、root userだと全てのデータベースにアクセスできてしまう。そうすると間違ったソースをしたときに全てのデータベースに影響を与えてしまうので一般的にはデータベースをつくった後にはそのデータベースだけにアクセスできる作業ユーザーというのを作成して作業するのが一般的。作成は「grant all on blog_app.* to dbuser@localhost identified by '自分で作ったパスワード';」と打つとできあがる。このコマンドを直訳すると「blog_appというデータベースの下の全てのテーブルに対してdbuserというユーザーに対して以下のパスワードを実行することにより許可を与えなさい」という意味。一度exitして「mysql -u dbuser -p blog_app」(ここではアプリの名前がblog_appなのでこのまま続行)と打つとパスワードを聞かれるので打ってアクセス完了。ここからdbuserとしてテーブルやフィールド作成を行う。

テーブル作成


create table users (
id int,
name varchar(255),
email varchar(255),
password char(32)
);
ユーザーテーブルを作ってみる。今回作るのはid, 名前、emailとpasswordというフィールド。それぞれを型で区切って次に続く場合はコンマを忘れない。作成したテーブルを削除する場合は「drop table 名前;」で削除可能。「show tables;」で確認。「desc users;」でテーブルの一覧を確認できる。

テーブル上で扱えるフィールドの種類

  • 数値に関するもの

int(整数値), double(同小数点)

  • 文字列

char(文字列の長さが予め決まっているもの), varchar(ある程度長さが可変長のもの),text(長さが決まっていない時に使う)

  • 日付

date, datetime

  • それ以外

enum(列挙型、予め選択肢が決まっているもの性別とか)
詳しくは公式サイトreferenceでどんなタイプのデータがあるのか参照可能。


create table users (
-> id int,
-> name varchar(255),
-> email varchar(255),
-> password char(32),
score double,
sex enum('male', 'female'), #列挙式の性別指定
memo text, #メモ用に
created datetime #作成された日にちと時間がわかるといいよね

-> );