何かデータを保存する。
となった時、それがどこに保存されているのか考えたことがありますか?
答えは「データベース」です。
実はそのデータベースですが、
MAMP/XAMPPをインストールした時点で自動で使えるようになっています。
PHPではユーザを新規登録したり、必要なデータを一覧表示したりするときにデータベースを使用します。
使い方を最初から確認していきましょう!
ログインのコマンドを入力
最初に、MAM/XAMPPが起動していることを確認してください。
次にVScodeで、この3つのどれかの方法でターミナルを出してみてください。
- 「Sift + Ctrl + @」
- 画面上部の「ターミナル」→「新しいターミナル」
- 画面下が実は掴めるので、上に引っ張って出す
(直接ターミナルやコマンドプロンプトを表示させても大丈夫です)
ターミナルに次のコマンドを入力してエンターを押してください。
何をしているのかは後ほど解説します
/Applications/MAMP/Library/bin/mysql -u root -p
すると、以下のように「Enter password:」と出てくるので、
「root」
と入力してください。
セキュリティのため、入力しても画面上には表示されませんが「root」と打ったらエンターを押してください。
次のように「Welcome to the MySQL monitor.」と出たらログイン成功です。
入力したコマンドの解説
まず最初の
/Applications/MAMP/Library/bin/mysql -u root -p
これは、
「アプリケーション」フォルダの中にある、
「MAMP」フォルダの中にある、
「Library」フォルダの中にある、
「bin」フォルダの中にある、
「MySQL」を実行する。
と言うことを行っています。
「-u root -p」について。
-u root:ユーザは「root」ですよ
-p:今からパスワードを打ちますよ
と言う意味です。
データベースを作成してみよう
今から実際にデータベースを作成していきます。
いくつかコマンドが出てきますが、一つずつ解説しながら進めていきます。
show databases;
まずは、作成されているデータベースの種類を確認してみましょう。
show databases;
デフォルトであるこの4つのデータベースは、
変更したり削除することの無いように気をつけてください。
- information_schema
- mysql
- performance_schema
- sys
create database データベース名;
それでは「test_db」と言う名前のデータベースを作成してみましょう。
create database test_db;
「Query OK, …」と出ていたら成功です。
もう一度、
show databases;
で確認すると「test_db」が追加されているはずです。
use データベース名;
データベースはいくつも作ることができるので、
「どのデータベースを使うか?」を指定する必要があります。
use test_db;
「Database changed」と表示されたら成功です。
テーブルを作成してみよう
新規で作成したデータベースの中に入ることができたので、テーブルを作成していきましょう。
テーブルはカテゴリごとに作成します。
- ユーザ(user)を管理するテーブル
- 部署(dept)を管理するテーブル
- 飲み物(drink)を管理するテーブル
まず、実際にusersテーブルを作成してみましょう。
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50),
password VARCHAR(255),
time TIMESTAMP,
PRIMARY KEY(id)
) DEFAULT CHARSET=utf8;
いきなり色々出てきましたが、一つずつ解説していきます。
STEP1:CREATE TABLE テーブル名()
まず、「テーブルを作る」となったら「CEREATE TABLE」を書きます。
SQL文は大文字と小文字は区別しないので、全て小文字でも問題ありません。
しかし、SQL構文は大文字で、自作するデータベース名などは小文字のように分けておくことで見やすくなります。
STEP2:カラム(項目)を指定していく
「CREATE TABLE()」の「()」の中に今後usersテーブルが管理する予定の項目を作成していきます。
usersテーブルは、その名の通りユーザを管理するテーブルです。
例えば、
- id:一人ひとりのユーザを特定するため
- name:ユーザ一人ひとりの名前
- password:ユーザ一人ひとりのパスワード
- time:何時何分に作成されたものか管理するため
これらをカンマ区切りで並べていきます。
そしてこの時、
- idは数値で管理するのでINT型
- nameは文字列で管理するのでVARCHAR型
- passwordは文字列で管理するのでVARCHAR型
- timeはTIMESTAMP型と言う型が存在しているのでそれを使う
これをターミナルに記述するのですが、一文字でもスペルミスをするとエラーになります。
できるだけスペルミスが無いようにする方法を紹介します。
VSCodeの右下から言語のモードを切り替えることができるのでSQLモードにしてください。
SQLをVSCode上に記載したものを全部コピーしてすぐ下のターミナルに貼り付けて実行します。
エンターを押して、
「Query OK, …」と出ていたら成功です。
念のため、以下のコマンドで作成したテーブルの一覧を確認してみましょう。
show tables;
今作成した「users」が表示されていたらOKです。
ついでに、usersテーブルの構造も確認しておきましょう。
desc users;
「詳細」を意味するdesctiptionの略ですね。
先ほどカンマ区切りで入力した「id, name, password, time」が表示されればOKです。
一旦ここまでのまとめ
ここまでで、データベースやテーブルを作成したり色々なコマンドが出てきました。
この後、実際にデータを投入すると言う事を行うのですが、その前に一旦これまでに行ったことを整理しておきましょう。
データベースの作成
「データベース」は赤枠で囲った部分のように一番大きな外枠の部分になります。
テーブルの作成
「データベース」の一つ下の枠組みの「テーブル」作成になります。
カラムの作成
カラムは「name」とか「password」のような項目の部分ですね。
データを投入してみよう
INSERT INTO users (name, password) VALUES('テスト太郎', 'test001');
構文は以下のようになります。
INSERT INTO テーブル名 (カラム, カラム, …) VALUES (値, 値, …);
よく見ると今回、idを記載していません。
idはテーブル作成の時に「AUTO_INCREMENT」と言う制約をつけているので、自動的に1から番号が振られます。
エンターを押して「Query OK, 1 row affected」と表示されたら投入成功です。
データを取り出してみよう
SELECT * FROM users;
SELECT カラム名, カラム名 FROM テーブル名;
SELECTの後にカラム名をカンマ区切りで並べていくのですが、
とりあえず全部の項目を取得したい時はアスタリスク「*」を使います。
まとめ
- 「/Applications/MAMP/Library/bin/mysql -u root -p」でMySQLにログイン
- 「create database データベース名;」でデータベースを作成
- 「use test_db;」使用するデーベースを選択
- 「CREATE TABLE テーブル名()」でテーブルを作成
- 「INSERT INTO テーブル名 (カラム, カラム, …) VALUES (値, 値, …);」でデータ投入
- 「SELECT カラム名, カラム名 FROM テーブル名;」でデータを取得