今回は、MySQLの標準コマンドによる基本的な操作を解説する。MySQLを使ったデータベースアプリケーション開発の前提となる機能なので、ここでしっかりとマスターしておいてほしい。
前回でMySQLのインストールが完了し、皆さんの手元には多くの可能性を秘めた高速データベースが用意されました。本連載の趣旨は「おのおのの開発言語からMySQLを利用すること」です。皆さんの中には「早くPerlから使う方法を教えて!」「MySQL連動のWeb掲示板を作りたい」とはやる気持ちを抑えきれない方もいることと思います。ですが、ここはぐっとこらえて、まずは基本的な操作や管理を取得しましょう。
MySQLが、WindowsをはじめとするUNIX以外のさまざまなプラットフォームにも対応していることは前回の記事でお分かりいただけたと思います。Windowsの基本操作はGUIですが、MS-DOSプロンプトを使えばUNIXのシェルによる操作とほぼ同じことが実現できます。まずは基本中の基本、シェルで操作することに慣れましょう。
「MySQLデータベース」といった場合、それが意味するのは、データを蓄え、要求に応じそのデータを返すサーバの働きをする部分です。データを人間(オペレーター)が読めるような形に整形したり、オペレーターの要求をデータベースサーバに伝えるには、クライアントと呼ばれるプログラムを使います。シェルで使用するクライアントは“mysql”コマンドです。
mysqlコマンドは、RPMでインストールした場合は“/usr/bin/mysql”として、ソースからインストールした場合には“/usr/local/bin/mysql”としてインストールされています。このコマンドの基本的な使い方は下記のようになります。
# mysql [オプション] [データベース]
なお、mysqlコマンドを使うには“/usr/lib/mysql/”にLD_LIBRARY_PATHを通しておく必要があります。各ユーザーの.loginファイルに
export LD_LIBRARY_PATH=/usr/lib/mysql/
と記述することでも対処できますが、ldconfigを備えているLinuxでは/etc/ld.so.confファイルに
/usr/lib/mysql/
の1行を追加し、
# ldconfig
を実行します。
注:ソースからインストールしている場合は/usr/local/lib/mysql/になります。
MySQLをインストールすると、“test”という空のデータベースがデフォルトで用意されます。ここではそのデータベースを使ってみます。下記のようにシェルからmysqlコマンドを実行してみましょう。
# mysql test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 3.23.28-gamma Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql>
正常にインストールされていればこのように出力され、“mysql>”プロンプトが表示されるはずです。ここでの入力方法は大きく分けて2種類用意されています。“\”で始まるバックスラッシュコマンドと、文法にのっとった通常コマンドです。どんなバックスラッシュコマンドが用意されているかは、
mysql> \h
で確認できます。
ですが、筆者はあまりバックスラッシュコマンドを使用しません。バックスラッシュコマンドはそれぞれのSQLデータベースに依存することが多いからです。例えば、PostgreSQLを使用している方は“\d”でデータベースやテーブルの確認ができることを期待すると思いますが、mysqlには“\d”が用意されていません。mysqlコマンドでは、
mysql> show tables;
とします。また“\h”で出せるhelp画面も
mysql > help;
で同じように出力できます。
ここまで読んでいただいて気付いたと思いますが、通常コマンドを使う場合、文の終了には“;”(セミコロン)を付けます。ただ単に[Enter]キーを押しても、mysqlコマンドはまだ入力文が続いていると判断します。例えば下記は同じ結果を返します。
mysql> show tables;
と
mysql> show([Enter]キー) -> tables;
いまは空の“test”データベースが選択されていますので、両入力とも
Empty set (0.XX sec)
注:XXはそれぞれの環境での反応速度
と返ってくるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.