reponの忘備録

「喉まででかかってる」状態を解消するためのメモ

LAMPのお勉強日記 (13)

LAMP環境のお勉強日記

目的

  • 自分が何をやったのか記録する
  • 自分が何を出来るのか公開する

経過

まず、MySQLの勉強をする(その後、PHPとの連携の勉強に移る予定)。

XAMPPにより、コマンドプロンプトで作業する。

リレーショナルデータベースとは(再掲)



はじめに

MySQLモニタに入る。
コマンドプロンプト

>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 |
+------+------+------+------+


今回はここまで

次回は「ビュー」から。

おしらせ

つながり合うSNS


http://survive-sns.jp/


ぜひお気軽にご参加ください。


サーバを新たに立て、一新した「サバイブSNS2.0」を、どうぞ一度覗いてみてください。

人生の「旅の仲間」が見つかるかも知れませんよ。