メールマガジン【アクセスで作るシリーズ】
バックナンバー 【会計ソフト編】 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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
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.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□