今ふと思ったけど、俺って地味にべにぢょさんと同じことしてるかもしれない。まあ俺はおねいさんではなくキモメンなのでアクセス少ないですが。。。

で、昨日アレしたUNION構文なんだけど、注意することとしてはふたつのselectでのフィールド数をそろえること。

昨日のテーブル二つに対して、
mysql> select * from bbs_message
-> UNION
-> select * from bbs_reply;

とやるとMySQLがへそを曲げる ( bbs_message は6フィールドで bbs_reply は7フィールドなり)。
ERROR 1222 (21000): The used SELECT statements have a different number of columns

個人的にはMySQLが空気を読んで、一方にあってもう一方にないフィールドなんかは「NULL」でも入れて埋めてくれればいいのに、とは思う。

*  MySQL 4.1 リファレンスマニュアル 6.4.1.2. UNION 構文

このリファレンスにあるように、本当は括弧を付けた方がいいらしいが、なくても何とかなってしまう。。

* * *

さて、XAMPPを入れると当然勝手にMySQLが入って、さらに言うとphpMyAdminが入ってしまうわけである。

MyAdminで大抵のことはできるとはいえ、実際にPHPなりPerlなりRubyなりでDBを扱うときは直接クエリを投げなければならない。なんで、生のSQLに慣れておくに越したことはない。

たとえばWindows XPなどで、C:\xampp にXAMPPを入れているのなら、MySQL本体は C:\xampp\mysql\bin\mysql.exe である。

アナタのデスクトップに、
C:\xampp\mysql\bin\mysql -u root -p

というショートカットを作っておくと今後楽かもしれない。MySQLのパスワードは、初期設定のままなら何も入れずにEnterを押せば入れる。。。開発環境ならいいんでないの。

あと、テーブルをなるべく余裕を持って、途中で改行しないように表示するために、コマンドライン窓から「プロパティ => レイアウト」でウィンドウサイズを広くしとくと良いんじゃないかな。130*45ぐらいで。

* * *

アナタの主たる言語がPHPか、はたまたPerlかJavaか、などは僕には知るすべはないが、何をやるにしろ、あるいは諸事情によって言語の主戦場を移るにしろ、データベースはOracle、Postgres、MySQLのどれかになってしまうんじゃないかとは思う(ここまで書いててAccessとかもあるな、って思ったけど結局SQL要るじゃん)。

リレーショナル・データベースと離れてプログラミングをやるのは難しい世の中だと思うので、SQLは「日常会話のように」使えるようになるべきだと、僕は考えている。

-- だからといってリアル日常で「君のハートを select * したい」とか「月曜に会社が drop database されればいいのに」とか言い始めると気持ち悪いので注意が必要である。

同様にwebに携わるなら、もはやコードに触らなくてもHTMLとCSSぐらい読めるようになってほしいとも思っているがそれはまた別のお話。

いずれにせよSQL、HTML、CSSあたりはたくさん参考書もあるし、何より割りと直感的で習いやすいので覚えといて損はないんじゃないか。といっても僕もSQLは修行中なんで。

* * *

明日あたり最近読んだ本の話でもするかな。