SQL ステートメントの入力方法がわかったら、データベースにアクセスできます。
何匹かのペット (menagerie、動物) を家で飼っているとします。これらのペットについてさまざまな種類の情報の記録をつける場合を考えます。 これは、データを保持するためのテーブルを作成し、必要な情報をテーブルにロードすることで実現できます。 次に、テーブルからデータを取り出すことで、ペットに関する各種の質問に回答できます。 このセクションでは、次の操作の実行方法について説明します。
データベースを作成する
テーブルを作成する
テーブルにデータをロードする
さまざまな方法でテーブルからデータを取り出す
複数のテーブルを使用する
menagerie データベースは意図的に単純になっていますが、類似のデータベースを使用するような実際の状況を考えることは難しくありません。 たとえば、これに似たデータベースを使用して農場主が家畜の記録をつけたり、獣医が患者の記録をつけたりできます。 次のセクションで使用するクエリーおよびサンプルデータの一部を含む menagerie ディストリビューションは、MySQL の web サイトから取得できます。 圧縮 tar ファイル形式および Zip 形式の両方で、https://dev.mysql.com/doc/ で入手できます。
SHOW
ステートメントを使用して、サーバーに現在どのようなデータベースが存在するかを調べます。
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
mysql
データベースは、ユーザーのアクセス権限を記述します。 test
データベースは、多くの場合、ユーザーが各種の試行をするための作業スペースとして用意されています。
このステートメントで表示されるデータベースのリストは、マシンによって異なる場合があります。ユーザーが SHOW DATABASES
権限を持っていない場合、ユーザーにまったく権限のないデータベースは SHOW DATABASES
で表示されません。 セクション13.7.7.14「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
はサーバーに接続するホストです。