■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
中小企業経営者のための
「サルでもわかる」やさしいIT・情報システム用語解説
第 7 号(2005/5/24)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■
こんにちは、インフォバリューの福島です。
今回は、RDBを操作するために必要な「SQL」についてです。
■今日の用語■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼SQL(Structured Query Language)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□(>_<)小難しい定義 □□□□□□□□□□□□□□□□□□□□□□□
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RDBを操作するための言語。もとは、IBM社が開発したが、現在はANSI、ISO、
JISなどで仕様が標準化されている。SQLを使用することにより、表の定義、
表へのデータの検索、挿入、更新、削除、データベースへのアクセス制限の
設定などを行うことができる。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□(^_^)やさしい解説 □□□□□□□□□□□□□□□□□□□□□□□
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━ SQLとは ━━━━━━━━━━━━━━━━━━━━━━━━━━
SQLとは、RDB(→第6回)を操作するための言語(※)です。
前号で申し上げましたとおり、企業の情報システムのデータベース(→第5
回)では、その殆どでRDBが採用されてます。そして、そのデータを操作す
るためにSQLが用いられてます。
SQLを用いることにより、RDBないの全ての操作、すなわち、表そのものを定
義(新たに作る)したり、レコードを新たに、追加したり、変更・削除した
り、検索したり、不正利用できないようにアクセス権限を設定したり、様々
なことを行うことができます。
今回は、話を単純にするために、データ検索だけに絞って説明したいと思い
ます。
今回も前回の表を使って説明します。
表:【都道府県マスタ】
都道府県ID|都道府県名
----------+----------
01 |東京都
02 |神奈川県
表:【業種マスタ】
業種ID|業種名
------+--------
0001 |IT
0002 |マスコミ
表:【顧客マスタ】
顧客コード|顧客名 |都道府県ID|業種ID
----------+----------------+----------+------
0000000001|インフォバリュー|02 |0001
0000000002|ライブドア |01 |0001
0000000003|フジテレビ |01 |0002
0000000004|ニッポン放送 |01 |0002
表:【受注データ】
受注伝票番号|顧客コード|受注日 |受注金額
------------|----------+----------+--------
000000000001|0000000001|2005/01/01| 20,000
000000000002|0000000002|2000/04/01| 30,000
000000000003|0000000002|2002/08/06| 40,000
000000000004|0000000002|2004/12/04| 20,000
000000000005|0000000003|1980/12/31| 100,000
000000000006|0000000003|2005/02/14| 300,000
000000000007|0000000004|1971/09/05| 10,000
000000000008|0000000004|1981/09/05| 20,000
000000000009|0000000004|1991/09/05| 40,000
000000000010|0000000004|2005/04/20| 80,000
━━ 【例1】簡単なSQLの例 ━━━━━━━━━━━━━━━━━━━
SELECT 顧客コード, 顧客名 FROM 顧客マスタ
WHERE 業種ID = '0002'
これが実際のSQLです。
このSQLの意味は次のようになります。
「顧客マスタの中から、業種IDが『0002』である顧客コードと顧客名を抽出
しなさい」
結果は、
顧客コード|顧客名
----------+------------
0000000003|フジテレビ
0000000004|ニッポン放送
が返されます。
このSQLの書き方については、解説し出すと本が1冊かけますので、ここで
は説明しません。それは技術者が業務システムにあらかじめ実装してますの
で読者の皆さんが覚える必要はありません。
ともかく、上記のようにして、データを検索することができるわけです。
「こんなことができる」という概略さえわかっていれば十分です。
━━ ユーザー用に見やすい形に抽出 ━━━━━━━━━━━━━━━━
ところで、前回、表を正規化(→第6回)した結果、
「データが一見してわかりづらくなった」
と思った方はいらっしゃいませんか?
例えば、
「顧客リストを見ただけで都道府県名等がわからなくなった」
などの声が聞こえてきそうです。
このように正規化された表は、コンピュータにとっては効率的にデータを管
理できる反面、人間にはわかりづらくなってしまうのです。
こういったことを解決するのもSQLの役目です。
実際には、上記のような生のデータが、業務システム上にそのまま表示され
ることはありません。すなわち、業務システムにあらかじめ実装されている
SQLがうまく見やすく整形してくれるのです。
次に、SQLでできることについて様々な例を挙げます。
実際のSQL構文については、ここでは挙げません。SQL構文そのものは技術者
に任せるとして、概略だけつかんでください。
━━ 【例2】複数の表から抽出 ━━━━━━━━━━━━━━━━━━
「顧客マスタ、都道府県マスタ、業種マスタ、受注データを結合して、全顧
客のリスト(顧客名、都道府県、業種)を抽出しなさい」
顧客名 |都道府県|業種
----------------+--------+--------
インフォバリュー|神奈川県|IT
ライブドア |東京都 |IT
フジテレビ |東京都 |マスコミ
ニッポン放送 |東京都 |マスコミ
このように、見た目もわかりやすい、顧客リストを複数の表を結合して抽出
することができます。
━━ 【例3】並び順の指定 ━━━━━━━━━━━━━━━━━━━━
「顧客マスタ、都道府県マスタ、業種マスタ、受注データを結合して、受注
日が古い順に売上リスト(受注伝票番号、顧客名、都道府県、業種、受注日、
受注金額)を抽出しなさい」
受注伝票番号|顧客名 |都道府県|業種 |受注日 |受注金額
------------|----------------+--------+--------+----------+--------
000000000007|ニッポン放送 |東京都 |マスコミ|1971/09/05| 10,000
000000000005|フジテレビ |東京都 |マスコミ|1980/12/31| 100,000
000000000008|ニッポン放送 |東京都 |マスコミ|1981/09/05| 20,000
000000000009|ニッポン放送 |東京都 |マスコミ|1991/09/05| 40,000
000000000002|ライブドア |東京都 |IT |2000/04/01| 30,000
000000000003|ライブドア |東京都 |IT |2002/08/06| 40,000
000000000004|ライブドア |東京都 |IT |2004/12/04| 20,000
000000000001|インフォバリュー|神奈川県|IT |2005/01/01| 20,000
000000000006|フジテレビ |東京都 |マスコミ|2005/02/14| 300,000
000000000010|ニッポン放送 |東京都 |マスコミ|2005/04/20| 80,000
このように、抽出する順番を指定することも可能です。
━━ 【例4】集計 ━━━━━━━━━━━━━━━━━━━━━━━━
「顧客毎に受注データを集計し、顧客コード、顧客名、初回受注日、最新受
注日、合計金額を抽出しなさい」
顧客コード|顧客名 |初回受注日|最新受注日|合計金額
----------+----------------+----------+----------+--------
0000000001|インフォバリュー|2005/01/01|2005/01/01| 20,000
0000000002|ライブドア |2000/04/01|2004/12/04| 90,000
0000000003|フジテレビ |1980/12/31|2005/02/14| 400,000
0000000004|ニッポン放送 |1971/09/05|2005/04/20| 150,000
このように、複数のレコードの最小の値(初回受注日)、最大の値(最新受
注日)、合計値などを集計することができます。
━━ 【例5】集計結果に対する条件設定 ━━━━━━━━━━━━━━
「最近10年のうち、受注合計額が100,000円を超えている顧客名を抽出しな
さい」
顧客名
----------
フジテレビ
まず【例5】のようにデータそのものに「最近10年のうち」という条件を
指定し、合計金額を抽出し、その合計金額を更に絞るということも可能です。
以上、SQLは、RDBに格納されている生データをユーザーの都合のいいように
操作することが可能です。
通常、SQLは業務アプリケーションの中に定義されており、直接ユーザーが
意識する必要はありませんので、概略だけつかんでおきましょう。
また、マイクロソフト社のACCESS等では、実際にSQLを意識する必要なく、
自動的にSQLを生成してくれるデータベースツールもあります。
(※)次回は、「言語」について触れたいと思います。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■このメルマガは?■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
このメルマガでは、中小企業経営者の方々を想定して、IT・情報システム用
語をやさしく解説いたします。また、新人情報システム担当者、新人システ
ム・エンジニア、新人コンサルタント、学生の方々もお読み頂けます。
中小企業経営者の方々にとって、情報化は大きな問題でしょう。
しかし、「IT」等と言っても、よくわからない・・・。SCM、CRM、DSS、EC、
EDI、ERP、TCP/IP、SMTP、POP3等と、アルファベットの組み合わせがいっぱ
い出てきてわけわからない・・・。本当は、企業のトップとして旗振り役で
なければならないのに、若い奴らに任せている。
そんな、中小企業経営者の方々のために「少しでもお役に立てたら」という
思いで発行してます。
本メルマガは、「小難しい定義」と「やさしい解説」の2部構成です。
「小難しい定義」は、どこにでもありそうな、いわゆる用語説明です。
一方、「やさしい解説」は、小難しい表現(IT用語)を一切使わない解説で
す。また、「やさしい解説」中でやむなく使用したIT用語については、別の
号で別途解説していきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
今回の「SQL」はいかがだったでしょうか?
ところで、本日、仕事を少し早めに切り上げてプロ野球の観戦に行くつもり
です。
見に行く試合は
ソフトバンク−横浜 戦です。
私が福岡出身でホークスファンであることは前のメルマガで少し触れたと思
います。
日ハムが東京ドームを本拠地にしていた頃はたまに応援に行ってましたが、
北海道に行ってしまってからは、関東で試合を見れるのは、所沢か千葉しか
ありません。
横浜からだとちょっと遠いのですよね・・・。
また、ここ数年は独立し仕事も忙しかったのでとても応援に行ってる余裕は
ありませんでした。
ところが、今年から交流戦が導入され、横浜スタジアムでもホークス戦が見
れるようになりました。
これはもう、横浜在住のホークスファンとして応援に行けという神からの啓
示に違いありません。
そんなわけで、これから、仕事を早めに切り上げて行ってきます。
では、また。
■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
発行元:有限会社インフォバリュー
http://www.infovalue.co.jp/
発行者:代表取締役 福島雅規
melmaga@infovalue.co.jp
※ご意見、ご希望、ご相談等、お気軽にお寄せください
配信中止はこちら http://www.infovalue.co.jp/melmaga.htm
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■
|