連載第3回目では、PHPのサンプルコードを実際に見ながらフォームデータの受け渡しやファイル操作について解説しました。
今回は、本連載の主役「MySQL」の登場です! 次回以降のサンプル開発で必要となるMySQLの基礎知識とその下準備について解説します。基礎の習得と下準備をしっかり行い、次回以降で本格的に着手する「簡易オンラインストア」の開発に備えましょう。
関連リンク:
連載 快速MySQLでデータベースアプリ!
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html
連載 今から始める MySQL入門
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysql5index.html
MySQLの導入と動作確認
ここでは、MySQLによるデータの参照や登録方法について解説する前に、MySQLの基礎知識と操作方法を中心に解説します。
MySQLのインストールについては、連載第1回目を参考にしてください。正常にインストールが完了していれば、MySQLの各コマンドが使用できます。それでは、動作確認として以下のコマンドを入力してみましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
同じように表示されましたでしょうか?
「-u」オプションでrootユーザーを指定します。MySQLの初期設定では、localhostからのrootユーザー接続にパスワードが設けられていません(注)。
注:デフォルトでは、リモートホストからの接続は制限されています。しかし、localhostからのrootユーザー接続にはパスワードが設けられていません。
rootユーザーのパスワードを設定するには、以下のコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
データベース、テーブル、ユーザー権限
MySQLでは、同一サーバ内に複数のデータベースを作成します(Oracleのインスタンスのようなイメージ)。さらに、データベースの中にテーブルを作成して利用します。なお、OSで用意されるユーザーとは別に、MySQLでは専用の権限情報を使用します。そのため、OS上にアカウントを持っていても、MySQLで正しく権限設定をしていなければ使用できません。
MySQLの基本操作
MySQLの基本操作については、MySQL3.23を基にした「快速MySQLでデータベースアプリ!第2回『mysqlコマンドでデータベース操作』」を参考にしてください(注)。
注:MySQL5.0での変更/追加点については後述します。
mysqlクライアントの実行
ここでは、mysqlクライアントの実行方法を紹介します。
「mysql」コマンドに「-u」でユーザー名を指定します。また、パスワードの入力を必要とする場合は「-p」を指定します。そして、オプションに続いてデータベース名を指定します。
mysqlコマンドを実行すると「mysql>」プロンプトが表示されます(クエリー入力モードに入ります)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
テーブルの作成
テーブルを作成するには、CREATEクエリーを使用します。「test」データベースの中に「test_table」テーブルを作成する場合は、以下の「CREATE TABLE」クエリーを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
実行したら、テーブルが正しく作成されているかどうかを「SHOW TABLES」クエリーで確認します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
データの挿入
データの挿入には、「INSERT」クエリーを使用します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
データの抽出
データを抽出するには、「SELECT」クエリーを使用します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
また、条件付きでデータの抽出を行いたい場合は、「WHERE句」を付けます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
データの更新
データを更新するには、「UPDATE」クエリーを使用します。先ほど紹介したWHERE句を用いることで、特定の行だけを更新できます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ユーザー権限の設定
ここまでは、便宜上「root」ユーザーで各種操作を行いましたが、rootユーザーに与えられている権限を使用し続けることは大変危険です。実際の利用では、専用のユーザーを作成して使用するようにします。
以下のようにすると、testデータベースの全テーブルにSELECT/INSERT/UPDATE/DELETE権限を与えることができます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
クライアントのアドレスを限定しない場合には「%」を指定します。なお、MySQLでは同じユーザー名であっても、ローカルからの接続とリモートからの接続とでは、別々のユーザーとして認識されます。ローカルホストからの接続を明示的に設定するには、以下のように「GRANT」クエリーを実行する必要があります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
権限が不要になった際にユーザー権限をはく奪する場合は、「REVOKE」クエリーを実行します。そして、「DROP USER」クエリーでユーザーを削除します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.