メールマガジン【アクセスで作るシリーズ】


バックナンバー 【会計ソフト編】 Vol.54
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【会計ソフト編】

    発 行 : Yoshihisa Fukuda          2001. 5.26 Vol.54

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------

 今回はSQLの解説 その2です。

== ◇ 第5章 拡張機能     ====================

--------------------------------------
 第9回 SQL その2
--------------------------------------

◆ WHERE
 WHERE句は前回に出てきた基本的なSQLの SELECT や DELETE、UPDATE などに、
 対して条件式を不可します。

 例えば、前回に出てきた SELECT 文で
 SELECT FIELD_1, FIELD_2 FROM TABLE_1;
 がありましたが、これを実行すると TABLE_1 のデータ全てを参照します。

 そこで FIELD_1 の値が3以下の行のみ表示したい場合は、

 SELECT FIELD_1, FIELD_2 FROM TABLE_1
 WHERE FIELD_1 <= 3;

 と、SELECT 文の後ろに WHERE 条件式 を付けてあげます。

 これは、DELETE や UPDATE も同様で、

 DELETE FROM table_1
 WHERE FIELD_1 <= 3;

 UPDATE TABLE_1 SET FIELD_2 = 'QQQ'
 WHERE FIELD_1 <= 3;

 と記述する事で FIELD_1 の値が3以下の行のみ削除したり、 FIELD_1 の値が3
 以下の行のみ FIELD_2 の値を'QQQ'に変更したりできます。

 WHERE の条件式は複数記述する事もできます。

 その時は、条件を OR や AND で繋いで記述します。

 例えば、FIELD_1 が2~4の行のみ参照したい場合、

 SELECT FIELD_1, FIELD_2 FROM TABLE_1
 WHERE FIELD_1 >= 2 AND FIELD_1 <= 4;

 と記述します。

◆ ORDER BY
 ORDER BY句は、データをソートします。

 例えば、TABLE_1 のデータを参照する場合、FIELD_1 の値を昇順で表示したい場合

 SELECT FIELD_1, FIELD_2
 FROM TABLE_1
 ORDER BY FIELD_1;

 と記述すると、実行結果がFIELD_1 の値で昇順にソートされます。
 また、逆に降順でソートして表示したい場合は、DESC と記述します。
 ORDER BY FIELD_1 DESC;
 とすることで、FIELD_1 の値を降順でソートする事が出来ます。

 本来、昇順は ASC を付けて
 ORDER BY FIELD_1 ASC;
 と記述するのですが、ASC は省略すると昇順になるので、実際には記述しない事の
 方が多いです。

◆ GROUP BY
 ORDER BY句は、重複するレコードを結合し、1レコードにします。

 SELECT FIELD_2 FROM table_1
 GROUP BY FIELD_2;

 とすると、FIELD_2 に同じデータが複数存在しても1つしか参照されません。

 GROUP BY は後述の DISTINCT と非常によく似ていますが、通常 GROUP BY は
 グループ毎の集計などに主に使用されます。

 例えば
 SELECT FIELD_2, count(*) AS Kazu FROM table_1
 GROUP BY FIELD_2;
 とすると、FIELD_2の値が同一のレコード数(重複したレコード数)を知ることが
 出来ます。

◆ DISTINCT
 DISTINCT句は、重複するレコードを結合し、1レコードにします。

 SELECT DISTINCT FIELD_2
 FROM table_1;

 とすると、先程の

 SELECT FIELD_2 FROM table_1
 GROUP BY FIELD_2;

 と同じ結果が得られます。

 この DISTINCT は、実は皆さんも一度使われています。
 拡張機能の第3回 仕訳入力の摘要入力フィールドの変更 の時ですが、
 摘要フィールドをコンボボックスに変更した後、同じ物を一つしか表示しない様に
 するために、[固有の値]プロパティを[はい]にしたと思いますが、これが DISTINCT
 です。
 このメールマガジンの通りにソフトを作成されている方は、仕訳入力のフォームの
 摘要コンボボックスの[値集合ソース]プロパティのクエリービルダーを開いてみて
 下さい。
 クエリービルダーが開いたら、メニュー[表示]-[SQLビュー]を選択しSQLを表示
 します。
 すると SELECT DISTINCT・・・・となっていますね。

--------------------------------------
今回は、前回のSQLに対して付加する文の紹介でした。
次回はSQLその3です。
______________________________________
◆◇ Q&Aコーナー    ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

 今回はありません。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元  :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
  ご質問等   :fukuda@shun-net.com

◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
  しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.shun-net.com/fukuda/
◇ 登録・解除  :http://www.shun-net.com/fukuda/

 Copyright(C) 2000-2001 Yoshihisa Fukuda All rights reserved.

◇転載について
 このメールマガジンの無断転載などは、一切禁止です。
 転載をご希望の方は、事前にメールで連絡をください。
◇免責
 このメールマガジン及びホームページの内容による、いかなる損害、障害などに
 関して発行者は一切の責任を負いません。
 掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□