LAMPのお勉強日記 (13)
LAMP環境のお勉強日記
承前
上記エントリに呼応して、自分を「人体実験」することにした。
目的
- 自分が何をやったのか記録する
- 自分が何を出来るのか公開する
はじめに
>mysql -u root -p
Enter password:[パスワード]
mysql>
使用するデータベースを指定する
mysql>use db1
今回学んだこと
前回より引き続き、複数のテーブルの利用について。
「exist」の利用
たとえば、売上情報が載っているテーブル「tb」に番号がない社員は、売上がないと考えられます。
そこで、売上のある社員だけをテーブル「tb1」から抽出してみましょう。「存在する」テーブルを表す「exist」を使います。
ex) mysql>select * from tb1 where exists (select * from tb where tb.bang=tb1.bang); +------+-----------+------+ | bang | nama | tosi | +------+-----------+------+ | a101 | sato | 40 | | a102 | takahashi | 28 | | a103 | nakagawa | 20 | | a104 | watanabe | 23 | +------+-----------+------+
逆に「not exist」で存在しないデータを抽出できます。
ex) mysql>select * from tb1 where not exists (select * from tb where tb.bang=tb1.bang); +------+-----------+------+ | bang | nama | tosi | +------+-----------+------+ | a105 | nishizawa | 35 | +------+-----------+------+
サブクエリを用いた、順位付け
テーブル「tb」をカラム「uria」の降順で並べてみる。
ex) mysql>create table tb_zyun like tb; mysql>alter table tb_zyun add zyun int auto_increment primary key; mysql>insert into tb_zyun (bang,uria,tuki) (select bang,uria,tuki from tb order by uria desc); mysql>select * from tb_zyun; +------+------+------+------+ | bang | uria | tuki | zyun | +------+------+------+------+ | a101 | 300 | 5 | 1 | | a102 | 205 | 6 | 2 | | a101 | 184 | 4 | 3 | | a104 | 181 | 4 | 4 | | a103 | 101 | 4 | 5 | | a104 | 93 | 5 | 6 | | a107 | 87 | 6 | 7 | | a102 | 54 | 5 | 8 | | a103 | 17 | 5 | 9 | | a103 | 12 | 6 | 10 | +------+------+------+------+
今回はここまで
次回は「ビュー」から。