2013年1月18日金曜日

MySQLのDUAL表

DBMS には Dual表というダミーテーブルを持っているものがあり、 MySQL にも Dual表が存在します。

このDual表というのはテーブルの参照を必要としないSQLを記述するのに よく用いられます。

例えば、ただ単に現在の日付を取得したい、という場合に

select
    current_timestamp
from
    dual

のように記述できます。
ですが、MySQL では FROM 句はなくてもエラーにならないため、 上記のSQLと同じ結果を得たい場合は、

select
    current_timestamp

の用に FROM 句のない SQL を実行すれば、それで日付を取得できます。

では、DUAL 表って MySQL では使わないの?と思いますが、 「FROM 句なしに WHERE 句を指定したい」、という場合などでは 構文エラーとなってしまうため、DUAL を使用しなければなりません。

次のSQLはエラーになります。

select
    current_timestamp
where
    now() like '2013-01-1%'

次の様にSQLを記述すればエラーにはなりません。

select
    current_timestamp
from
    dual
where
    now() like '2013-01-1%'

なので、DUAL 表って使わないかというとそうでもなかったりします。

それと、今 気が付いたのですが、
select
    *
from
    dual

だと MySQL ではエラーになるんですね。

某DBMSでは 1 x 1 のデータを持つテーブルになっているので

1

が取得できます。

2013年1月3日木曜日

MySQL Workbenchの導入

ER図を描くためのツールを探していたのですが、

MySQL Workbench

というMySQL公式が出しているツールで作成できるようなので 利用してみようと思います。

http://www-jp.mysql.com/products/workbench/

現時点でバージョン 5.2.45 のようです。


[導入手順]
1. 上記のURLから今すぐダウンロードを選択

2. 自身の環境に合わせたパッケージを選択
 私は、OS: Windows7(64bit) なので
 「 Windows (x86, 32-bit), MSI Installer (mysql-workbench-gpl-5.2.45-win32.msi)」 を選択しました。
 64bit用というのはないみたいですね。

3. Oracle Single Sign-On (SSO) account にログインしろといわれるので、ログインします。
 アカウントを持っていない場合は「Sign Up」から登録できます。
 私はアカウントを持っていないため、Sign Up します。
 このページは英語ですが、アカウント作成のページは日本語で登録できます。

4. Sign Up (取得済みの場合は飛ばしてください)
 画面の指示に従って情報を入力します。
 メールアドレスがアカウント名になるため、こだわりのある方は注意。
 電話番号は 国番号81 を先頭に付け、市外局番の頭の 0 は取り除いた形で入力します。
 03-1111-xxxx の場合、 813111xxxx と入力します。
 その他特に気をつけることはないと思います。各種情報は、登録後に変更可のようです。
 登録が完了すると本人確認のメールが届きます。
 このステップを行わなくてもダウンロードできるようなので忘れないように注意してください。
 有効期限は 5日間です。

5. ダウンロード
 「 Download Now 」をクリックするとダウンロードが開始します。
 MD5も表示されるので、必要な方は利用してください。
 ファイルサイズもありますが、xx.xM という表記ではなくてどうせなら byte単位で
 あると良いですよね

6. インストーラをダブルクリックでインストールが開始します。
 Setup Type はCustom と Complete がありますが、スタートメニューのショートカットの作成が
 あるかないかの差だけのようなので、 Complete を選択でよいと思います。

7. インストールが完了すると勝手に起動します。
 使用者が少ないせいか、カスペルスキーの警告が出て「弱い制限付き」になってしまいました。
 一部ネットワークが制限されるようですが、とりあえずこのままで使用してみて
 問題がでそうなら設定を変えてみようと思います。