※この記事は「2021年5月2日」に更新しました。
前回は、SQL の基礎について、学習しました。
今回は、MySQL についてです。
PHP でコーディングする前のサーバーに仕込む段階の流れをざっくりと説明していきます。
MySQLとは
PHP は、様々な RDBMS をサポートしていますが、その中でも特に人気があるのが MySQL です。
以前の記事では、この MySQL をブラウザ上で操作できる phpMyAdmin について紹介しました。
しかし、今回はあえて、SQL文の理解を深めるために MySQL を CUI 環境で操作していきます。
MySQL にアクセス
XAMPP をインストールして、環境構築した方はほとんどの場合、Cドライブ直下に XAMPPフォルダがあるかと思います。
環境変数(Path)を設定していない場合、コマンドが使える場所まで移動する必要があります。
ちなみに XAMPP を知らない方は、下記記事をご参照下さい。
コマンドプロンプトを起動して、下記コマンドを実行しましょう(あらかじめ MySQL を XAMPP で起動しておくことを忘れずに)。
cd C:\xampp\mysql\bin
すると、指定したフォルダに移動できます。
それでは、実際に MySQL に接続します。
まずは、ルート権限でアクセスします。
mysql -u root -p
パスワードを求められるので入力します。
早速、データベースを作成してみます。
create database pasota_db;
これで、データベースが作成されます。
現在、root(管理者)というユーザーで操作していますが、実際に Webアプリケーションを作成するときに、この権限でアクセスするのは望ましくありません。
そこで試しに dbuser というユーザーを作成し、アクセス権も設定したいと思います。
grant all on pasota_db.* to dbuser@localhost identified by 'password';
pasota_db に含まれるテーブル全てに全アクセス権を持つ dbuser は、localhost(コンピュータ)でパスワードは password でアクセスできるということです。
今回は、適当なパスワードにしていますが、実際はもっと複雑なものにしてください。
次に、データベースに接続します。
use pasota_db;
テーブルを作成します。
create table users ( id int not null auto_increment primary key, name varchar(32), age int );
id は、primary key といって、主キーと呼ばれるものです。
行を一意に特定するための役割を持つカラムです。
auto_increment は、指定すると自動的に連番を割り当ててくれます。
not null は、空であってはならないという意味。
varchar は、可変長文字列です。
今回の name varchar(32) は、最大32文字まで格納できる name カラムを定義しています。
int は、整数型です。
いったん、MySQL を終了しましょう。
exit
次に、先程作成した dbuser で MySQL にアクセスします。
mysql -u dbuser -p
パスワードを求められるので入力します。
下記コマンドを実行します。
show databases;
先程作成したデータベースが表示されるかと思います。
データベースに接続します。
use pasota_db;
先程作成したテーブルの詳細を表示してみます。
desc users;
問題なく表示されるかと思います。
最後に
いかがでしょうか。
今回紹介したのが仕込みの段階の流れの基本となります。
もちろん phpMyAdmin で操作することも可能です。
次回は、プレースホルダについてです。
PHP に限ったことではないのですが、SQL を安全に実行するために必要な知識です。
PDO を利用したデータベース操作を例に紹介していこうと思っています。