コマンドの入力方法を理解したら、データベースにアクセスすることができます。
何匹かのペットを家 (menagerie、小屋など) で飼っているとします。これらのペットについてさまざまな種類の情報を追跡する場合を考えます。これは、データを保持するためのテーブルを作成し、必要な情報をテーブルにロードすることで実現できます。次に、テーブルからデータを取り出すことで、ペットに関する各種の質問に回答できます。この節では、次の操作の実行方法について説明します。
データベースを作成する
テーブルを作成する
テーブルにデータをロードする
さまざまな方法でテーブルからデータを取り出す
複数のテーブルを使用する
menagerie データベースは意図的に単純になっていますが、これは類似のデータベースを使用するような実際の状況で考えてみることを難しくしないためです。たとえば、これに似たデータベースを使用して農場主が家畜を追跡したり、獣医が患者の記録を追跡したりできます。以降の節で使用するいくつかのクエリーとサンプルデータを含む menagerie の配布を、MySQL の Web サイトから入手できます。圧縮された tar ファイルと Zip の両方の形式で http://dev.mysql.com/doc/ に用意されています。
SHOW
ステートメントを使用して、サーバーに現在どのようなデータベースが存在するかを調べます。
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
mysql
データベースは、ユーザーのアクセス権限を記述します。test
データベースは、多くの場合、ユーザーが各種の試行を行うための作業スペースとして用意されています。
このステートメントで表示されるデータベースのリストは、マシンによって異なる場合があります。ユーザーが
SHOW DATABASES
権限を持っていない場合、ユーザーにまったく権限のないデータベースは
SHOW DATABASES
で表示されません。項8.5.5.15. 「SHOW DATABASES
構文」
を参照してください。
test
データベースが存在する場合は、アクセスしてみます。
mysql> USE test
Database changed
QUIT
と同様に、USE
にもセミコロンは必要ありません。(これらのステートメントの末尾にセミコロンを付加しても問題はありません。)
USE
ステートメントは、1
行に記述する必要があるという点でも特殊です。
test
データベースへのアクセス権限を持っている場合は以降の例に使用できますが、そのデータベース内に作成した内容は、アクセス権限を持っているほかのユーザーによって削除される可能性があります。この理由から、自分専用のデータベースを使用する許可を
MySQL
管理者に依頼するとよいでしょう。自分のデータベースに
menagerie
という名前を付けると仮定します。管理者は次のようなコマンドを実行する必要があります。
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
ここで、your_mysql_name
はユーザーに割り当てられた MySQL
ユーザー名、your_client_host
はサーバーに接続するホストです。